using LoggingHelper; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net; using System.Net.Http; using System.Web; using System.Web.Http; using VECV_WebApi.Models.Activity; using VECV_WebApi.Models.Customer; using VECV_WebApi.Models.EmailServices; using VECV_WebApi.Models.Mobile; using VECV_WebApi.Models.Ticket; using VECV_WebApi.Models.User; using VECV_WebApi.Models.Vehicle; using VECV_WebApi.UserClient; namespace VECV_WebApi.Controllers.Mobile { /// /// This controller contain apis, related to Mobile users /// public class MobileController : ApiController { #region Global Variable /// /// making object of LoggingUtility class available to this class /// LoggingUtility objLog = new LoggingUtility(); /// /// making the data-log file path available to this class /// string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]); /// /// making data log file path available to this class /// string logtf = (ConfigurationManager.AppSettings["Log"]); /// /// making error log file path available to this class /// string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]); /// /// making Global Repository object available to this class /// GlobalRepository objGlobalRepository = new GlobalRepository(""); /// /// making Activity Repository object available to this class /// ActivityRepository objActivityRepository; /// /// making the Database connection string available to this class /// private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString(); #endregion #region APIs /// /// Merging following 6 APIs result into one api :- /// 1. Get Open/Close Ticket activities /// 2. Get Customer Details /// 3. Get Owner Details /// 4. Get Ticket Details /// 5. Get Escalation Levels /// 6. Get Vehicle Details /// /// required input parameters for ticket/vehicle/customer etc /// status and data public MobileOutputModel Post([FromBody]MobileInputModel model) { MobileOutputModel oMobileOutputModel = new MobileOutputModel(); TicketRepository objTicket = new TicketRepository(_connStr); List list_CloseTicketActivity = new List(); List list_OpenTicketActivity = new List(); List list_CustomerDetails = new List(); EscalationLevelOutputModel oEscalationLevelOutputModel = new EscalationLevelOutputModel(); CustomerRepository objCustomerRepository = new CustomerRepository(_connStr); CustomerModel oCustomerOutputModel = new CustomerModel(); List ticket_List_output = new List(); VehicleRepository objVehicleRepository = new VehicleRepository(_connStr); VehicleModel oVehicleModel = new VehicleModel(); try { //================= Getting Open/Close Ticket activities =========================== if ((model.OpenCloseStatus.ToUpper().Trim() == "OPEN") || (model.OpenCloseStatus.ToUpper().Trim() == "OPEN_KAM")) { objActivityRepository = new ActivityRepository(_connStr); OpenTicketActivityTicketWiseModel model_Input_OpenTicketActivity = new OpenTicketActivityTicketWiseModel(); model_Input_OpenTicketActivity.Token = model.Token; model_Input_OpenTicketActivity.TicketId = model.TicketId; model_Input_OpenTicketActivity.UtcMinute = Convert.ToInt32(model.UtcMinute); list_OpenTicketActivity = objActivityRepository.GetOpenTicketActivityTicketWise(model_Input_OpenTicketActivity); oMobileOutputModel.list_OpenTicketActivity = list_OpenTicketActivity; } //----------------------------------------------------- else if ((model.OpenCloseStatus.ToUpper().Trim() == "CLOSE") || (model.OpenCloseStatus.ToUpper().Trim() == "CLOSE_KAM")) { objActivityRepository = new ActivityRepository(_connStr); CloseTicketActivityTicketWiseModel model_Input_CloseTicketActivity = new CloseTicketActivityTicketWiseModel(); model_Input_CloseTicketActivity.Token = model.Token; model_Input_CloseTicketActivity.TicketId = model.TicketId; model_Input_CloseTicketActivity.UtcMinute = Convert.ToInt32(model.UtcMinute); list_CloseTicketActivity = objActivityRepository.GetCloseTicketActivityTicketWise(model_Input_CloseTicketActivity); oMobileOutputModel.list_CloseTicketActivity = list_CloseTicketActivity; } //============================================================================= //==================== Getting Customer Details =============================== CustomerVehicleModel model_input_CustomerVehicle = new CustomerVehicleModel(); model_input_CustomerVehicle.Token = model.Token; model_input_CustomerVehicle.VehicleRegistrationNumber = model.VehicleRegistrationNumber; model_input_CustomerVehicle.CustomerMobile1 = model.CustomerMobile1; model_input_CustomerVehicle.TicketNo = model.TicketNo; list_CustomerDetails = objTicket.GetCustomerDetails(model_input_CustomerVehicle); oMobileOutputModel.list_CustomerDetails = list_CustomerDetails; //============================================================================= //====================== Getting Owner Details ================================= CustomerModel model_input_CustomerModel = new CustomerModel(); model_input_CustomerModel.Token = model.Token; //model_input_CustomerModel.CustomerId = model.CustomerId; model_input_CustomerModel.VehicleRegistrationNumber = model.VehicleRegistrationNumber; //model_input_CustomerModel.CustomerMobileNumber1 = model.CustomerMobileNumber1; oCustomerOutputModel = objCustomerRepository.GetOwnerDetail(model_input_CustomerModel); oMobileOutputModel.customerModel = oCustomerOutputModel; //============================================================================== //====================== Getting Ticket Details ================================= CustomerOpenTicketFullDetailsTicketWise model_input_CustomerOpenTicketFullDetailsTicketWise = new CustomerOpenTicketFullDetailsTicketWise(); model_input_CustomerOpenTicketFullDetailsTicketWise.Token = model.Token; model_input_CustomerOpenTicketFullDetailsTicketWise.TicketId = model.TicketId; model_input_CustomerOpenTicketFullDetailsTicketWise.OpenCloseStatus = model.OpenCloseStatus; model_input_CustomerOpenTicketFullDetailsTicketWise.UtcMinute = Convert.ToInt32(model.UtcMinute); ticket_List_output = objTicket.GetCustomerOpenTicketFullDetailTicketWise(model_input_CustomerOpenTicketFullDetailsTicketWise); oMobileOutputModel.list_CustomerOpenTicketFullDetails = ticket_List_output; //============================================================================== //==================== Getting Escalation Levels =============================== if (ticket_List_output.Count > 0 && !string.IsNullOrEmpty(ticket_List_output[0].Dealer_Id)) { EscalationLevelInputModel model_input_EscalationLevel = new EscalationLevelInputModel(); model_input_EscalationLevel.DelerId = ticket_List_output[0].Dealer_Id; // getting dealer id model_input_EscalationLevel.Token = model.Token; model_input_EscalationLevel.VehicleType = model.VehicleType; oEscalationLevelOutputModel = objTicket.GetEscalationLevels(model_input_EscalationLevel); } oMobileOutputModel.escalationLevelOutputModel = oEscalationLevelOutputModel; //============================================================================== //====================== Getting Vehicle Details ================================= VehicleModel model_input_Vehicle = new VehicleModel(); model_input_Vehicle.Token = model.Token; model_input_Vehicle.Id = model.Id; model_input_Vehicle.RegistrationNo = model.RegistrationNo; oVehicleModel = objVehicleRepository.GetVehicleDetail(model_input_Vehicle); oMobileOutputModel.vehicleModel = oVehicleModel; //============================================================================== oMobileOutputModel.Status = "1"; return oMobileOutputModel; } catch (Exception Ex) { oMobileOutputModel.Status = "0"; oMobileOutputModel.Message = Ex.Message; return oMobileOutputModel; } } #endregion public LogOnModel LogOn(LogOnModel model, string _appName) { VECV_WebApi.Models.User.UserModel objUserModel = new Models.User.UserModel(); UserRepository objUserRepository; try { if (ModelState.IsValid) { UserClient.UserClient oUserClient = new UserClient.UserClient(); var userDetail = oUserClient.validateLoginDetails(model.UserName.Trim(), model.Password, _appName); var userAppId = oUserClient.GetUserById(userDetail.userId); if (userDetail.userId != Guid.Empty && userDetail.Role.Count() > 0) { UserRepository objUserresp = new UserRepository(_connStr); string strappversion = objUserresp.GetUserAppVersion(model.UserName, model.token); if (strappversion == ConfigurationManager.AppSettings["latest_app_version_vecvUsers"].ToString()) { objUserRepository = new UserRepository(_connStr); objUserModel.UserName = model.UserName; objUserModel.Token = model.token; objUserModel = objUserRepository.GetUserDetailUserNameWise(objUserModel); model.userId = objUserModel.UserId; model.ProductVariant = objUserModel.VehicleTagging; model.Designation = objUserModel.Designation; model.Organization = objUserModel.OrganizationAlias; model.Name = objUserModel.FirstName; model.isValid = true; model.Status = "1"; model.Message = "Valid"; } else { model.Status = "0"; model.isValid = false; model.Message = "Please update version from play store"; } } else { model.Status = "0"; model.isValid = false; model.Message = "Invalid Username and Password"; } } return model; } catch (Exception Ex) { if(Ex.Message.ToLower() == "there is no row at position 0.") { model.Message = "Invalid Username and Password"; } else { model.Message = Ex.Message; } model.Status = "0"; return model; } } //Mobile OTP CR public CheckMobileModel VerifyOTP(CheckMobileModel model, string extraparam) { CheckMobileModel responseModel = new CheckMobileModel(); if (!String.IsNullOrEmpty(model.OTP.ToString()) && !String.IsNullOrEmpty(model.ticketID)) { VehicleRepository objVehicleRepository = new VehicleRepository(_connStr); responseModel = objVehicleRepository.CheckOTPMobile(model); return responseModel; } else { responseModel.response = false; return responseModel; } } public string post(LogOnModel model, string _appName,string vecvuser) { UserRepository objUserresp = new UserRepository(_connStr); string strappversion = objUserresp.updateUserAppVersion(model.UserName, model.token, _appName); return strappversion; } //Mobile OTP CR } }