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

551 lines
24 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 GODATA.Models.TicketAdministration_Dealer;
using Kendo.Mvc.UI;
using Kendo.Mvc.Extensions;
using GODATA.Models.UserInventory;
namespace GODATA.Models.TicketAdministration_Dealer
{
public class TicketAdministration_DealerRepository
{
#region Global Variables
/// <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();
#endregion
#region Get Ticket History
/// <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<OpenTicketDealerModel> GetOpenTicketHistory()
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
_timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Dealer", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserId", _LoginUserId);
request.AddParameter("UtcMinute", _timeOffSetMinutes);
return client.Execute<List<OpenTicketDealerModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetOpenTicketHistory", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Post method to get close 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 close tickets</returns>
public List<CloseTicketDealerModel> GetCloseTicketHistory()
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
_timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Dealer?dealer=d", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserId", _LoginUserId);
request.AddParameter("UtcMinute", _timeOffSetMinutes);
return client.Execute<List<CloseTicketDealerModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetCloseTicketHistory", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Get Ticket Full Details
/// <summary>
/// Post method to get open or close ticket details(full)
/// </summary>
/// <param name="ticketId">ticket id</param>
/// <param name="ticketStatus">ticket status</param>
/// <returns>return list of open close ticket details</returns>
public List<TicketOpenCloseModel> Restful_GetOpenCloseTicketDetails(string ticketId, string ticketStatus)
{
try
{
_timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString();
string _DealerId = HttpContext.Current.Session["DealerId"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/OpenTicket?Ticket=cc&Ticket1=ccc", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("TicketId", ticketId);
request.AddParameter("OpenCloseStatus", ticketStatus);
request.AddParameter("UtcMinute", _timeOffSetMinutes);
return client.Execute<List<TicketOpenCloseModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetOpenCloseTicketDetails", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Post method to get owner details
/// </summary>
/// <param name="RegistrationNo">vehicle's registration no.</param>
/// <returns>return list of owner's details</returns>
public List<CustomerOwnerModel> GetCustomerOwnerDetails(string RegistrationNo)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Customer?customer=vipin", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("CustomerId", "");
request.AddParameter("VehicleRegistrationNumber", RegistrationNo);
request.AddParameter("CustomerMobileNumber1", "");
return client.Execute<List<CustomerOwnerModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetCustomerOwnerDetails", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Post method to get vehicle details registration no. wise
/// </summary>
/// <param name="RegistrationNo">String type representation for vehicle's registration no.</param>
/// <returns>returns list of vehicle details</returns>
public List<VehicleModel> GetVehicleDetailsRegistrationNoWise(string RegistrationNo)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Vehicle", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("Id", "");
request.AddParameter("RegistrationNo", RegistrationNo);
return client.Execute<List<VehicleModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetVehicleDetailsRegistrationNoWise", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Get method to get vehicle model type list
/// </summary>
/// <returns>return list of type vehicle model model</returns>
public List<VehicleModelModel> GetVehicleModelList()
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Global?Global=gl&VehicleType=vt", Method.GET);
return client.Execute<List<VehicleModelModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetVehicleModelList", ex.Message, path, errorlogtf);
throw ex;
}
}
#region Get Escalation Level Membbers
/// <summary>
/// Get escalation level members details
/// </summary>
/// <param name="dealerId">Dealer ID</param>
/// <param name="vehicleTagging">Vehicle Tagging</param>
/// <returns>return model</returns>
public EscalationMemberLevel GetEscalationMemberDetailsDealerVehicleTypeWise(string dealerId, string vehicleTagging)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Ticket?operation=getescalationlevels", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("DelerId", dealerId);
request.AddParameter("VehicleType", vehicleTagging);
return client.Execute<EscalationMemberLevel>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetEscalationMemberDetailsDealerVehicleTypeWise", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
/// <summary>
/// Post method to get customer details
/// </summary>
/// <param name="registrationNo">vehicle's registration no.</param>
/// <param name="mobileNo">customer or owner mobile no.</param>
/// <param name="complaintNo">ticket id</param>
/// <returns>return list of customer details</returns>
public List<CustomerModel> GetCustomerDetails(string registrationNo, string mobileNo, string complaintNo)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/ticket", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("VehicleRegistrationNumber", registrationNo);
request.AddParameter("CustomerMobile1", mobileNo);
request.AddParameter("TicketNo", complaintNo);
return client.Execute<List<CustomerModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetCustomerDetails", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Post method to get route list
/// </summary>
/// <returns>return list of routes</returns>
public List<RouteModel> GetRoutesList()
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Route", Method.GET);
request.AddParameter("Token", _securityToken);
return client.Execute<List<RouteModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetRoutesList", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Get method to get ticket status list
/// </summary>
/// <returns></returns>
public List<TicketStatus> GetTicketStatusList()
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/TicketStatus", Method.GET);
return client.Execute<List<TicketStatus>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetTicketStatusList", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Post method to get close ticket activities details
/// </summary>
/// <param name="ticketId">ticket id</param>
/// <returns>return list of close tickets activities</returns>
public List<CloseTicketActivityDetails> GetCloseTicketActivityDetails(string ticketId)
{
try
{
_timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Activity?Close=c", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("TicketId", ticketId);
request.AddParameter("UtcMinute", _timeOffSetMinutes);
return client.Execute<List<CloseTicketActivityDetails>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetCloseTicketActivityDetails", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Post method to get open ticket activities details
/// </summary>
/// <param name="ticketId">ticket id</param>
/// <returns>return list of open tickets activities</returns>
public List<OpenTicketActivityDetails> GetOpenTicketActivityDetails(string ticketId)
{
try
{
_timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Activity", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("TicketId", ticketId);
request.AddParameter("UtcMinute", _timeOffSetMinutes);
return client.Execute<List<OpenTicketActivityDetails>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_GetOpenTicketActivityDetails", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region Update Ticket
/// <summary>
/// Post method to update ticket and insert new activity
/// </summary>
/// <param name="model">ticket model</param>
/// <returns>return model</returns>
public TicketModel UpdateTicketDetails(TicketModel model)
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
_LoginUserName = HttpContext.Current.Session["UserName"].ToString();
_timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/OpenTicket?TicketUpdate=tt&TicketUpdate1=t", Method.POST);
request.AddParameter("Token", _securityToken);
//request.AddParameter("Description", model.listDescription[0].ToString());
request.AddParameter("Description", model.Description);
request.AddParameter("AssignedTo", model.AssignedTo);
request.AddParameter("ReportedVia", model.ReportedVia);
request.AddParameter("TicketStatus", model.TicketStatus);
request.AddParameter("Priority", model.Priority);
request.AddParameter("CustomerScore", model.CustomerScore);
request.AddParameter("CreatedBy", model.CreatedBy);
request.AddParameter("CreationTime", model.CreationTime);
request.AddParameter("LastModifiedBy", _LoginUserName);
request.AddParameter("LastModifiedTime", DateTime.Now.ToString("dd-MMM-yyyy HH:mm:ss"));
request.AddParameter("BreakdownLocation", model.BreakdownLocation);
request.AddParameter("BreakdownLongitude", model.BreakdownLongitude);
request.AddParameter("BreakdownLattitude", model.BreakdownLattitude);
request.AddParameter("AssignedToUserId", model.AssignedToUserId);
request.AddParameter("AssignedToUserLattitude", model.AssignedToUserLattitude);
request.AddParameter("AssignedToUserLongitude", model.AssignedToUserLongitude);
request.AddParameter("IsDeclined", model.Isdeclined);
request.AddParameter("EstimatedTimeForJobCompletion", model.EstimatedTimeForJobCompletion);
request.AddParameter("TotalTicketLifecycleTimeSla", model.TotalTicketLifecycleTimeSla);
request.AddParameter("EstimatedTimeForJobCompletionSubmitTime", model.EstimatedTimeForJobCompletionSubmitTime);
request.AddParameter("VehicleRegistrationNumber", model.VehicleRegisterNumber);
request.AddParameter("BreakdownLocationLandmark", model.BreakdownLocationLandmark);
request.AddParameter("RouteId", model.RouteId);
request.AddParameter("CustomerContactNo", model.CustomerContactNo);
request.AddParameter("TicketId", model.TicketId);
request.AddParameter("RepairCost ", model.RepairCost);
request.AddParameter("DefaultSlaTime", model.DefaultSlaTime);
request.AddParameter("SlaMissedReason ", model.SlaMissedReason);
request.AddParameter("SuggestionComment", model.SuggestionComment);
request.AddParameter("JobCompleteResponseTime", model.JobCompleteResponseTime);
request.AddParameter("UtcMinute", _timeOffSetMinutes);
request.AddParameter("ChassisNo", model.ChassisNo);
request.AddParameter("OdometerReading", model.OdometerReading);
request.AddParameter("VehicleRegistrationNumber", model.VehicleRegistrationNumber);
request.AddParameter("PreviousOdometerReading", model.PreviousOdometerReading);
request.AddParameter("VehicleType", model.VehicleType);
return client.Execute<TicketModel>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketDealerRepository_UpdateTicketDetails", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
/// <summary>
/// GEt chassis number by search.
/// </summary>
/// <param name="StateName">breakdown location's state name</param>
/// <param name="Limit">vans and dealers list limit</param>
/// <returns>return list</returns>
public List<CHASSIS_SRCH_Model> GetChassisNoByEOSApiSearch(string chassisBySearch)
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Global?chassisSearch=yes", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserId", _LoginUserId);
request.AddParameter("ChassisSearch", chassisBySearch);
return client.Execute<List<CHASSIS_SRCH_Model>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetChassisNoByEOSApiSearch", ex.Message, path, errorlogtf);
throw ex;
}
}
public List<Engine_SRCH_Model> GetEngineNoByEOSApiSearch(string engineBySearch)
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Global?engineSearch=yes", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserId", _LoginUserId);
request.AddParameter("EngineSearch", engineBySearch);
return client.Execute<List<Engine_SRCH_Model>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetEngineNoByEOSApiSearch", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// GEt chassis number by search.
/// </summary>
/// <param name="StateName">breakdown location's state name</param>
/// <param name="Limit">vans and dealers list limit</param>
/// <returns>return list</returns>
public CHASSIS_ODOMETER_Model GetOdoMeterBYChassisNumber(string chassisNumber, string ticketIDAlias)
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Global?chassisSearch=yes&getOdoMeter=yes", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserId", _LoginUserId);
request.AddParameter("ChassisNo", chassisNumber);
request.AddParameter("TicketIdAlias", ticketIDAlias);
return client.Execute<CHASSIS_ODOMETER_Model>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetChassisNoByEOSApiSearch", ex.Message, path, errorlogtf);
throw ex;
}
}
/// <summary>
/// Post method to get nearest vans and dealers from breakdown location
/// </summary>
/// <param name="StateName">breakdown location's state name</param>
/// <param name="Limit">vans and dealers list limit</param>
/// <returns>return list</returns>
public List<DealersOwnVanModel> GetDealersOwnVansList(string StateName, string Limit)
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
string _DealerId = HttpContext.Current.Session["DealerId"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Dealer?ticket=&ticket1=&ticket2=&ticket3=", Method.POST);
//var request = new RestRequest("Api/Dealer?ticket=&ticket1=&ticket2=&ticket3=&ticket4=", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserId", _LoginUserId);
request.AddParameter("StateName", StateName);
request.AddParameter("Limit", Limit);
request.AddParameter("DealerId", _DealerId);
return client.Execute<List<DealersOwnVanModel>>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketRepository_GetAllNearestVansDealersList", ex.Message, path, errorlogtf);
throw ex;
}
}
}
}