using LoggingHelper; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Web; using System.Web.Mvc; using GODATA.RoleServices; using GODATA.AuthenticationServices; using RestSharp; using Newtonsoft.Json; using GODATA.Models.TicketAdministration_Dealer; using Kendo.Mvc.UI; using Kendo.Mvc.Extensions; using GODATA.Models.UserInventory; namespace GODATA.Models.TicketAdministration_Dealer { public class TicketAdministration_DealerRepository { #region Global Variables /// /// Represent object of LoggingUtility class /// LoggingUtility objLog = new LoggingUtility(); /// /// Represent string object contain log file path /// //string path = "~/Log/"; string path = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]); /// /// Represent string object contain log status /// string logtf = (ConfigurationManager.AppSettings["Log"]); /// /// Represent string object contain Error log status /// string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]); /// /// getting application name from AppSetting in web.config file /// private static string _appName = ConfigurationManager.AppSettings["ApplicationName"].ToString(); /// /// getting web api token from AppSetting in web.config file /// private static string _securityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); /// /// getting user's utc minutes from session /// private static string _timeOffSetMinutes = null; /// /// getting login user's id /// private static string _LoginUserId = null; /// /// getting login user's name /// private static string _LoginUserName = null; /// /// getting time zone id from AppSetting in web.config file /// private static string _TimeZoneId = ConfigurationManager.AppSettings["TimeZoneId"].ToString(); /// /// getting rest api url from AppSetting in web.config file /// private static string _RestClientUrl = ConfigurationManager.AppSettings["RestfulApiUrl"].ToString(); #endregion #region Get Ticket History /// /// Post method to get open tickets history /// /// vehicle registration no. /// customer or owner mobile no. /// ticket id /// returns list of open tickets public List GetOpenTicketHistory() { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Dealer", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("UserId", _LoginUserId); request.AddParameter("UtcMinute", _timeOffSetMinutes); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetOpenTicketHistory", ex.Message, path, errorlogtf); throw ex; } } /// /// Post method to get close tickets history /// /// vehicle registration no. /// customer or owner mobile no. /// ticket id /// returns list of close tickets public List GetCloseTicketHistory() { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Dealer?dealer=d", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("UserId", _LoginUserId); request.AddParameter("UtcMinute", _timeOffSetMinutes); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetCloseTicketHistory", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Get Ticket Full Details /// /// Post method to get open or close ticket details(full) /// /// ticket id /// ticket status /// return list of open close ticket details public List Restful_GetOpenCloseTicketDetails(string ticketId, string ticketStatus) { try { _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); string _DealerId = HttpContext.Current.Session["DealerId"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/OpenTicket?Ticket=cc&Ticket1=ccc", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("TicketId", ticketId); request.AddParameter("OpenCloseStatus", ticketStatus); request.AddParameter("UtcMinute", _timeOffSetMinutes); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetOpenCloseTicketDetails", ex.Message, path, errorlogtf); throw ex; } } /// /// Post method to get owner details /// /// vehicle's registration no. /// return list of owner's details public List GetCustomerOwnerDetails(string RegistrationNo) { try { var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Customer?customer=vipin", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("CustomerId", ""); request.AddParameter("VehicleRegistrationNumber", RegistrationNo); request.AddParameter("CustomerMobileNumber1", ""); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetCustomerOwnerDetails", ex.Message, path, errorlogtf); throw ex; } } /// /// Post method to get vehicle details registration no. wise /// /// String type representation for vehicle's registration no. /// returns list of vehicle details public List GetVehicleDetailsRegistrationNoWise(string RegistrationNo) { try { var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Vehicle", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("Id", ""); request.AddParameter("RegistrationNo", RegistrationNo); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetVehicleDetailsRegistrationNoWise", ex.Message, path, errorlogtf); throw ex; } } /// /// Get method to get vehicle model type list /// /// return list of type vehicle model model public List GetVehicleModelList() { try { var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Global?Global=gl&VehicleType=vt", Method.GET); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetVehicleModelList", ex.Message, path, errorlogtf); throw ex; } } #region Get Escalation Level Membbers /// /// Get escalation level members details /// /// Dealer ID /// Vehicle Tagging /// return model public EscalationMemberLevel GetEscalationMemberDetailsDealerVehicleTypeWise(string dealerId, string vehicleTagging) { try { var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Ticket?operation=getescalationlevels", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("DelerId", dealerId); request.AddParameter("VehicleType", vehicleTagging); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetEscalationMemberDetailsDealerVehicleTypeWise", ex.Message, path, errorlogtf); throw ex; } } #endregion /// /// Post method to get customer details /// /// vehicle's registration no. /// customer or owner mobile no. /// ticket id /// return list of customer details public List GetCustomerDetails(string registrationNo, string mobileNo, string complaintNo) { try { var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/ticket", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("VehicleRegistrationNumber", registrationNo); request.AddParameter("CustomerMobile1", mobileNo); request.AddParameter("TicketNo", complaintNo); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetCustomerDetails", ex.Message, path, errorlogtf); throw ex; } } /// /// Post method to get route list /// /// return list of routes public List GetRoutesList() { try { var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Route", Method.GET); request.AddParameter("Token", _securityToken); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetRoutesList", ex.Message, path, errorlogtf); throw ex; } } /// /// Get method to get ticket status list /// /// public List GetTicketStatusList() { try { var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/TicketStatus", Method.GET); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetTicketStatusList", ex.Message, path, errorlogtf); throw ex; } } /// /// Post method to get close ticket activities details /// /// ticket id /// return list of close tickets activities public List GetCloseTicketActivityDetails(string ticketId) { try { _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Activity?Close=c", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("TicketId", ticketId); request.AddParameter("UtcMinute", _timeOffSetMinutes); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetCloseTicketActivityDetails", ex.Message, path, errorlogtf); throw ex; } } /// /// Post method to get open ticket activities details /// /// ticket id /// return list of open tickets activities public List GetOpenTicketActivityDetails(string ticketId) { try { _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Activity", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("TicketId", ticketId); request.AddParameter("UtcMinute", _timeOffSetMinutes); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_GetOpenTicketActivityDetails", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Update Ticket /// /// Post method to update ticket and insert new activity /// /// ticket model /// return model public TicketModel UpdateTicketDetails(TicketModel model) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _LoginUserName = HttpContext.Current.Session["UserName"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/OpenTicket?TicketUpdate=tt&TicketUpdate1=t", Method.POST); request.AddParameter("Token", _securityToken); //request.AddParameter("Description", model.listDescription[0].ToString()); request.AddParameter("Description", model.Description); request.AddParameter("AssignedTo", model.AssignedTo); request.AddParameter("ReportedVia", model.ReportedVia); request.AddParameter("TicketStatus", model.TicketStatus); request.AddParameter("Priority", model.Priority); request.AddParameter("CustomerScore", model.CustomerScore); request.AddParameter("CreatedBy", model.CreatedBy); request.AddParameter("CreationTime", model.CreationTime); request.AddParameter("LastModifiedBy", _LoginUserName); request.AddParameter("LastModifiedTime", DateTime.Now.ToString("dd-MMM-yyyy HH:mm:ss")); request.AddParameter("BreakdownLocation", model.BreakdownLocation); request.AddParameter("BreakdownLongitude", model.BreakdownLongitude); request.AddParameter("BreakdownLattitude", model.BreakdownLattitude); request.AddParameter("AssignedToUserId", model.AssignedToUserId); request.AddParameter("AssignedToUserLattitude", model.AssignedToUserLattitude); request.AddParameter("AssignedToUserLongitude", model.AssignedToUserLongitude); request.AddParameter("IsDeclined", model.Isdeclined); request.AddParameter("EstimatedTimeForJobCompletion", model.EstimatedTimeForJobCompletion); request.AddParameter("TotalTicketLifecycleTimeSla", model.TotalTicketLifecycleTimeSla); request.AddParameter("EstimatedTimeForJobCompletionSubmitTime", model.EstimatedTimeForJobCompletionSubmitTime); request.AddParameter("VehicleRegistrationNumber", model.VehicleRegisterNumber); request.AddParameter("BreakdownLocationLandmark", model.BreakdownLocationLandmark); request.AddParameter("RouteId", model.RouteId); request.AddParameter("CustomerContactNo", model.CustomerContactNo); request.AddParameter("TicketId", model.TicketId); request.AddParameter("RepairCost ", model.RepairCost); request.AddParameter("DefaultSlaTime", model.DefaultSlaTime); request.AddParameter("SlaMissedReason ", model.SlaMissedReason); request.AddParameter("SuggestionComment", model.SuggestionComment); request.AddParameter("JobCompleteResponseTime", model.JobCompleteResponseTime); request.AddParameter("UtcMinute", _timeOffSetMinutes); request.AddParameter("ChassisNo", model.ChassisNo); request.AddParameter("OdometerReading", model.OdometerReading); request.AddParameter("VehicleRegistrationNumber", model.VehicleRegistrationNumber); request.AddParameter("PreviousOdometerReading", model.PreviousOdometerReading); request.AddParameter("VehicleType", model.VehicleType); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketDealerRepository_UpdateTicketDetails", ex.Message, path, errorlogtf); throw ex; } } #endregion /// /// GEt chassis number by search. /// /// breakdown location's state name /// vans and dealers list limit /// return list public List GetChassisNoByEOSApiSearch(string chassisBySearch) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Global?chassisSearch=yes", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("UserId", _LoginUserId); request.AddParameter("ChassisSearch", chassisBySearch); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("GetChassisNoByEOSApiSearch", ex.Message, path, errorlogtf); throw ex; } } public List GetEngineNoByEOSApiSearch(string engineBySearch) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Global?engineSearch=yes", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("UserId", _LoginUserId); request.AddParameter("EngineSearch", engineBySearch); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("GetEngineNoByEOSApiSearch", ex.Message, path, errorlogtf); throw ex; } } /// /// GEt chassis number by search. /// /// breakdown location's state name /// vans and dealers list limit /// return list public CHASSIS_ODOMETER_Model GetOdoMeterBYChassisNumber(string chassisNumber, string ticketIDAlias) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Global?chassisSearch=yes&getOdoMeter=yes", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("UserId", _LoginUserId); request.AddParameter("ChassisNo", chassisNumber); request.AddParameter("TicketIdAlias", ticketIDAlias); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("GetChassisNoByEOSApiSearch", ex.Message, path, errorlogtf); throw ex; } } /// /// Post method to get nearest vans and dealers from breakdown location /// /// breakdown location's state name /// vans and dealers list limit /// return list public List GetDealersOwnVansList(string StateName, string Limit) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); string _DealerId = HttpContext.Current.Session["DealerId"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Dealer?ticket=&ticket1=&ticket2=&ticket3=", Method.POST); //var request = new RestRequest("Api/Dealer?ticket=&ticket1=&ticket2=&ticket3=&ticket4=", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("UserId", _LoginUserId); request.AddParameter("StateName", StateName); request.AddParameter("Limit", Limit); request.AddParameter("DealerId", _DealerId); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("TicketRepository_GetAllNearestVansDealersList", ex.Message, path, errorlogtf); throw ex; } } } }