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