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 ---------------------------------
}
}