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 Kendo.Mvc.UI; using Kendo.Mvc.Extensions; using GODATA.Models.Ticket; using GODATA.Models.Report; using System.Data; using System.IO; using System.Data.OleDb; using System.Globalization; namespace GODATA.Models.Report { public class ReportRepository { #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(); /// /// getting Date Time format from AppSetting in web.config file /// private static string _dateTimeFormat = ConfigurationManager.AppSettings["dateTimeFormat"].ToString(); #endregion #region open close ticket report /// /// Post method to get open tickets history /// /// vehicle registration no. /// customer or owner mobile no. /// ticket id /// returns list of open tickets public List GetOpenTicketsList(string userId, string startDate, string endDate, Int32 limit, Int32 offset, string ticketStatus, string query,string TicketType) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Ticket?TicketType=" + ticketStatus, Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("FromDate", Convert.ToDateTime(startDate).ToString(_dateTimeFormat)); request.AddParameter("ToDate", Convert.ToDateTime(endDate).ToString(_dateTimeFormat)); request.AddParameter("Limit", limit); request.AddParameter("Offset", offset); request.AddParameter("UserId", _LoginUserId); request.AddParameter("UtcMinute", _timeOffSetMinutes); request.AddParameter("Condition", query); request.AddParameter("TicketType", TicketType); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf); throw ex; } } #endregion #region REPORTS #region EOS Call Count /// /// To Get Eos Call Count report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Eos Call Count report Model public EosCallCount GetEosCallCount(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { EosCallCount model = new EosCallCount(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["eosCallCountApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetEosCallCount", ex.Message, path, errorlogtf); throw ex; } } #endregion #region HD, LMD & Buses Contribution /// /// To Get Hd Lmd Bus Contribution report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Hd Lmd Bus Contribution report model public HdLmdBusContribution GetHdLmdBusContribution(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { HdLmdBusContribution model = new HdLmdBusContribution(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["HdBusLmdContributionApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetHdLmdBusContribution", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Dealer Wise Call Details /// /// To Get Dealer Wise Call Details report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Dealer Wise Call Details report model public DealerWiseCallDetail GetDealerWiseCallDetails(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { DealerWiseCallDetail model = new DealerWiseCallDetail(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["DealerWiseCallDetailsApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetDealerWiseCallDetails", ex.Message, path, errorlogtf); throw ex; } } /// /// To Get Reason Call Closed Beyond 24Hrs json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Reason Call Closed Beyond 24Hrs report model public DealerWiseReasonCallClosedBeyond24Hrs GetReasonCallClosedBeyond24Hrs(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { DealerWiseReasonCallClosedBeyond24Hrs model = new DealerWiseReasonCallClosedBeyond24Hrs(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["ReasonCallClosedBeyond24HrsApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetReasonCallClosedBeyond24Hrs", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Timeslot Closure /// /// To Get Timeslot Closure report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Timeslot Closure report model public TimeslotClosure GetTimeslotClosure(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { TimeslotClosure model = new TimeslotClosure(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["TimeslotClosureApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetTimeslotClosure", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Toll Free No. and Oppotunity Loss /// /// To Get Opportunity Loss report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Opportunity Loss report model public OpportunityLoss GetOpportunityLoss(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { OpportunityLoss model = new OpportunityLoss(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["OpportunityLossApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetOpportunityLoss", ex.Message, path, errorlogtf); throw ex; } } /// /// To Get Toll Free No report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Toll Free No report model public TollFreeCall GetTollFreeNo(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { TollFreeCall model = new TollFreeCall(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["TollFreeNoApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetTollFreeNo", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Call Feedback Rating /// /// To Get Call Feedback Rating report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Call Feedback Rating report model public CallFeedbackRating GetCallFeedbackRating(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { CallFeedbackRating model = new CallFeedbackRating(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["CallFeedbackRatingApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetCallFeedbackRating", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Reason for closure (>24) /// /// To Get Hd Lmd Call Closure report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Hd Lmd Call Closure report model public HdLmdBusCallCLoserModel GetHdLmdCallClosure(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { HdLmdBusCallCLoserModel model = new HdLmdBusCallCLoserModel(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["HdLmdCallClosureApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetHdLmdCallClosure", ex.Message, path, errorlogtf); throw ex; } } /// /// To Get Call Closure More Than 24 hrs report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Call Closure More Than 24 hrs report model public ReasonCallClosedBeyond24Hrs GetCallClosureMoreThan24(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { ReasonCallClosedBeyond24Hrs model = new ReasonCallClosedBeyond24Hrs(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["CallClosureMoreThan24Api"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("UtcMinute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetCallClosureMoreThan24", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Declined Calls /// /// To Get Declined Calls report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Declined Calls report model public DeclinedCalls GetDeclinedCalls(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { DeclinedCalls model = new DeclinedCalls(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["DeclinedCallsApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("utcminute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetDeclinedCalls", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Eicher Promise /// /// To Get Declined Calls report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Declined Calls report model public EicherPromiseModel GetEicherPromiseReport(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string city, string dealerId) { try { EicherPromiseModel model = new EicherPromiseModel(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["EicherPromiseApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("city", city); request.AddParameter("DealerId", dealerId); request.AddParameter("utcminute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetEicherPromiseReport", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Customer Report /// /// To get Owner List for a particular state or on the basis of a searched value /// /// state /// Filter Value /// limit of the returned objects /// starting index from where objects are fetched /// public List GetOwnerList(string state, string FilterVal, int limit, int Offset) { try { var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Customer?owner=hh", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("CustomerState", state); request.AddParameter("Value", FilterVal); request.AddParameter("Limit", limit); request.AddParameter("OffeSet", Offset); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("GetOwnerList", ex.Message, path, errorlogtf); throw ex; } } /// /// To Get Declined Calls report json form API and deserialize it into model /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// Declined Calls report model public CustomerReportModel GetCustomerReport(string Token, int UtcMinutes, string UserId, DateTime fromDate, DateTime toDate, string state, string CustomerId) { try { CustomerReportModel model = new CustomerReportModel(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest(ConfigurationManager.AppSettings["CustomerReportApi"].ToString(), Method.POST); request.AddParameter("Token", Token); request.AddParameter("FromDate", fromDate.ToString(_dateTimeFormat)); request.AddParameter("ToDate", toDate.ToString(_dateTimeFormat)); request.AddParameter("UserId", UserId); request.AddParameter("state", state); request.AddParameter("CustomerId", CustomerId); request.AddParameter("utcminute", UtcMinutes); request.RequestFormat = DataFormat.Json; request.AddHeader("content-type", "application/json"); var response = client.Execute(request); var content = response.Content; model = JsonConvert.DeserializeObject(content); return model; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetCustomerReport", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Consolidated Report /// /// Post method to get consolidated report /// /// vehicle registration no. /// customer or owner mobile no. /// ticket id /// returns list of consolidated report public List GetConsolidatedData(string userId, string startDate, string endDate, Int32 limit, Int32 offset, string queryType, string query, string organization, string vehicleTagging,string filterType,string consolidateType) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Ticket?consolidateddata=hh&tickettype=" + queryType, Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("FromDate", Convert.ToDateTime(startDate).ToString(_dateTimeFormat)); request.AddParameter("ToDate", Convert.ToDateTime(endDate).ToString(_dateTimeFormat)); request.AddParameter("Limit", limit); request.AddParameter("Offset", offset); request.AddParameter("UserId", _LoginUserId); request.AddParameter("UtcMinute", _timeOffSetMinutes); request.AddParameter("Condition", query); request.AddParameter("VehicleType", vehicleTagging); request.AddParameter("Organization", organization); request.AddParameter("TicketType", filterType); request.AddParameter("consolidaetype", consolidateType); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetConsolidatedData", ex.Message, path, errorlogtf); throw ex; } } /// /// Method to get consolidated report (modified function) 07-10-2020 /// /// /// /// /// /// /// /// /// /// /// public dynamic GetConsolidatedDataForDownload(string userId, string startDate, string endDate, Int32 limit, Int32 offset, string queryType, string query, string organization, string vehicleTagging) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Ticket?consolidateddata=hh&isCount=false&tickettype=" + queryType, Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("FromDate", Convert.ToDateTime(startDate).ToString(_dateTimeFormat)); request.AddParameter("ToDate", Convert.ToDateTime(endDate).ToString(_dateTimeFormat)); request.AddParameter("Limit", limit); request.AddParameter("Offset", offset); request.AddParameter("UserId", _LoginUserId); request.AddParameter("UtcMinute", _timeOffSetMinutes); request.AddParameter("Condition", query); request.AddParameter("VehicleType", vehicleTagging); request.AddParameter("Organization", organization); List objT = new List(); var t = client.Execute>(request).Data; var output = JsonConvert.DeserializeObject(t[0]); return output.ConsolidatedReportModelList; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetConsolidatedData", ex.Message, path, errorlogtf); throw ex; } } public ReportOpenTicketModel GetConsolidatedDataForDownloadCSV(string userId, string startDate, string endDate, Int32 limit, Int32 offset, string queryType, string query, string organization, string vehicleTagging) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Ticket?consolidateddata=hh&isCount=false&Download=fh&tickettype=" + queryType, Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("FromDate", Convert.ToDateTime(startDate).ToString(_dateTimeFormat)); request.AddParameter("ToDate", Convert.ToDateTime(endDate).ToString(_dateTimeFormat)); request.AddParameter("Limit", limit); request.AddParameter("Offset", offset); request.AddParameter("UserId", _LoginUserId); request.AddParameter("UtcMinute", _timeOffSetMinutes); request.AddParameter("Condition", query); request.AddParameter("VehicleType", vehicleTagging); request.AddParameter("Organization", organization); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetConsolidatedData", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Consolidated Report /// /// Post method to get consolidated report /// /// vehicle registration no. /// customer or owner mobile no. /// ticket id /// returns list of consolidated report public List GetConsolidatedDataNew(string userId, string startDate, string endDate, Int32 limit, Int32 offset, string queryType, string query, string organization, string vehicleTagging, string filterType) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/AddOnReport?consolidateddata=hh&tickettype=" + queryType, Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("FromDate", Convert.ToDateTime(startDate).ToString(_dateTimeFormat)); request.AddParameter("ToDate", Convert.ToDateTime(endDate).ToString(_dateTimeFormat)); request.AddParameter("Limit", limit); request.AddParameter("Offset", offset); request.AddParameter("UserId", _LoginUserId); request.AddParameter("UtcMinute", _timeOffSetMinutes); request.AddParameter("Condition", query); request.AddParameter("VehicleType", vehicleTagging); request.AddParameter("Organization", organization); request.AddParameter("TicketType", filterType); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetConsolidatedData", ex.Message, path, errorlogtf); throw ex; } } #endregion #endregion #region KAM ticket reports /// /// Post method to get open tickets history /// /// vehicle registration no. /// customer or owner mobile no. /// ticket id /// returns list of open tickets public TicketRequestModel GetKamTicketsList(string userId, string startDate, string endDate, Int32 limit, Int32 offset, string ticketStatus, string query) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Ticket?kam=12&TicketType=" + ticketStatus, Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("FromDate", Convert.ToDateTime(startDate).ToString(_dateTimeFormat)); request.AddParameter("ToDate", Convert.ToDateTime(endDate).ToString(_dateTimeFormat)); request.AddParameter("Limit", limit); request.AddParameter("Offset", offset); request.AddParameter("UserId", null); request.AddParameter("UtcMinute", _timeOffSetMinutes); request.AddParameter("Condition", query); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf); throw ex; } } #endregion #region dummy ticket model /// /// Post method to get open tickets history /// /// vehicle registration no. /// customer or owner mobile no. /// ticket id /// returns list of open tickets public TicketRequestModel GetDummyTicketsList(string userId) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Ticket?dummyticket=1&Ticket=cce&TicketType=open", Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("UserId", _LoginUserId); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf); throw ex; } } #endregion public List GetDataTableFromCsv(string path, bool isFirstRowHeader) { string header = isFirstRowHeader ? "Yes" : "No"; List oEosOpportunityLoss = new List(); string pathOnly = Path.GetDirectoryName(path); string fileName = Path.GetFileName(path); string sql = @"SELECT * FROM [" + fileName + "]"; using (OleDbConnection connection = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly + ";Extended Properties=\"Text;HDR=" + header + "\"")) using (OleDbCommand command = new OleDbCommand(sql, connection)) using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { DataTable dataTable = new DataTable(); dataTable.Locale = CultureInfo.CurrentCulture; adapter.Fill(dataTable); if (dataTable.Rows.Count > 0) { oEosOpportunityLoss = dataTable.AsEnumerable().Select(s => new EosOpportunityLoss { month_name = s.Field("month_name"), StateId = s.Field("breakdown_state_name"), DealerName = s.Field("dealer_id") }).ToList(); } return oEosOpportunityLoss; } } #region Driver Score Report #region Van score /// /// Post method to get open tickets history /// /// returns list of vans with score public ScoreRequestModel GetVanScoreList() { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Report?ReportType=allvanscore&CompareData=5rf3", Method.POST); request.AddParameter("Token", _securityToken); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf); throw ex; } } /// /// Post method to get open tickets history /// /// returns list of vans with score public ScoreRequestModel GetVansScoresCompareReport(string vans, string fromDate, string toDate) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Report?ReportType=vanscore&CompareData=5rf3", Method.POST); request.AddParameter("VanId", vans); request.AddParameter("FromDate", Convert.ToDateTime(fromDate).ToString(_dateTimeFormat)); request.AddParameter("ToDate", Convert.ToDateTime(toDate).ToString(_dateTimeFormat)); request.AddParameter("Token", _securityToken); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf); throw ex; } } #endregion #region dealer score /// /// Post method to get open tickets history /// /// returns list of vans with score public ScoreRequestModel GetDealerScoreList() { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Report?ReportType=alldealerscore&CompareData=5rf3", Method.POST); request.AddParameter("Token", _securityToken); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf); throw ex; } } /// /// Post method to get open tickets history /// /// returns list of vans with score public ScoreRequestModel GetDealersScoresCompareReport(string dealers, string fromDate, string toDate) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Report?ReportType=dealerscore&CompareData=5rf3", Method.POST); request.AddParameter("DealerId", dealers); request.AddParameter("FromDate", Convert.ToDateTime(fromDate).ToString(_dateTimeFormat)); request.AddParameter("ToDate", Convert.ToDateTime(toDate).ToString(_dateTimeFormat)); request.AddParameter("Token", _securityToken); return client.Execute(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf); throw ex; } } #endregion #region ticket score /// /// Post method to get open tickets history /// /// vehicle registration no. /// customer or owner mobile no. /// ticket id /// returns list of open tickets public List GetTicketScoreList(string userId, string startDate, string endDate, Int32 limit, Int32 offset, string ticketStatus, string query) { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Report?TicketType=" + ticketStatus, Method.POST); request.AddParameter("Token", _securityToken); request.AddParameter("FromDate", Convert.ToDateTime(startDate).ToString(_dateTimeFormat)); request.AddParameter("ToDate", Convert.ToDateTime(endDate).ToString(_dateTimeFormat)); request.AddParameter("Limit", limit); request.AddParameter("Offset", offset); request.AddParameter("UserId", _LoginUserId); request.AddParameter("UtcMinute", _timeOffSetMinutes); request.AddParameter("Condition", query); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetTicketScoreList", ex.Message, path, errorlogtf); throw ex; } } #endregion #endregion //------------------ added on 09-03-2021 start --------------------------------- public List GetCancelledDummyList() { try { _LoginUserId = HttpContext.Current.Session["UserId"].ToString(); _timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString(); var client = new RestSharp.RestClient(_RestClientUrl); var request = new RestRequest("Api/Ticket?dummycancelledData=hh&dummycancelledData1=hh1&dummycancelledData2=hh2", Method.POST); request.AddParameter("Token", _securityToken); return client.Execute>(request).Data; } catch (Exception ex) { objLog.ErrorLogFile("ReportRepository_GetCancelledDummyList", ex.Message, path, errorlogtf); throw ex; } } //------------------ added on 09-03-2021 end --------------------------------- } }