EOS/Models/Report/ReportRepository.cs
Nidhi Bhargava f0c1ab20e1 code push
2025-09-04 16:25:07 +05:30

1198 lines
54 KiB
C#

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
/// <summary>
/// Represent object of LoggingUtility class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// Represent string object contain log file path
/// </summary>
//string path = "~/Log/";
string path = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// Represent string object contain log status
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// Represent string object contain Error log status
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// getting application name from AppSetting in web.config file
/// </summary>
private static string _appName = ConfigurationManager.AppSettings["ApplicationName"].ToString();
/// <summary>
/// getting web api token from AppSetting in web.config file
/// </summary>
private static string _securityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString();
/// <summary>
/// getting user's utc minutes from session
/// </summary>
private static string _timeOffSetMinutes = null;
/// <summary>
/// getting login user's id
/// </summary>
private static string _LoginUserId = null;
/// <summary>
/// getting login user's name
/// </summary>
private static string _LoginUserName = null;
/// <summary>
/// getting time zone id from AppSetting in web.config file
/// </summary>
private static string _TimeZoneId = ConfigurationManager.AppSettings["TimeZoneId"].ToString();
/// <summary>
/// getting rest api url from AppSetting in web.config file
/// </summary>
private static string _RestClientUrl = ConfigurationManager.AppSettings["RestfulApiUrl"].ToString();
/// <summary>
/// getting Date Time format from AppSetting in web.config file
/// </summary>
private static string _dateTimeFormat = ConfigurationManager.AppSettings["dateTimeFormat"].ToString();
#endregion
#region open close ticket report
/// <summary>
/// Post method to get open tickets history
/// </summary>
/// <param name="registrationNo">vehicle registration no.</param>
/// <param name="mobileNo">customer or owner mobile no.</param>
/// <param name="complaintNo">ticket id</param>
/// <returns>returns list of open tickets</returns>
public List<ReportOpenTicketModel> 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<List<ReportOpenTicketModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region REPORTS
#region EOS Call Count
/// <summary>
/// To Get Eos Call Count report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns> Eos Call Count report Model</returns>
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<EosCallCount>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetEosCallCount", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region HD, LMD & Buses Contribution
/// <summary>
/// To Get Hd Lmd Bus Contribution report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Hd Lmd Bus Contribution report model</returns>
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<HdLmdBusContribution>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetHdLmdBusContribution", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Dealer Wise Call Details
/// <summary>
/// To Get Dealer Wise Call Details report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Dealer Wise Call Details report model</returns>
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<DealerWiseCallDetail>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetDealerWiseCallDetails", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// To Get Reason Call Closed Beyond 24Hrs json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Reason Call Closed Beyond 24Hrs report model</returns>
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<DealerWiseReasonCallClosedBeyond24Hrs>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetReasonCallClosedBeyond24Hrs", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Timeslot Closure
/// <summary>
/// To Get Timeslot Closure report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Timeslot Closure report model</returns>
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<TimeslotClosure>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetTimeslotClosure", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Toll Free No. and Oppotunity Loss
/// <summary>
/// To Get Opportunity Loss report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Opportunity Loss report model</returns>
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<OpportunityLoss>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetOpportunityLoss", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// To Get Toll Free No report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Toll Free No report model</returns>
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<TollFreeCall>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetTollFreeNo", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Call Feedback Rating
/// <summary>
/// To Get Call Feedback Rating report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Call Feedback Rating report model</returns>
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<CallFeedbackRating>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetCallFeedbackRating", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Reason for closure (>24)
/// <summary>
/// To Get Hd Lmd Call Closure report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Hd Lmd Call Closure report model</returns>
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<HdLmdBusCallCLoserModel>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetHdLmdCallClosure", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// To Get Call Closure More Than 24 hrs report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Call Closure More Than 24 hrs report model</returns>
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<ReasonCallClosedBeyond24Hrs>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetCallClosureMoreThan24", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Declined Calls
/// <summary>
/// To Get Declined Calls report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Declined Calls report model</returns>
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<DeclinedCalls>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetDeclinedCalls", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Eicher Promise
/// <summary>
/// To Get Declined Calls report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Declined Calls report model</returns>
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<EicherPromiseModel>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetEicherPromiseReport", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Customer Report
/// <summary>
/// To get Owner List for a particular state or on the basis of a searched value
/// </summary>
/// <param name="state">state</param>
/// <param name="FilterVal">Filter Value</param>
/// <param name="limit">limit of the returned objects</param>
/// <param name="Offset">starting index from where objects are fetched</param>
/// <returns></returns>
public List<ManageOwner> 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<List<ManageOwner>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetOwnerList", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// To Get Declined Calls report json form API and deserialize it into model
/// </summary>
/// <param name="Token">security token</param>
/// <param name="UtcMinutes">UTC minutes</param>
/// <param name="UserId">user id</param>
/// <param name="fromDate">start date</param>
/// <param name="toDate">end date</param>
/// <param name="state">state name</param>
/// <param name="city">city name</param>
/// <param name="dealerId">dealer id</param>
/// <returns>Declined Calls report model</returns>
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<CustomerReportModel>(content);
return model;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetCustomerReport", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Consolidated Report
/// <summary>
/// Post method to get consolidated report
/// </summary>
/// <param name="registrationNo">vehicle registration no.</param>
/// <param name="mobileNo">customer or owner mobile no.</param>
/// <param name="complaintNo">ticket id</param>
/// <returns>returns list of consolidated report</returns>
public List<ReportOpenTicketModel> 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<List<ReportOpenTicketModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetConsolidatedData", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Method to get consolidated report (modified function) 07-10-2020
/// </summary>
/// <param name="userId"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <param name="limit"></param>
/// <param name="offset"></param>
/// <param name="queryType"></param>
/// <param name="query"></param>
/// <param name="organization"></param>
/// <param name="vehicleTagging"></param>
/// <returns></returns>
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<ReportOpenTicketModel> objT = new List<ReportOpenTicketModel>();
var t = client.Execute<List<string>>(request).Data;
var output = JsonConvert.DeserializeObject<dynamic>(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<ReportOpenTicketModel>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetConsolidatedData", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Consolidated Report
/// <summary>
/// Post method to get consolidated report
/// </summary>
/// <param name="registrationNo">vehicle registration no.</param>
/// <param name="mobileNo">customer or owner mobile no.</param>
/// <param name="complaintNo">ticket id</param>
/// <returns>returns list of consolidated report</returns>
public List<ReportOpenTicketModel> 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<List<ReportOpenTicketModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetConsolidatedData", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#endregion
#region KAM ticket reports
/// <summary>
/// Post method to get open tickets history
/// </summary>
/// <param name="registrationNo">vehicle registration no.</param>
/// <param name="mobileNo">customer or owner mobile no.</param>
/// <param name="complaintNo">ticket id</param>
/// <returns>returns list of open tickets</returns>
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<TicketRequestModel>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region dummy ticket model
/// <summary>
/// Post method to get open tickets history
/// </summary>
/// <param name="registrationNo">vehicle registration no.</param>
/// <param name="mobileNo">customer or owner mobile no.</param>
/// <param name="complaintNo">ticket id</param>
/// <returns>returns list of open tickets</returns>
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<TicketRequestModel>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
public List<EosOpportunityLoss> GetDataTableFromCsv(string path, bool isFirstRowHeader)
{
string header = isFirstRowHeader ? "Yes" : "No";
List<EosOpportunityLoss> oEosOpportunityLoss = new List<EosOpportunityLoss>();
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<string>("month_name"),
StateId = s.Field<string>("breakdown_state_name"),
DealerName = s.Field<string>("dealer_id")
}).ToList();
}
return oEosOpportunityLoss;
}
}
#region Driver Score Report
#region Van score
/// <summary>
/// Post method to get open tickets history
/// </summary>
/// <returns>returns list of vans with score</returns>
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<ScoreRequestModel>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Post method to get open tickets history
/// </summary>
/// <returns>returns list of vans with score</returns>
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<ScoreRequestModel>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region dealer score
/// <summary>
/// Post method to get open tickets history
/// </summary>
/// <returns>returns list of vans with score</returns>
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<ScoreRequestModel>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Post method to get open tickets history
/// </summary>
/// <returns>returns list of vans with score</returns>
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<ScoreRequestModel>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetOpenTicketsList", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region ticket score
/// <summary>
/// Post method to get open tickets history
/// </summary>
/// <param name="registrationNo">vehicle registration no.</param>
/// <param name="mobileNo">customer or owner mobile no.</param>
/// <param name="complaintNo">ticket id</param>
/// <returns>returns list of open tickets</returns>
public List<ReportOpenTicketModel> 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<List<ReportOpenTicketModel>>(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<CancelledDraftTicketReportModel> 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<List<CancelledDraftTicketReportModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("ReportRepository_GetCancelledDummyList", ex.Message, path, errorlogtf);
throw ex;
}
}
//------------------ added on 09-03-2021 end ---------------------------------
}
}