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 GODATA.Models.FilterKendoGrid; using ExcelHelper; using ExportToExcel; using System.Data; using System.Text; using System.IO; using GODATA.Models; using System.Reflection; using GODATA.Models.UserInventory; using GODATA.Models.Tracking; namespace GODATA.Controllers { /// /// Class which contains all the methods to convert a Model List to Datatable. /// public static class ListToDatatableHelper { /// /// Converts a list to data-table /// /// type of list /// list /// data-table public static DataTable ToDataTable(this IList data) { DataTable dataTable = new DataTable(typeof(TSource).Name); PropertyInfo[] props = typeof(TSource).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo prop in props) { dataTable.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType); } foreach (TSource item in data) { var values = new object[props.Length]; for (int i = 0; i < props.Length; i++) { values[i] = props[i].GetValue(item, null); } dataTable.Rows.Add(values); } return dataTable; } } /// /// Contains all the methods to show and export reports /// [GODATA.MvcApplication.SessionExpire] public class ReportController : Controller { #region Global Variables /// /// Global variable for Ticket administration CCE portal repository. /// private TicketAdministrationRepository objTicketAdministrationRepository = null; /// /// Global variable for Ticket administration CCE portal repository. /// private UserInventoryRepository objUserInventoryRepository = null; /// /// Global variable for Report repository to access methods of report repository. /// private ReportRepository objReportRepository = null; /// /// 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 web api Utc Minute from AppSetting in web.config file /// private static string _UtcMinute = ConfigurationManager.AppSettings["UtcMinute"].ToString(); /// /// getting user's utc minutes from session /// private static string _timeOffSetMinutes = null; /// /// getting user's utc minutes from session /// private static int _UtcMinutes; /// /// getting login user's id /// private static string _LoginUserId = null; /// /// getting login user's name /// private static string _LoginUserName = null; private static string _LoginUserRole = 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 total count of rows of a grid in one page from AppSetting in web.config file /// private static int _pageSize = Convert.ToInt16(ConfigurationManager.AppSettings["reportPageSize"]); /// /// URI to Path to Excel Export location. /// private static string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString(); /// /// Absolute Path on server in which excel files are saved /// private static string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString(); /// /// getting date time format from AppSetting in web.config file /// private static string _dateTimeFormat = ConfigurationManager.AppSettings["dateTimeFormat"].ToString(); /// /// Global variable for Page Size, offset. /// int lPageSise = Convert.ToInt32(ConfigurationManager.AppSettings["reportPageSize"]); #endregion #region Private Methods /// /// To generate transpose of a datatable /// /// input Table /// transpose of input datatable private DataTable GenerateTransposedTable(DataTable inputTable) { DataTable outputTable = new DataTable(); // Add columns by looping rows // Header row's first column is same as in inputTable outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString()); // Header row's second column onwards, 'inputTable's first column taken foreach (DataRow inRow in inputTable.Rows) { string newColName = inRow[0].ToString(); outputTable.Columns.Add(newColName); } // Add rows by looping columns for (int rCount = 0; rCount <= inputTable.Columns.Count - 1; rCount++) { DataRow newRow = outputTable.NewRow(); // First column is inputTable's Header row's second column newRow[0] = inputTable.Columns[rCount].ColumnName.ToString(); for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++) { string colValue = inputTable.Rows[cCount][rCount].ToString(); newRow[cCount + 1] = colValue; } outputTable.Rows.Add(newRow); } return outputTable; } private bool DataTableToCSV(DataTable dt, string fileName) { try { StringBuilder sb = new StringBuilder(); IEnumerable columnNames = dt.Columns.Cast(). Select(column => column.ColumnName); sb.AppendLine(string.Join(",", columnNames)); foreach (DataRow row in dt.Rows) { IEnumerable fields = row.ItemArray.Select(field => field.ToString()); sb.AppendLine(string.Join(",", fields)); } //File(fileName, sb.ToString()); System.IO.File.WriteAllText(fileName, sb.ToString()); return true; } catch (Exception ex) { return false; } } #endregion #region open and close ticket report #region Report Ticket_Open /// /// Get Open Ticket Report view /// /// return view public ActionResult Ticket_Open() { objLog.AddLogFile("Reports_Ticket_Open", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); _LoginUserRole = Session["UserRole"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.UserRole = _LoginUserRole; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(); } catch (Exception ex) { objLog.ErrorLogFile("Reports_Ticket_Open", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Show grid of open tickets /// /// String representation of login user id /// String representation of start date /// String representation of end date /// String representation of limit of pages /// String representation of offset /// String representation of ticket status /// return partial view of open tickets public ActionResult Ticket_Open_Grid(string userId, string startDate, string endDate, string ticketStatus) { objLog.AddLogFile("Reports_Ticket_Open_Grid", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objReportRepository = new ReportRepository(); string fromDate = "01 jan 1900"; string toDate = DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]); if (startDate != "" && endDate != "") { fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); } //Get list of open ticket List oTicketOpenFullList = objReportRepository.GetOpenTicketsList(userId, fromDate, toDate, _pageSize, 0, ticketStatus, null,null); List oList = new List(); foreach (var item in oTicketOpenFullList) { oList.AddRange(item.TicketList); } //List oTicketOpenCount = objReportRepository.GetOpenTicketsList(userId, fromDate, toDate, _pageSize, 0, "count"); //Int32 totalCount = 0; //foreach (var item in oTicketOpenCount) //{ // totalCount = item.TicketCount; //} ViewBag.pageSize = _pageSize; //ViewBag.total = totalCount; ViewBag.ticketStatus = ticketStatus; ViewBag.startDate = fromDate; ViewBag.endDate = toDate; ViewBag.userId = userId; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oList); } catch (Exception ex) { objLog.ErrorLogFile("Reports_Ticket_Open_Grid", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } ///// ///// Server side paging ///// ///// ///// ///// ///// ///// ///// ///// //public ActionResult Ticket_Open_Pager([DataSourceRequest]DataSourceRequest request, string userId, string startDate, string endDate, string ticketStatus, int total) //{ // objLog.AddLogFile("Ticket_Open_Pager", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); // try // { // objReportRepository = new ReportRepository(); // List oTicketOpenFullList = objReportRepository.GetOpenTicketsList(userId, startDate, endDate, request.PageSize, request.PageSize * (request.Page - 1), ticketStatus, null); // List oList = new List(); // foreach (var item in oTicketOpenFullList) // { // oList.AddRange(item.TicketList); // } // // List model = objBSS_Repository.GetDailyDo_Rev_A_Cell_Level(circleId, date, request.PageSize, request.PageSize * (request.Page - 1)); // DataSourceResult result = oList.ToDataSourceResult(request); // result.Total = total; // result.Data = oList; // return Json(result); // } // catch (Exception ex) // { // throw ex; // } //} #endregion #region Report Ticket_Close /// /// Get Close Ticket Report view /// /// return view public ActionResult Ticket_Close() { objLog.AddLogFile("Reports_Ticket_Close", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); _LoginUserRole = Session["UserRole"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.UserRole = _LoginUserRole; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(); } catch (Exception ex) { objLog.ErrorLogFile("Reports_Ticket_Close", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Show grid of close tickets /// /// String representation of login user id /// String representation of start date /// String representation of end date /// String representation of ticket status /// return partial view of close tickets public ActionResult Ticket_Close_Grid(string userId, string startDate, string endDate, string ticketStatus, string regionTag, string dealerTag, string emmisionTag, string vehicleTag, string customerTag,string tstatus,string TicketType) { objLog.AddLogFile("Reports_Ticket_Close_Grid", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objReportRepository = new ReportRepository(); //Adding time to start date and end date string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); string query = null; //Getting list of close ticket list List oTicketOpenFullList = objReportRepository.GetOpenTicketsList(userId, fromDate, toDate, _pageSize, 0, ticketStatus, null, TicketType); //Fetching ticket list from close ticket list List oList = new List(); foreach (var item in oTicketOpenFullList) { oList.AddRange(item.TicketList); } string strticketstatus = ""; if (ticketStatus.ToLower() == "close") { strticketstatus = "Closed"; } string ticketStatusTag = "Closed"; string filterdataval = filterdata(regionTag, dealerTag, emmisionTag, vehicleTag, customerTag, tstatus); // filterData = "TicketStatusAlias~eq~'Closed'~and~((ticketid_alias)~contains~'E1'~or~ticketid_alias~contains~'E2')~and~((vehicle_emission_norms)~eq~'BS III'~or~vehicle_emission_norms~eq~'BS VI'~or~vehicle_emission_norms~eq~'BS IV')~and~((VehicleTagging)~eq~'BUS'~or~VehicleTagging~eq~'HD')"; // get query from filter object, // filterData = "TicketStatusAlias~eq~'Closed'~and~" + stremmisionTagval1 +")"; // filterData = "TicketStatusAlias~eq~'" + strticketstatus + "'~and~" + stremmisionTagval1 + ")"; query = FilterKendoGrid.CreateFilterQuery(filterdataval); //string strdata = "TicketStatusAlias~eq~'Closed'~and~(vehicle_emission_norms~contains~'BS II'~or~vehicle_emission_norms~contains~'BS IV')"; //Server side paging, Get total count of tickets // List oTicketCloseCount = objReportRepository.GetOpenTicketsList(userId, fromDate, toDate, _pageSize, 0, "count", null); List oTicketCloseCount = objReportRepository.GetOpenTicketsList(userId, startDate, endDate, _pageSize, 0, "count", query, TicketType); Int32 totalCount = 0; foreach (var item in oTicketCloseCount) { totalCount = item.TicketCount; } ViewBag.pageSize = _pageSize; ViewBag.total = totalCount; ViewBag.ticketStatus = ticketStatus; ViewBag.startDate = fromDate; ViewBag.endDate = toDate; ViewBag.userId = userId; ViewBag.regionTag = regionTag; ViewBag.dealerTag = dealerTag; ViewBag.emmisionTag = emmisionTag; ViewBag.vehicleTag = vehicleTag; ViewBag.customerTag = customerTag; ViewBag.tstatus = tstatus; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oList); } catch (Exception ex) { objLog.ErrorLogFile("Reports_Ticket_Close_Grid", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Server side paging on close ticket report /// /// data source request /// login user id /// from data /// to date /// ticket status /// total rows to be get /// return list of close tickets /// /// Server side paging on close ticket report /// /// data source request /// login user id /// from data /// to date /// ticket status /// total rows to be get /// return list of close tickets public ActionResult Ticket_Close_Pager([DataSourceRequest] DataSourceRequest request, string userId, string startDate, string endDate, string ticketStatus, int total, string regionTag, string dealerTag, string emmisionTag, string vehicleTag, string customerTag,string tstatus) { objLog.AddLogFile("Ticket_Close_Pager", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string query = null; if (request.Filters.Count > 0) { string strticketstatus = ""; if (ticketStatus.ToLower() == "close") { strticketstatus = "Closed"; } string ticketStatusTag = "Closed"; string filterdataval= filterdata(regionTag, dealerTag, emmisionTag, vehicleTag, customerTag, tstatus); // filterData = "TicketStatusAlias~eq~'Closed'~and~((ticketid_alias)~contains~'E1'~or~ticketid_alias~contains~'E2')~and~((vehicle_emission_norms)~eq~'BS III'~or~vehicle_emission_norms~eq~'BS VI'~or~vehicle_emission_norms~eq~'BS IV')~and~((VehicleTagging)~eq~'BUS'~or~VehicleTagging~eq~'HD')"; // get query from filter object, // filterData = "TicketStatusAlias~eq~'Closed'~and~" + stremmisionTagval1 +")"; // filterData = "TicketStatusAlias~eq~'" + strticketstatus + "'~and~" + stremmisionTagval1 + ")"; query = FilterKendoGrid.CreateFilterQuery(filterdataval); //string strdata = "TicketStatusAlias~eq~'Closed'~and~(vehicle_emission_norms~contains~'BS II'~or~vehicle_emission_norms~contains~'BS IV')"; } objReportRepository = new ReportRepository(); //Getting list of close ticket list List oTicketOpenFullList = objReportRepository.GetOpenTicketsList(userId, startDate, endDate, request.PageSize, request.PageSize * (request.Page - 1), ticketStatus, query,null); //Fetching ticket list from close ticket list List oList = new List(); foreach (var item in oTicketOpenFullList) { oList.AddRange(item.TicketList); } //Server side paging, Get total count of tickets List oTicketCloseCount = objReportRepository.GetOpenTicketsList(userId, startDate, endDate, request.PageSize, request.PageSize * (request.Page - 1), "count", query,null); Int32 totalCount = 0; foreach (var item in oTicketCloseCount) { totalCount = item.TicketCount; } DataSourceResult result = oList.ToDataSourceResult(request); //check if filters are applied than total count fetched from server if (query == null) { result.Total = total; } else { result.Total = totalCount; } //send data to kendo grid result.Data = oList; return Json(result); } catch (Exception ex) { objLog.ErrorLogFile("Ticket_Close_Pager", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } public string filterdata(string strregionTag, string strdealerTag, string stremmisionTag, string strvehicleTag, string strcustomerTag, string strticketstatus) { string strregionTagval = ""; if (strregionTag == null || strregionTag == "") { } else { //strregionTagval = "(ticketid_alias)~contains~"; strregionTagval = "(ticketid_alias)~contains~"; string source = strregionTag; string[] names = source.Split(','); for (int i = 0; i < names.Length; i++) { // names[i] = "'" + names[i].Trim() + "'"; string strresult = names[i].Trim().Substring(0, 1); string strlastresult = names[i].Trim().Substring(names[i].Length - 1, 1); var finalregion = strresult + strlastresult; strregionTagval += "'" + finalregion + "'~or~ticketid_alias~contains~"; } int positionemission = strregionTagval.LastIndexOf("~or~ticketid_alias~contains~"); strregionTagval = strregionTagval.Substring(0, positionemission); strregionTagval = strregionTagval + ")~and~"; } string strdealerTagval = ""; if (strdealerTag == null || strdealerTag == "") { } else { strdealerTagval = "(DealerDealerName)~eq~"; string source = strdealerTag; string[] names = source.Split(','); for (int i = 0; i < names.Length; i++) { strdealerTagval += "'" + names[i].Trim() + "'~or~DealerDealerName~eq~"; } int positionemission = strdealerTagval.LastIndexOf("~or~DealerDealerName~eq~"); strdealerTagval = strdealerTagval.Substring(0, positionemission); strdealerTagval = strdealerTagval + ")~and~"; // strdealerTag = string.Join(",", names); } string stremmisionTagval = ""; if (stremmisionTag == null || stremmisionTag == "") { } else { stremmisionTagval = "(vehicle_emission_norms)~eq~"; string source = stremmisionTag; string[] names = source.Split(','); for (int i = 0; i < names.Length; i++) { // names[i] = "'" + names[i].Trim() + "'"; stremmisionTagval += "'" + names[i].Trim() + "'~or~vehicle_emission_norms~eq~"; } int positionemission = stremmisionTagval.LastIndexOf("~or~vehicle_emission_norms~eq~"); stremmisionTagval = stremmisionTagval.Substring(0, positionemission); stremmisionTagval = stremmisionTagval + ")~and~"; // strvehicleTag = string.Join(",", names); } string stremmisionTagval1 = ""; if (stremmisionTagval1 == null || stremmisionTagval1 == "") { } else { stremmisionTagval1 = "(vehicle_emission_norms)~eq~"; string source = stremmisionTag; string[] names = source.Split(','); for (int i = 0; i < names.Length; i++) { // names[i] = "'" + names[i].Trim() + "'"; stremmisionTagval1 += "'" + names[i].Trim() + "'~or~vehicle_emission_norms~eq~"; } int positionemission = stremmisionTagval1.LastIndexOf("~or~vehicle_emission_norms~eq~"); stremmisionTagval1 = stremmisionTagval1.Substring(0, positionemission); // stremmisionTagval = stremmisionTagval + ")~and~"; // strvehicleTag = string.Join(",", names); } if (strcustomerTag == null || strcustomerTag == "") { } else { string source = strcustomerTag; string[] names = source.Split(','); for (int i = 0; i < names.Length; i++) { names[i] = "'" + names[i].Trim() + "'"; } // strcustomerTag = string.Join(",", names); } string strverticle = ""; if (strvehicleTag == null || strvehicleTag == "") { } else { strverticle = "(VehicleTagging)~eq~"; string source = strvehicleTag; string[] names = source.Split(','); for (int i = 0; i < names.Length; i++) { // names[i] = "'" + names[i].Trim() + "'"; strverticle += "'" + names[i].Trim() + "'~or~VehicleTagging~eq~"; } int positionver = strverticle.LastIndexOf("~or~VehicleTagging~eq~"); strverticle = strverticle.Substring(0, positionver); strverticle = strverticle + ")~and~"; // strvehicleTag = string.Join(",", names); } // var customerId =(Request.Params["filter[filters][0][value]"]).ToString(); // ModifyFilters((IList)request.Filters); var filterData = (System.Web.HttpContext.Current.Request.Params["filter"]); string strfinal = strregionTagval + strdealerTagval + stremmisionTagval + strverticle; if (strfinal == "" || strfinal == null) { filterData = "TicketStatusAlias~eq~'" + strticketstatus +"'"; } else { int position = strfinal.LastIndexOf("~and~"); strfinal = strfinal.Substring(0, position); filterData = "TicketStatusAlias~eq~'" + strticketstatus + "'~and~" + strfinal + ""; } return filterData; } /// /// Export to excel Open and Close Ticket Report /// /// Login user id /// From Date /// To Date /// Ticket Status(Open or Close) /// Returns excel file [HttpPost] public string Ticket_Close_Open_ExportToExcel(string UserId, string startDate, string endDate, string ticketStatus) { objLog.AddLogFile("Ticket_Close_Open_ExportToExcel", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string filename = null; string templatePath = null; objReportRepository = new ReportRepository(); string fromDate = "01 jan 1900"; string toDate = DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]); if (startDate != "" && endDate != "") { fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); } //string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); //string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //Get list of ticket List oTicketOpenFullList = objReportRepository.GetOpenTicketsList(UserId, fromDate, toDate, 100000, 0, ticketStatus, null,null); //Fetching ticket list from close ticket list List oList = new List(); foreach (var item in oTicketOpenFullList) { oList.AddRange(item.TicketList); } DataTable OpenTicketTable = oList.ToDataTable(); //Server side paging, Get total count of tickets Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1; for (var count = OpenTicketTableColumnCount; count >= 20; count--) { OpenTicketTable.Columns.RemoveAt(count); } if (ticketStatus.ToLower().Trim() == "open") { OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); //OpenTicketTable.Columns.RemoveAt(14); } else { OpenTicketTable.Columns.RemoveAt(17); OpenTicketTable.Columns.RemoveAt(2); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(OpenTicketTable); ////Give column names ds.Tables[0].Columns[0].ColumnName = "Ticket Id"; ds.Tables[0].Columns[1].ColumnName = "Ticket Status"; ds.Tables[0].Columns[2].ColumnName = "Ticket Creation Time"; ds.Tables[0].Columns[3].ColumnName = "Customer Name"; ds.Tables[0].Columns[4].ColumnName = "Customer Contact No."; ds.Tables[0].Columns[5].ColumnName = "Vehicle Registration No."; ds.Tables[0].Columns[6].ColumnName = "Vehicle Type"; ds.Tables[0].Columns[7].ColumnName = "Default SLA Time (In Min)"; ds.Tables[0].Columns[8].ColumnName = "Response(In min)"; ds.Tables[0].Columns[9].ColumnName = "EOS Team Member/Van Reg No."; ds.Tables[0].Columns[10].ColumnName = "Dealer Name"; ds.Tables[0].Columns[11].ColumnName = "Dealer Contact No."; ds.Tables[0].Columns[12].ColumnName = "Language"; ds.Tables[0].Columns[13].ColumnName = "Pre Closure Time"; ds.Tables[0].Columns[14].ColumnName = "Chassis Number"; ds.Tables[0].Columns[15].ColumnName = "Odometer Reading"; if (ticketStatus == "close") { ds.Tables[0].Columns.RemoveAt(1); } //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ticketStatus == "open") { filename = "OpenTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Ticket", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false }); templatePath = Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString()); } else { filename = "CloseTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Close Ticket", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false }); templatePath = Server.MapPath(ConfigurationManager.AppSettings["CloseTicketReportTemplate"].ToString()); } string pathToExcelFile = _exportLocation + filename; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// // returning path to generated Excel file if (result.Status == 1) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Ticket_Close_Open_ExportToExcel", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } [HttpPost] public string Ticket_Close_Open_NewExportToExcel(string UserId, string startDate, string endDate, string ticketStatus) { objLog.AddLogFile("Ticket_Close_Open_ExportToExcel", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string filename = null; string templatePath = null; objReportRepository = new ReportRepository(); string fromDate = "01 jan 1900"; string toDate = DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]); if (startDate != "" && endDate != "") { fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); } //Get list of ticket List oTicketOpenFullList = objReportRepository.GetOpenTicketsList(UserId, fromDate, toDate, 100000, 0, ticketStatus, null,null); //Fetching ticket list from close ticket list List oList = new List(); foreach (var item in oTicketOpenFullList) { oList.AddRange(item.TicketList); } DataTable OpenTicketTable = oList.ToDataTable(); //Server side paging, Get total count of tickets Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1; //--------- *** changes on 13-10-2020 start ***---------------------------------------------------------- if (ticketStatus.ToLower().Trim() == "close") { for (var count = OpenTicketTableColumnCount; count >= 35; count--) //modified count on 25-11-2020 //modified count from 34 to 35 on 23-12-2020 { OpenTicketTable.Columns.RemoveAt(count); } if (ticketStatus.ToLower().Trim() == "open") { OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); //OpenTicketTable.Columns.RemoveAt(14); } else { OpenTicketTable.Columns.RemoveAt(17); OpenTicketTable.Columns.RemoveAt(2); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(OpenTicketTable); //----------------------------------- *** changed code ***-------------------------------------- //ds.Tables[0].Columns[0].ColumnName = "Ticket Id"; //ds.Tables[0].Columns[1].ColumnName = "Ticket Status"; //ds.Tables[0].Columns[2].ColumnName = "Customer Name"; //ds.Tables[0].Columns[3].ColumnName = "Customer Contact No."; //ds.Tables[0].Columns[4].ColumnName = "Vehicle Registration No."; //ds.Tables[0].Columns[5].ColumnName = "Vehicle Type"; //ds.Tables[0].Columns[6].ColumnName = "Default SLA Time (In Min)"; //ds.Tables[0].Columns[7].ColumnName = "Response(In min)"; //ds.Tables[0].Columns[8].ColumnName = "EOS Team Member/Van Reg No."; //ds.Tables[0].Columns[9].ColumnName = "Dealer Name"; //ds.Tables[0].Columns[10].ColumnName = "Dealer Contact No."; //ds.Tables[0].Columns[11].ColumnName = "Language"; //ds.Tables[0].Columns[12].ColumnName = "Pre Closure Time"; //ds.Tables[0].Columns[16].ColumnName = "Chassis No"; //ds.Tables[0].Columns[17].ColumnName = "Odometer Reading"; //// added van/breakdown lat lng //ds.Tables[0].Columns[18].ColumnName = "Van Latitude At Trip Start"; //ds.Tables[0].Columns[19].ColumnName = "Van Longitude At Trip Start"; //ds.Tables[0].Columns[20].ColumnName = "Van Latitude At Van Reached"; //ds.Tables[0].Columns[21].ColumnName = "Van Longitude At Van Reached"; //ds.Tables[0].Columns[22].ColumnName = "Van Latitude At Trip End"; //ds.Tables[0].Columns[23].ColumnName = "Van Longitude At Trip End"; //ds.Tables[0].Columns[24].ColumnName = "Breakdown Location Latitude"; //ds.Tables[0].Columns[25].ColumnName = "Breakdown Location Longitude"; //ds.Tables[0].Columns[26].ColumnName = "Ticket Closed Reason"; //change the column name on 25-11-2020 //ds.Tables[0].Columns[27].ColumnName = "Vehicle Warranty"; //ds.Tables[0].Columns[28].ColumnName = "Vehicle Amc"; //ds.Tables[0].Columns[29].ColumnName = "Vehicle Emission Norms"; //ds.Tables[0].Columns[30].ColumnName = "Vehicle Sales Date"; //ds.Tables[0].Columns[31].ColumnName = "Ticket Closed Reason"; //change the column name on 25-11-2020 //change the column name on 23-12-2020 //ds.Tables[0].Columns[32].ColumnName = "Van Reached Punch Time"; //change the column name on 23-12-2020 //----------------------------------- *** changed code ***-------------------------------------- //----------------------------------- *** changed code ***-------------------------------------- ds.Tables[0].Columns[0].ColumnName = "Ticket Id"; ds.Tables[0].Columns[1].ColumnName = "Ticket Status"; ds.Tables[0].Columns[2].ColumnName = "Customer Name"; ds.Tables[0].Columns[3].ColumnName = "Customer Contact No."; ds.Tables[0].Columns[4].ColumnName = "Vehicle Registration No."; ds.Tables[0].Columns[5].ColumnName = "Vehicle Type"; ds.Tables[0].Columns[6].ColumnName = "Default SLA Time (In Min)"; ds.Tables[0].Columns[7].ColumnName = "Response(In min)"; ds.Tables[0].Columns[8].ColumnName = "EOS Team Member/Van Reg No."; ds.Tables[0].Columns[9].ColumnName = "Dealer Name"; ds.Tables[0].Columns[10].ColumnName = "Dealer Contact No."; ds.Tables[0].Columns[11].ColumnName = "Language"; ds.Tables[0].Columns[12].ColumnName = "Pre Closure Time"; ds.Tables[0].Columns[16].ColumnName = "Chassis No"; ds.Tables[0].Columns[17].ColumnName = "Odometer Reading"; ds.Tables[0].Columns[18].ColumnName = "Van Reach By Call Center"; //added on 19-01-2021 // added van/breakdown lat lng ds.Tables[0].Columns[19].ColumnName = "Van Latitude At Trip Start"; ds.Tables[0].Columns[20].ColumnName = "Van Longitude At Trip Start"; ds.Tables[0].Columns[21].ColumnName = "Van Latitude At Van Reached"; ds.Tables[0].Columns[22].ColumnName = "Van Longitude At Van Reached"; ds.Tables[0].Columns[23].ColumnName = "Van Latitude At Trip End"; ds.Tables[0].Columns[24].ColumnName = "Van Longitude At Trip End"; ds.Tables[0].Columns[25].ColumnName = "Breakdown Location Latitude"; ds.Tables[0].Columns[26].ColumnName = "Breakdown Location Longitude"; //------------------- added on 23-12-2020 start---------------------------------- ds.Tables[0].Columns[27].ColumnName = "Vehicle Warranty"; ds.Tables[0].Columns[28].ColumnName = "Vehicle Amc"; ds.Tables[0].Columns[29].ColumnName = "Vehicle Emission Norms"; ds.Tables[0].Columns[30].ColumnName = "Vehicle Sales Date"; ds.Tables[0].Columns[31].ColumnName = "Ticket Closed Reason"; //change the column name on 25-11-2020 //------------------- added on 23-12-2020 end---------------------------------- //----------------------------------- *** changed code ***-------------------------------------- if (ticketStatus == "close") { ds.Tables[0].Columns.RemoveAt(1); //ds.Tables[0].Columns.RemoveAt(25); // added on 13-10-2020 } //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ticketStatus == "open") { filename = "OpenTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Ticket", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false }); templatePath = Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString()); } else { filename = "CloseTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Close Ticket", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false }); templatePath = Server.MapPath(ConfigurationManager.AppSettings["CloseTicketReportTemplate"].ToString()); } string pathToExcelFile = _exportLocation + filename; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); //commented on 24-07-2020(excel download same as consolidate report) bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); if (isCreated == true) { return _exportLocation + filename; } else { return "error"; } } else { for (var count = OpenTicketTableColumnCount; count >= 21; count--) //change the count from 20 from 21 on 23-12-2020 { OpenTicketTable.Columns.RemoveAt(count); } if (ticketStatus.ToLower().Trim() == "open") { OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); OpenTicketTable.Columns.RemoveAt(OpenTicketTable.Columns.Count - 4); //OpenTicketTable.Columns.RemoveAt(14); } else { OpenTicketTable.Columns.RemoveAt(17); OpenTicketTable.Columns.RemoveAt(2); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(OpenTicketTable); ////Give column names //changes done on 13-10-2020 //----------------------------------- *** existing code ***-------------------------------------- ds.Tables[0].Columns[0].ColumnName = "Ticket Id"; ds.Tables[0].Columns[1].ColumnName = "Ticket Status"; ds.Tables[0].Columns[2].ColumnName = "Ticket Creation Time"; ds.Tables[0].Columns[3].ColumnName = "Customer Name"; ds.Tables[0].Columns[4].ColumnName = "Customer Contact No."; ds.Tables[0].Columns[5].ColumnName = "Vehicle Registration No."; ds.Tables[0].Columns[6].ColumnName = "Vehicle Type"; ds.Tables[0].Columns[7].ColumnName = "Default SLA Time (In Min)"; ds.Tables[0].Columns[8].ColumnName = "Response(In min)"; ds.Tables[0].Columns[9].ColumnName = "EOS Team Member/Van Reg No."; ds.Tables[0].Columns[10].ColumnName = "Dealer Name"; ds.Tables[0].Columns[11].ColumnName = "Dealer Contact No."; ds.Tables[0].Columns[12].ColumnName = "Language"; ds.Tables[0].Columns[13].ColumnName = "Pre Closure Time"; ds.Tables[0].Columns[14].ColumnName = "Chassis Number"; ds.Tables[0].Columns[15].ColumnName = "Odometer Reading"; ds.Tables[0].Columns[16].ColumnName = "Van Reach By Call Center"; //added on 19-01-2021 //----------------------------------- *** existing code ***-------------------------------------- if (ticketStatus == "close") { ds.Tables[0].Columns.RemoveAt(1); } //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ticketStatus == "open") { filename = "OpenTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Ticket", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false }); templatePath = Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString()); } else { filename = "CloseTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Close Ticket", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false }); templatePath = Server.MapPath(ConfigurationManager.AppSettings["CloseTicketReportTemplate"].ToString()); } string pathToExcelFile = _exportLocation + filename; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); //commented on 24-07-2020(excel download same as consolidate report) bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); if (isCreated == true) { return _exportLocation + filename; } else { return "error"; } } } catch (Exception ex) { objLog.ErrorLogFile("Ticket_Close_Open_ExportToExcel", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #endregion #region Show Ticket Details, Activities, feedback /// /// Get Full details of ticket /// /// selected ticket's id /// ticket status open or close /// returns list type partial view public ActionResult Ticket_GetOpencloseTicketFullDetails(string ticketId, string ticketStatus) { objLog.AddLogFile("Ticket_GetOpencloseTicketFullDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objTicketAdministrationRepository = new TicketAdministrationRepository(); List oCloseTicketList = new List(); ViewBag.CloseTicketHistory = null; if (ticketStatus == "close") { //Get close ticket list oCloseTicketList = objTicketAdministrationRepository.GetCloseTicketHistory("", "", ticketId); ViewBag.CloseTicketHistory = oCloseTicketList; } //Get ticket details List oTicketDetails = new List(); oTicketDetails = objTicketAdministrationRepository.Restful_GetOpenCloseTicketDetails(ticketId, ticketStatus); //Global variables int RouteId = 0; string routeName = ""; //Getting details of vehicle and customer from ticket details list foreach (var item in oTicketDetails) { RouteId = item.RouteId; } //Get route name List oRouteList = objTicketAdministrationRepository.GetRoutesList(); var oRouteName = oRouteList.Where(w => w.Id.Equals(RouteId)); foreach (var item11 in oRouteName) { routeName = item11.Name; } ViewBag.Route = routeName; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oTicketDetails); } catch (Exception ex) { objLog.ErrorLogFile("Ticket_GetOpencloseTicketFullDetails", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Get caller/driver details of ticket /// /// contact no. of caller/driver /// vehicle's registration no. of caller/driver /// return json of list type public ActionResult Ticket_GetOpencloseTicketDriverDetails(string CustomerContactNo, string VRegistrationNo) { objLog.AddLogFile("Ticket_GetOpencloseTicketDriverDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objTicketAdministrationRepository = new TicketAdministrationRepository(); //Get customer details List oCustomerList = objTicketAdministrationRepository.GetCustomerDetails("", CustomerContactNo, ""); //List itemCustomer = oCustomerList.Where(w => w.CustomerMobile1.Equals(CustomerContactNo)).ToList(); List itemCustomer = oCustomerList.Where(w => w.VehicleRegistrationNumber.Equals(VRegistrationNo)).ToList(); itemCustomer = itemCustomer.Where(w => w.CustomerVehicleIsOwnwer.Equals(false)).ToList(); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return Json(new { success = true, list = itemCustomer }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { objLog.ErrorLogFile("Ticket_GetOpencloseTicketDriverDetails", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Get details of Vehicle's Owner /// /// Vehicle's registration no. /// return list type json public ActionResult Ticket_GetOpencloseTicketOwnerDetails(string VRegistrationNo) { objLog.AddLogFile("Ticket_GetOpencloseTicketOwnerDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objTicketAdministrationRepository = new TicketAdministrationRepository(); //Get owner details List oCustomerOwnerDetailsList = objTicketAdministrationRepository.GetCustomerOwnerDetails(VRegistrationNo); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return Json(new { success = true, list = oCustomerOwnerDetailsList }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { objLog.ErrorLogFile("Ticket_GetOpencloseTicketOwnerDetails", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Get caller/driver's Vehicle details /// /// vehicle's registration no. /// return list type json public ActionResult Ticket_GetOpencloseTicketVehicleDetails(string VRegistrationNo) { objLog.AddLogFile("Ticket_GetOpencloseTicketVehicleDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objTicketAdministrationRepository = new TicketAdministrationRepository(); string VModelNo = ""; string VModelTagging = ""; string VModelTaggingName = ""; //Get vehicle details List oVehicleDetailsList = objTicketAdministrationRepository.GetVehicleDetailsRegistrationNoWise(VRegistrationNo); foreach (var item12 in oVehicleDetailsList) { VModelNo = item12.ModelNumber; } //Get vehicle's product varient(model tagging) List oVehicleModelList = objTicketAdministrationRepository.GetVehicleModelList(); var oVModelTaggingList = oVehicleModelList.Where(w => w.VehicleTypeId.Equals(VModelNo)); foreach (var item13 in oVModelTaggingList) { VModelTagging = item13.VehicleTypeTagging; VModelTaggingName = item13.VehicleTypeName; } objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return Json(new { success = true, list = oVehicleDetailsList, vehicleModelTagging = VModelTagging, vehicleModelTaggingName = VModelTaggingName }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { objLog.ErrorLogFile("Ticket_GetOpencloseTicketVehicleDetails", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #region get tracking device alias wise for open ticket report /// /// Get tracking list device alias wise for open ticket report /// /// device alias of van whom to ticket is assigned /// ticket creation time /// return tracking list public JsonResult Report_GetTrackingHistoryDeviceAliasWise(string deviceAlias, DateTime creationTime) { objLog.AddLogFile("Report_GetTrackingHistoryDeviceAliasWise", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objTicketAdministrationRepository = new TicketAdministrationRepository(); //Get vehicle details List oTrackingDetailsList = objTicketAdministrationRepository.GetTrackingListDeviceAliasWise(deviceAlias, creationTime); //.GroupBy(g => g.Latitude).Select(s => s.FirstOrDefault()).ToList(); List oList = new List(); foreach (var item in oTrackingDetailsList) { oList.Add(new { lat = Convert.ToDecimal(item.Latitude), lng = Convert.ToDecimal(item.Longitude) }); } objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return Json(new { success = true, list = oList }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { objLog.ErrorLogFile("Report_GetTrackingHistoryDeviceAliasWise", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #endregion #region Get Escalation Level Membbers /// /// Get escalation level members details /// /// Dealer ID /// Vehicle Tagging /// return partial view public ActionResult Ticket_GetOpencloseTicketEscalationMembersDetails(string dealer_id, string vehicle_tagging) { objLog.AddLogFile("TicketReport_GetOpencloseTicketEscalationMembersDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objTicketAdministrationRepository = new TicketAdministrationRepository(); //Get vehicle details EscalationMemberLevel oEscalationMemberDetails = objTicketAdministrationRepository.GetEscalationMemberDetailsDealerVehicleTypeWise(dealer_id, vehicle_tagging); List oEscalationMemberDetailsList = oEscalationMemberDetails.EscalationLevelList; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oEscalationMemberDetailsList); } catch (Exception ex) { objLog.ErrorLogFile("TicketReport_GetOpencloseTicketEscalationMembersDetails", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #endregion /// /// Get ticket activities /// /// ticket id /// ticket status /// return view public ActionResult Ticket_GetOpencloseTicketActivities(string ticketId, string ticketStatus) { objLog.AddLogFile("Ticket_GetOpencloseTicketActivities", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string _LoginUserRole = Session["UserRole"].ToString(); objTicketAdministrationRepository = new TicketAdministrationRepository(); List oOpenTicketActivityList = null; List oCloseTicketActivityList = null; List oTicketDetails = new List(); oTicketDetails = objTicketAdministrationRepository.Restful_GetOpenCloseTicketDetails(ticketId, ticketStatus); ViewBag.UserRole = _LoginUserRole; //Get ticket activity //Get close tickets activity if ticket status is close if (ticketStatus == "close") { //close ticket api oCloseTicketActivityList = objTicketAdministrationRepository.GetCloseTicketActivityDetails(ticketId); ViewBag.OpenTicketActivity = null; ViewBag.CloseTicketActivity = oCloseTicketActivityList; } //else get open tickets activity else { //open ticket api oOpenTicketActivityList = objTicketAdministrationRepository.GetOpenTicketActivityDetails(ticketId); ViewBag.OpenTicketActivity = oOpenTicketActivityList; ViewBag.CloseTicketActivity = null; } objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oTicketDetails); } catch (Exception ex) { objLog.ErrorLogFile("Ticket_GetOpencloseTicketActivities", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Get partial view of feedback detail page. /// /// selected ticket id /// creation time of ticket /// time between ticket open and close(in hours) /// return partial view public ActionResult Ticket_Feedback(string selectTicketId, string ticketCreationTime, double isMoreThan24Hrs) { objLog.AddLogFile("TicketAdministrationDealer_Feedback", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string _LoginUserRole = Session["UserRole"].ToString(); objTicketAdministrationRepository = new TicketAdministrationRepository(); FeedBackModel objFeedbackModel = new FeedBackModel(); FeedBackModel objFeedbackHistory = new FeedBackModel(); ViewBag.UserRole = _LoginUserRole; List oFeedbackHistoryList = new List(); if (selectTicketId != null) { ViewBag.TicketId = selectTicketId; ViewBag.CreationTime = ticketCreationTime; ViewBag.IsMoreThan24Hrs = isMoreThan24Hrs; //Get Feedback questions List objFeedbackQuestionsList = objTicketAdministrationRepository.GetFeedbackDropDownDataList("feedback"); ViewBag.FeedbackQuestions = objFeedbackQuestionsList; //Get feedback history details objFeedbackHistory = objTicketAdministrationRepository.GetFeedBackHistoryDetailsTicketIdWise(selectTicketId); oFeedbackHistoryList = objFeedbackHistory.feedbackHistoryList.ToList(); ViewBag.FeedbackHistory = oFeedbackHistoryList; //Get feedback details if any objFeedbackModel = objTicketAdministrationRepository.GetFeedBackDetailsTicketIdWise(selectTicketId, ticketCreationTime); ViewBag.EaseOfGettingCall = objFeedbackModel.FeedBackEaseOfGettingCall; ViewBag.ResponseOfCallCenter = objFeedbackModel.FeedBackResponseOfCallCenter; ViewBag.TimelyUpdationByDealer = objFeedbackModel.FeedBackTimelyUpdationByDealer; ViewBag.TotalRepairTime = objFeedbackModel.FeedBackTotalRepairTime; ViewBag.EosCharges = objFeedbackModel.FeedBackEosCharges; ViewBag.OverAllExperience = objFeedbackModel.FeedBackOverAllExperience; } objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(objFeedbackModel); } catch (Exception ex) { objLog.ErrorLogFile("TicketAdministrationDealer_Feedback", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #endregion #endregion #region Check if ticket exist in open /// /// Method to check if ticket exist in open ticket table /// /// ticket id /// ticket status /// return json success true or false public JsonResult CheckIfTicketExistInOpen(string ticketId, string ticketStatus) { objLog.AddLogFile("Report_CheckIfTicketExistInOpen", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objTicketAdministrationRepository = new TicketAdministrationRepository(); //Get ticket open list List oOpenTicketList = new List(); oOpenTicketList = objTicketAdministrationRepository.GetOpenTicketHistory("", "", ticketId); if (oOpenTicketList.Count > 0) { oOpenTicketList = oOpenTicketList.Where(w => w.TicketId.Equals(ticketId)).ToList(); if (oOpenTicketList.Count > 0) { return Json(new { success = true }, JsonRequestBehavior.AllowGet); } } return Json(new { success = false }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { objLog.ErrorLogFile("Report_CheckIfTicketExistInOpen", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #endregion #region REPORTS #region EOS Call Count /// /// to show main page of EOS call count, which consists filters /// /// main page of EOS call count public ActionResult getEosCallCount() { _LoginUserId = Session["UserId"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// show partial page for EOS call count which consists charts and table /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// partial page for EOS call count [HttpPost] public ActionResult ShowEosCallCount(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); EosCallCount model = new EosCallCount(); model = oReportRepository.GetEosCallCount(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowEosCallCount", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports EOS call count report /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// generated file path [HttpPost] public string ExportEosCallCount(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); EosCallCount model = new EosCallCount(); model = oReportRepository.GetEosCallCount(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); DataTable EosCallCountTable = new DataTable(); if (model.EosList != null) { EosCallCountTable = model.EosList.ToDataTable(); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(EosCallCountTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ds.Tables[0].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "EOS Call Count", StartColumnName = "B", StartRowNumber = 5, WorkSheetNumber = 1, AutoFit = false }); } string filename = "EosCallCount_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["eosCellCountTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportEosCallCount", ex.Message, path, errorlogtf); return "error"; } } #endregion #region HD, BUSES & LMD Contribution /// /// to show main page of Hd Bus Lmd Contribution, which consists filters /// /// main page of Hd Bus Lmd Contribution public ActionResult HdBusLmdContribution() { _LoginUserId = Session["UserId"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// to show partial page of Hd Bus Lmd Contribution, which consists charts and tables /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// partial page of Hd Bus Lmd Contribution [HttpPost] public ActionResult ShowHdBusLmdContribution(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); HdLmdBusContribution model = new HdLmdBusContribution(); model = oReportRepository.GetHdLmdBusContribution(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowHdBusLmdContribution", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports HD, lmd, bus contribution report /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// generated file path [HttpPost] public string ExportHdBusLmdContribution(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); HdLmdBusContribution model = new HdLmdBusContribution(); model = oReportRepository.GetHdLmdBusContribution(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); DataTable HdBusLmdContributionTable = new DataTable(); DataTable HdLmdBusclosedTable = new DataTable(); if (model.HdLmdBusContributionList != null) { HdBusLmdContributionTable = model.HdLmdBusContributionList.ToDataTable(); HdBusLmdContributionTable.Columns.RemoveAt(5); HdBusLmdContributionTable.Columns.RemoveAt(5); HdBusLmdContributionTable.Columns.RemoveAt(5); } if (model.HdLmdBusclosedList != null) { HdLmdBusclosedTable = model.HdLmdBusclosedList.ToDataTable(); HdLmdBusclosedTable.Columns.RemoveAt(10); HdLmdBusclosedTable.Columns.RemoveAt(10); HdLmdBusclosedTable.Columns.RemoveAt(10); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(HdBusLmdContributionTable); ds.Tables.Add(HdLmdBusclosedTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ds.Tables[0].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "HD BUSES and LMD Contribution", StartColumnName = "C", StartRowNumber = 5, WorkSheetNumber = 1, AutoFit = false }); } if (ds.Tables[1].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[1].TableName, WorkSheetName = "HD BUSES and LMD Contribution", StartColumnName = "O", StartRowNumber = 6, WorkSheetNumber = 1, AutoFit = false }); } string filename = "HdBusLmdContribution_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["HdBusLmdContributionTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); // string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportHdBusLmdContribution", ex.Message, path, errorlogtf); return "error"; } } #endregion #region Dealer-Wise Call Details /// /// To show main page of Dealer Wise Call Details, which consists of filters /// /// main page of Dealer Wise Call Details public ActionResult DealerWiseCallDetails() { _LoginUserId = Session["UserId"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// To show partial page of Dealer Wise Call Details, which consists of charts and tables /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// partial page of Dealer Wise Call Details [HttpPost] public ActionResult ShowDealerWiseCallDetails(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); DealerWiseCallDetailModel model = new DealerWiseCallDetailModel(); model.DealerWiseCallDetail = oReportRepository.GetDealerWiseCallDetails(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); model.DealerWiseReasonCallClosedBeyond24Hrs = oReportRepository.GetReasonCallClosedBeyond24Hrs(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowDealerWiseCallDetails", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports Dealer Wise Call Details report /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// generated file path [HttpPost] public string ExportDealerWiseCallDetails(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); DealerWiseCallDetailModel model = new DealerWiseCallDetailModel(); model.DealerWiseCallDetail = oReportRepository.GetDealerWiseCallDetails(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); model.DealerWiseReasonCallClosedBeyond24Hrs = oReportRepository.GetReasonCallClosedBeyond24Hrs(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); DataTable DealerWiseCallDetailsTable = new DataTable(); if (model.DealerWiseCallDetail.DealerWiseCallDetailList != null) { DealerWiseCallDetailsTable = model.DealerWiseCallDetail.DealerWiseCallDetailList.ToDataTable(); DealerWiseCallDetailsTable.Columns.RemoveAt(9); DealerWiseCallDetailsTable.Columns.RemoveAt(9); DealerWiseCallDetailsTable.Columns.RemoveAt(9); DealerWiseCallDetailsTable.Columns.RemoveAt(9); } DataTable DealerWiseReasonCallClosedBeyond24HrsTable = new DataTable(); if (model.DealerWiseReasonCallClosedBeyond24Hrs.ReasonCallClosedBeyond24HrsList != null) { DealerWiseReasonCallClosedBeyond24HrsTable = model.DealerWiseReasonCallClosedBeyond24Hrs.ReasonCallClosedBeyond24HrsList.ToDataTable(); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(DealerWiseCallDetailsTable); ds.Tables.Add(DealerWiseReasonCallClosedBeyond24HrsTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (DealerWiseCallDetailsTable.Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Dealer Wise Call Details", StartColumnName = "C", StartRowNumber = 7, WorkSheetNumber = 1, AutoFit = false }); } if (DealerWiseReasonCallClosedBeyond24HrsTable.Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[1].TableName, WorkSheetName = "Dealer Wise Call Details", StartColumnName = "Q", StartRowNumber = 7, WorkSheetNumber = 1, AutoFit = false }); } string filename = "DealerWiseCallDetails_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["DealerWiseCallDetailsTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportDealerWiseCallDetails", ex.Message, path, errorlogtf); return ex.Message; } } #endregion #region Timeslot Closure /// /// To show main page Timeslot Closure report which consists of filters /// /// main page Timeslot Closure report public ActionResult TimeslotClosure() { _LoginUserId = Session["UserId"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// To show partial page Timeslot Closure report which consists of charts and tables /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// partial page Timeslot Closure report [HttpPost] public ActionResult ShowTimeslotClosure(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); TimeslotClosure model = new TimeslotClosure(); model = oReportRepository.GetTimeslotClosure(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowTimeslotClosure", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports Timeslot Closure report /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// generated report path [HttpPost] public string ExportTimeslotClosure(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); TimeslotClosure model = new TimeslotClosure(); model = oReportRepository.GetTimeslotClosure(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); DataTable DealerWiseCallDetailsTable = new DataTable(); if (model.TimeSlotClouserDetailList != null) { DealerWiseCallDetailsTable = model.TimeSlotClouserDetailList.ToDataTable(); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(DealerWiseCallDetailsTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ds.Tables[0].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Timeslot Closure", StartColumnName = "B", StartRowNumber = 6, WorkSheetNumber = 1, AutoFit = false }); } string filename = "TimeslotClosure_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["TimeslotClosureTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportTimeslotClosure", ex.Message, path, errorlogtf); return "error"; } } #endregion #region Toll Free No. & Opportunity Loss /// /// to show main page of Toll Free And Opportunity Loss, which consists filters /// /// main page of Toll Free And Opportunity Loss public ActionResult TollFreeAndOpportunityLoss() { _LoginUserId = Session["UserId"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// to show partial page of Toll Free And Opportunity Loss, which consists charts and tables /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// partial page of Toll Free And Opportunity Loss [HttpPost] public ActionResult ShowTollFreeAndOpportunityLoss(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); TollFreeCallAndOpportunityLoss model = new TollFreeCallAndOpportunityLoss(); model.OpportunityLoss = oReportRepository.GetOpportunityLoss(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); model.TollFreeCall = oReportRepository.GetTollFreeNo(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowTollFreeAndOpportunityLoss", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports Toll Free And Opportunity Loss report /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// generated file path [HttpPost] public string ExportTollFreeAndOpportunityLoss(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); TollFreeCallAndOpportunityLoss model = new TollFreeCallAndOpportunityLoss(); model.OpportunityLoss = oReportRepository.GetOpportunityLoss(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); model.TollFreeCall = oReportRepository.GetTollFreeNo(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); DataTable EosOpportunityLossTable = new DataTable(); DataTable EosTollFreeCallSourceTable = new DataTable(); if (model.OpportunityLoss.EosOpportunityLoss != null) { EosOpportunityLossTable = model.OpportunityLoss.EosOpportunityLoss.ToDataTable(); } if (model.TollFreeCall.EosTollFreeCallSource != null) { EosTollFreeCallSourceTable = model.TollFreeCall.EosTollFreeCallSource.ToDataTable(); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(EosOpportunityLossTable); ds.Tables.Add(EosTollFreeCallSourceTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ds.Tables[0].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Toll Free No Oppotunity Loss", StartColumnName = "B", StartRowNumber = 27, WorkSheetNumber = 1, AutoFit = false }); } if (ds.Tables[1].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[1].TableName, WorkSheetName = "Toll Free No Oppotunity Loss", StartColumnName = "I", StartRowNumber = 27, WorkSheetNumber = 1, AutoFit = false }); } string filename = "TollFreeOppLoss_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["TollFreeOpportunityLossTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportTollFreeAndOpportunityLoss", ex.Message, path, errorlogtf); return "error"; } } #endregion #region Call Feedback Rating /// /// to show main page of Call Feedback Rating, which consists filters /// /// main page of Call Feedback Rating public ActionResult CallFeedbackRating() { _LoginUserId = Session["UserId"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// to show partial page of Call Feedback Rating, which consists charts and tables /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// partial page of Call Feedback Rating [HttpPost] public ActionResult ShowCallFeedbackRating(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); CallFeedbackRating model = new CallFeedbackRating(); model = oReportRepository.GetCallFeedbackRating(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowCallFeedbackRating", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports Call Feedback Rating report /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// generated file path [HttpPost] public string ExportCallFeedbackRating(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); CallFeedbackRating model = new CallFeedbackRating(); model = oReportRepository.GetCallFeedbackRating(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); DataTable CurrentYearEosFeedbackTable = new DataTable(); if (model.CurrentYearEosFeedback != null) { CurrentYearEosFeedbackTable = model.CurrentYearEosFeedback.ToDataTable(); } DataTable PreviousYearEosFeedbackTable = new DataTable(); if (model.PreviousYearEosFeedback != null) { PreviousYearEosFeedbackTable = model.PreviousYearEosFeedback.ToDataTable(); } DataTable CurrentYearEosFeedbackRatingTable = new DataTable(); if (model.CurrentYearEosFeedbackRating != null) { CurrentYearEosFeedbackRatingTable = model.CurrentYearEosFeedbackRating.ToDataTable(); } DataTable PreviousYearEosFeedbackRatingTable = new DataTable(); if (model.PreviousYearEosFeedbackRating != null) { PreviousYearEosFeedbackRatingTable = model.PreviousYearEosFeedbackRating.ToDataTable(); } DataTable CurrentYearEosFeedbackRatingTableFinal = new DataTable(); if (CurrentYearEosFeedbackRatingTable.Rows.Count > 0) { CurrentYearEosFeedbackRatingTableFinal = GenerateTransposedTable(CurrentYearEosFeedbackRatingTable); } DataTable PreviousYearEosFeedbackRatingTableFinal = new DataTable(); if (PreviousYearEosFeedbackRatingTable.Rows.Count > 0) { PreviousYearEosFeedbackRatingTableFinal = GenerateTransposedTable(PreviousYearEosFeedbackRatingTable); } CurrentYearEosFeedbackRatingTableFinal.Columns.RemoveAt(0); CurrentYearEosFeedbackRatingTableFinal.AcceptChanges(); PreviousYearEosFeedbackRatingTableFinal.Columns.RemoveAt(0); PreviousYearEosFeedbackRatingTableFinal.AcceptChanges(); // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(CurrentYearEosFeedbackTable); ds.Tables.Add(PreviousYearEosFeedbackTable); ds.Tables.Add(CurrentYearEosFeedbackRatingTableFinal); ds.Tables.Add(PreviousYearEosFeedbackRatingTableFinal); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ds.Tables[0].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Call Feedback Rating", StartColumnName = "B", StartRowNumber = 7, WorkSheetNumber = 1, AutoFit = false }); } if (ds.Tables[1].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[1].TableName, WorkSheetName = "Call Feedback Rating", StartColumnName = "L", StartRowNumber = 6, WorkSheetNumber = 1, AutoFit = false }); } if (ds.Tables[2].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[2].TableName, WorkSheetName = "Call Feedback Rating", StartColumnName = "D", StartRowNumber = 44, WorkSheetNumber = 1, AutoFit = false }); } if (ds.Tables[3].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[3].TableName, WorkSheetName = "Call Feedback Rating", StartColumnName = "S", StartRowNumber = 44, WorkSheetNumber = 1, AutoFit = false }); } string filename = "CallFeedbackRating_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["CallFeedbackRatingTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportCallFeedbackRating", ex.Message, path, errorlogtf); return "error"; } } #endregion #region Reason for closure (>24) /// /// to show main page of Reason For Closure More Than 24 hrs, which consists filters /// /// main page of Reason For Closure More Than 24 hrs public ActionResult ReasonForClosureMoreThan24() { _LoginUserId = Session["UserId"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// to show partial page of Reason For Closure More Than 24 hrs, which consists charts and tables /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// partial page of Reason For Closure More Than 24 hrs [HttpPost] public ActionResult ShowReasonForClosureMoreThan24(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); ReasonForClosureMoreThan24HrsHdLmd model = new ReasonForClosureMoreThan24HrsHdLmd(); model.HdLmdBusCallCLoserModel = oReportRepository.GetHdLmdCallClosure(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); model.ReasonCallClosedBeyond24Hrs = oReportRepository.GetCallClosureMoreThan24(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); model.ReasonCallClosedBeyond24HrsForChart = oReportRepository.GetCallClosureMoreThan24(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); if (model != null && model.HdLmdBusCallCLoserModel != null && model.ReasonCallClosedBeyond24Hrs != null && model.ReasonCallClosedBeyond24HrsForChart.ReasonWiseCallClosedBeyond24Hrs != null) { foreach (ReasonCallClosedBeyond24HrsList item in model.ReasonCallClosedBeyond24HrsForChart.ReasonWiseCallClosedBeyond24Hrs) { if (item.Reason.ToString().Length > 20) { string shortReason = item.Reason.ToString().Substring(0, 20); item.Reason = shortReason + ".."; } } } return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowReasonForClosureMoreThan24", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports Reason For Closure More Than 24 hrs report /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// generated file path [HttpPost] public string ExportReasonForClosureMoreThan24(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); ReasonForClosureMoreThan24HrsHdLmd model = new ReasonForClosureMoreThan24HrsHdLmd(); model.HdLmdBusCallCLoserModel = oReportRepository.GetHdLmdCallClosure(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); model.ReasonCallClosedBeyond24Hrs = oReportRepository.GetCallClosureMoreThan24(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); DataTable HdLmdBusCallCLoserTable = new DataTable(); DataTable ReasonCallClosedBeyond24HrsTable = new DataTable(); if (model.HdLmdBusCallCLoserModel.HdLmdBusCallCLoser != null) { HdLmdBusCallCLoserTable = model.HdLmdBusCallCLoserModel.HdLmdBusCallCLoser.ToDataTable(); HdLmdBusCallCLoserTable.Columns.RemoveAt(4); HdLmdBusCallCLoserTable.Columns.RemoveAt(4); } if (model.ReasonCallClosedBeyond24Hrs.ReasonWiseCallClosedBeyond24Hrs != null) { ReasonCallClosedBeyond24HrsTable = model.ReasonCallClosedBeyond24Hrs.ReasonWiseCallClosedBeyond24Hrs.ToDataTable(); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(HdLmdBusCallCLoserTable); ds.Tables.Add(ReasonCallClosedBeyond24HrsTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ds.Tables[0].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Reason for closure (>24)", StartColumnName = "B", StartRowNumber = 5, WorkSheetNumber = 1, AutoFit = false }); } if (ds.Tables[1].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[1].TableName, WorkSheetName = "Reason for closure (>24)", StartColumnName = "B", StartRowNumber = 35, WorkSheetNumber = 1, AutoFit = false }); } string filename = "ReasonForClosure_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["ReasonForClosureTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportReasonForClosureMoreThan24", ex.Message, path, errorlogtf); return "error"; } } #endregion #region Declined Calls /// /// To show main page Declined Calls report which consists of filters /// /// main page Declined Calls report public ActionResult DeclinedCalls() { _LoginUserId = Session["UserId"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// To show partial page Declined Calls report which consists of charts and tables /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// partial page Declined Calls report [HttpPost] public ActionResult ShowDeclinedCalls(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); DeclinedCalls model = new DeclinedCalls(); model = oReportRepository.GetDeclinedCalls(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowDeclinedCalls", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports Declined Calls report /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// generated report path [HttpPost] public string ExportDeclinedCalls(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); DeclinedCalls model = new DeclinedCalls(); model = oReportRepository.GetDeclinedCalls(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); DataTable DeclinedCallsTable = new DataTable(); if (model.DeclinedReportsDealerWise != null) { DeclinedCallsTable = model.DeclinedReportsDealerWise.ToDataTable(); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(DeclinedCallsTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ds.Tables[0].Rows.Count > 0) { workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Timeslot Closure", StartColumnName = "B", StartRowNumber = 5, WorkSheetNumber = 1, AutoFit = false }); } string filename = "DeclinedCalls_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["DeclinedCallsTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportDeclinedCalls", ex.Message, path, errorlogtf); return "error"; } } #endregion #region Eicher Promise /// /// To show main page Eicher Promise report which consists of filters /// /// main page Eicher promise report public ActionResult EicherPromise() { _LoginUserId = Session["UserId"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// To show partial page Eicher Promise report which consists of charts and tables /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// partial page Declined Calls report [HttpPost] public ActionResult ShowEicherPromise(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); EicherPromiseModel model = new EicherPromiseModel(); model = oReportRepository.GetEicherPromiseReport(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowEicherPromise", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports Eicher Promise report /// /// security token /// UTC minutes /// user id /// start date /// end date /// state name /// city name /// dealer id /// generated report path [HttpPost] public string ExportEicherPromise(int fromDate, int toDate, string state, string city, string dealerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(fromDate, 1, 1); DateTime lastDayyear = new DateTime(fromDate, 12, 31); ReportRepository oReportRepository = new ReportRepository(); EicherPromiseModel model = new EicherPromiseModel(); model = oReportRepository.GetEicherPromiseReport(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, state, city, dealerId); DataTable EicherPromiseTable = model.PromiseReportsList.ToDataTable(); // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(EicherPromiseTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Eicher Promise", StartColumnName = "B", StartRowNumber = 5, WorkSheetNumber = 1, AutoFit = false }); string filename = "EicherPromise_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["EicherPromiseTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportEicherPromise", ex.Message, path, errorlogtf); return "error"; } } #endregion #region Customer Report /// /// To show main page of Customer Report which consists of filters /// /// main page of Customer Report public ActionResult CustomerReport() { string _LoginUserId = Session["UserId"].ToString(); string _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.Userid = _LoginUserId; return View(); } /// /// Pager function which is used to get data for a particular page index /// /// Page object which contains pagesize and page index /// State /// Value /// PageSize /// new page which shows records according to current selected page number public ActionResult Customer_Pager([DataSourceRequest] DataSourceRequest dsr, string State, string Value, string PageSize) { int lTtlRec = 0; ReportRepository oReportRepository = new ReportRepository(); List oOwnerList = oReportRepository.GetOwnerList(State, Value, lPageSise + 1, (dsr.Page - 1) * lPageSise); ViewData["State"] = State; ViewData["Value"] = Value; lTtlRec = dsr.Page * oOwnerList.Count(); if (oOwnerList.Count > lPageSise) lTtlRec = (dsr.Page * lPageSise) + 1; if (Convert.ToInt32(PageSize) > (dsr.Page * lPageSise)) { ViewData["PageSize"] = Convert.ToInt32(PageSize); } else { ViewData["PageSize"] = lTtlRec; } var result = new DataSourceResult() { Data = oOwnerList, // Process data (paging and sorting applied) Total = Convert.ToInt32(ViewData["PageSize"]) // Total number of records }; return Json(result); } [HttpPost] /// /// Get Owner List /// /// returns partial View oF Owner List public ActionResult CustomerReport_GetOwnerList(string state, string FilterVal) { objLog.AddLogFile("CustomerReport_GetOwnerList", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { ViewData["State"] = state; ViewData["Value"] = FilterVal; int lTtlRec = 0; ReportRepository oReportRepository = new ReportRepository(); List oOwnerList = oReportRepository.GetOwnerList(state, FilterVal, lPageSise + 1, 0); lTtlRec = oOwnerList.Count; lTtlRec = lTtlRec >= lPageSise ? lTtlRec : lPageSise; ViewData["PageSize"] = lTtlRec; var result = new DataSourceResult() { Data = oOwnerList, // Process data (paging and sorting applied) Total = lTtlRec // Total number of records }; return PartialView(oOwnerList); } catch (Exception ex) { objLog.ErrorLogFile("CustomerReport_GetOwnerList", ex.Message, path, errorlogtf); throw ex; } } /// /// To show partial page for Customer report which consists of charts and tables /// /// Year /// State /// Customer Id /// partial page for Customer report [HttpPost] public ActionResult ShowCustomerReport(int Year, string State, string CustomerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(Year, 1, 1); DateTime lastDayyear = new DateTime(Year, 12, 31); ReportRepository oReportRepository = new ReportRepository(); CustomerReportModel model = new CustomerReportModel(); model = oReportRepository.GetCustomerReport(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, State, CustomerId); return PartialView(model.CustomerReportsList); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowCustomerReport", ex.Message, path, errorlogtf); throw ex; } } /// /// Exports Customer Report to Excel /// /// Year /// State /// Customer Id /// path at which generated excel is stored [HttpPost] public string ExportCustomerReport(int Year, string State, string CustomerId) { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); // getting first and last date of a year DateTime firstDayyear = new DateTime(Year, 1, 1); DateTime lastDayyear = new DateTime(Year, 12, 31); ReportRepository oReportRepository = new ReportRepository(); CustomerReportModel model = new CustomerReportModel(); model = oReportRepository.GetCustomerReport(_securityToken, _UtcMinutes, _LoginUserId, firstDayyear, lastDayyear, State, CustomerId); DataTable CustomerListTable = model.CustomerReportsList.ToDataTable(); // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(CustomerListTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Customer Report", StartColumnName = "B", StartRowNumber = 5, WorkSheetNumber = 1, AutoFit = true }); string filename = "CustomerReport_" + Convert.ToDateTime(firstDayyear).ToString("ddMMyyyy") + "_" + Convert.ToDateTime(lastDayyear).ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["CustomerReportTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ExportCustomerReport", ex.Message, path, errorlogtf); return "error"; } } #endregion #region Consolidated Report /// /// Get Consolidated Report view /// /// return view public ActionResult ConsolidatedReport() { objLog.AddLogFile("Report_ConsolidatedReport", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objUserInventoryRepository = new UserInventoryRepository(); //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; //Getting Organization list user wise List oOrganizationList = objUserInventoryRepository.GetOrganizationList(); List oOrganizationNameList = new List(); oOrganizationNameList.Add(new SelectListItem { Text = "All", Value = "" }); foreach (OrganizationModel items in oOrganizationList) { oOrganizationNameList.Add(new SelectListItem { Text = items.OrganizationName, Value = items.Id.ToString() }); } objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(oOrganizationNameList.OrderBy(o => o.Text)); } catch (Exception ex) { objLog.ErrorLogFile("Report_ConsolidatedReport", ex.Message, path, errorlogtf); throw ex; } } /// /// Show Consolidated Report grid with chart /// /// User ID /// From Date /// To Date /// organization /// vehicle tagging /// return table public ActionResult ConsolidatedReport_Grid(string userId, string startDate, string endDate, string organization, string vehicleTagging, string filterType,string consolidate_type) { objLog.AddLogFile("Reports_ConsolidatedReport_Grid", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objReportRepository = new ReportRepository(); //Convert date into datetime format string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //Get consolidated report data List oConsolidatedReportList = objReportRepository.GetConsolidatedData(userId, fromDate, toDate, _pageSize, 0, "data", null, organization, vehicleTagging, filterType, consolidate_type); List oList = new List(); List oCountTicketCloseInTimeSlotList = new List(); foreach (var item in oConsolidatedReportList) { oList.AddRange(item.ConsolidatedReportModelList); } foreach (var item in oList) { item.complaints = (item.complaints == null) ? "" : ("
  1. " + item.complaints + "
"); item.suggestion = (item.suggestion == null) ? "" : ("
  1. " + item.suggestion + "
"); if (item.complaints.IndexOf(",") != -1) { item.complaints = item.complaints.Replace(@",", @"
  • "); // item.complaints = "
    1. " + item.complaints + "
    "; } if (item.suggestion.IndexOf(",") != -1) { item.suggestion = item.suggestion.Replace(@",", @"
  • "); //item.suggestion = "
    1. " + item.suggestion + "
    "; } } //Get count of consolidated report List oConsolidatedReportCount = objReportRepository.GetConsolidatedData(userId, fromDate, toDate, _pageSize, 0, "count", null, organization, vehicleTagging, filterType, consolidate_type); Int32 totalCount = 0; foreach (var item in oConsolidatedReportCount) { totalCount = item.TicketCount; } ViewBag.pageSize = _pageSize; ViewBag.total = totalCount; ViewBag.startDate = fromDate; ViewBag.endDate = toDate; ViewBag.userId = userId; ViewBag.organization = organization; ViewBag.vehicleTagging = vehicleTagging; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oList); } catch (Exception ex) { objLog.ErrorLogFile("Reports_ConsolidatedReport_Grid", ex.Message, path, errorlogtf); throw ex; } } /// /// Server side paging on consolidated report /// /// data source request /// login user id /// from data /// to date /// total rows to be get /// organization /// vehicle tagging /// return list of consolidated report public ActionResult ConsolidatedReport_Pager([DataSourceRequest] DataSourceRequest request, string userId, string startDate, string endDate, int total, string organization, string vehicleTagging,string filterType) { objLog.AddLogFile("Report_ConsolidatedReport_Pager", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string query = null; if (request.Filters.Count > 0) { // extract filter from request var filterData = (System.Web.HttpContext.Current.Request.Params["filter"]); // get query from filter object, query = FilterKendoGrid.CreateFilterQuery(filterData); } objReportRepository = new ReportRepository(); List oConsolidatedReportList = objReportRepository.GetConsolidatedData(userId, startDate, endDate, request.PageSize, request.PageSize * (request.Page - 1), "data", query, organization, vehicleTagging, filterType, "old"); List oList = new List(); foreach (var item in oConsolidatedReportList) { oList.AddRange(item.ConsolidatedReportModelList); } foreach (var item in oList) { item.complaints = (item.complaints == null) ? "" : ("
    1. " + item.complaints + "
    "); item.suggestion = (item.suggestion == null) ? "" : ("
    1. " + item.suggestion + "
    "); if (item.complaints.IndexOf(",") != -1) { item.complaints = item.complaints.Replace(@",", @"
  • "); // item.complaints = "
    1. " + item.complaints + "
    "; } if (item.suggestion.IndexOf(",") != -1) { item.suggestion = item.suggestion.Replace(@",", @"
  • "); //item.suggestion = "
    1. " + item.suggestion + "
    "; } } #region Get Time Slot from controller //string ticketCreationDateTime = "", ticketCreationTime = ""; //foreach (var item in oList) //{ // ticketCreationDateTime = item.creation_time; // string[] split_ticketCreationDateTime = ticketCreationDateTime.Split(' '); // ticketCreationTime = split_ticketCreationDateTime[3]; // for (var count = 0; count < 12; count++) // { // if ((DateTime.Parse("01/01/0001 " + ticketCreationTime) > DateTime.Parse("01/01/0001 " + (2 * count) + ":00:00")) && (DateTime.Parse("01/01/0001 " + ticketCreationTime) < DateTime.Parse("01/01/0001 " + ((2 * count) + 1) + ":59:59"))) // { // item.time_slot = "Between " + (2 * count) + " and " + ((2 * count) + 2); // break; // } // } //} #endregion //Get count of consolidated report List oConsolidatedReportCount = objReportRepository.GetConsolidatedData(userId, startDate, endDate, _pageSize, 0, "count", query, organization, vehicleTagging, filterType,"old"); Int32 totalCount = 0; foreach (var item in oConsolidatedReportCount) { totalCount = item.TicketCount; } DataSourceResult result = oList.ToDataSourceResult(request); result.Total = totalCount; result.Data = oList; return Json(result); } catch (Exception ex) { objLog.ErrorLogFile("Report_ConsolidatedReport_Pager", ex.Message, path, errorlogtf); throw ex; } } /// /// Export to excel consolidated Report /// /// Login user id /// From Date /// To Date /// organization /// vehicle tagging /// Returns excel file [HttpPost] public string ConsolidatedReport_ExportToExcel(string UserId, string startDate, string endDate, string organization, string vehicleTagging,string filterType) { objLog.AddLogFile("Report_ConsolidatedReport_ExportToExcel", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string filename = null; objReportRepository = new ReportRepository(); string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //Get count of consolidated report List oConsolidatedReportCount = objReportRepository.GetConsolidatedData(UserId, fromDate, toDate, _pageSize, 0, "count", null, organization, vehicleTagging, filterType, "old"); Int32 totalCount = 0; foreach (var item in oConsolidatedReportCount) { totalCount = item.TicketCount; } //Get consolidated report data List oConsolidatedReportList = objReportRepository.GetConsolidatedData(UserId, fromDate, toDate, totalCount, 0, "data", null, organization, vehicleTagging, filterType, "old"); List oList = new List(); foreach (var item in oConsolidatedReportList) { oList.AddRange(item.ConsolidatedReportModelList); } string ticketCreationDateTime = "", ticketCreationTime = ""; foreach (var item in oList) { ticketCreationDateTime = item.creation_time; string[] split_ticketCreationDateTime = ticketCreationDateTime.Split(' '); ticketCreationTime = split_ticketCreationDateTime[3]; for (var count = 0; count < 12; count++) { if ((DateTime.Parse("01/01/0001 " + ticketCreationTime) >= DateTime.Parse("01/01/0001 " + (2 * count) + ":00:00")) && (DateTime.Parse("01/01/0001 " + ticketCreationTime) <= DateTime.Parse("01/01/0001 " + ((2 * count) + 1) + ":59:59"))) { item.time_slot = (2 * count) + ":00 - " + ((2 * count) + 2) + ":00"; break; } } } DataTable ConsolidatedDataTable = oList.ToDataTable(); Int32 ConsolidatedDataTableColumnCount = ConsolidatedDataTable.Columns.Count - 1; for (var count = ConsolidatedDataTableColumnCount; count >= 55; count--) { ConsolidatedDataTable.Columns.RemoveAt(count); } // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(ConsolidatedDataTable); //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); filename = "ConsolidatedReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Consolidated Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false }); string pathToExcelFile = _exportLocation + filename; string templatePath = Server.MapPath(ConfigurationManager.AppSettings["ConsolidatedReportTemplate"].ToString()); ; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ConsolidatedReport_ExportToExcel", ex.Message, path, errorlogtf); throw ex; } } /// /// Export to excel consolidated Report /// /// Login user id /// From Date /// To Date /// organization /// vehicle tagging /// Returns excel file [HttpPost] public string ConsolidatedReport_ExportToCSV(string UserId, string startDate, string endDate, string organization, string vehicleTagging,string filterType) { objLog.AddLogFile("Report_ConsolidatedReport_ExportToCSV", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string fileName = null; objReportRepository = new ReportRepository(); string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //List columnNames = new List(); //PropertyInfo[] propInfoList = typeof(ConsolidatedReportModel).GetProperties(); //foreach (PropertyInfo propInfo in propInfoList) //{ // columnNames.Add(Helper.DisplayNameHelper.GetDisplayName(propInfo)); //} //Get count of consolidated report List oConsolidatedReportCount = objReportRepository.GetConsolidatedData(UserId, fromDate, toDate, _pageSize, 0, "count", null, organization, vehicleTagging, filterType, "old"); Int32 totalCount = 0; foreach (var item in oConsolidatedReportCount) { totalCount = item.TicketCount; } //Get consolidated report data List oConsolidatedReportList = objReportRepository.GetConsolidatedData(UserId, fromDate, toDate, totalCount, 0, "data", null, organization, vehicleTagging, filterType, "old"); List oList = new List(); foreach (var item in oConsolidatedReportList) { oList.AddRange(item.ConsolidatedReportModelList); } string ticketCreationDateTime = "", ticketCreationTime = ""; foreach (var item in oList) { ticketCreationDateTime = item.creation_time; string[] split_ticketCreationDateTime = ticketCreationDateTime.Split(' '); ticketCreationTime = split_ticketCreationDateTime[3]; for (var count = 0; count < 12; count++) { if ((DateTime.Parse("01/01/0001 " + ticketCreationTime) >= DateTime.Parse("01/01/0001 " + (2 * count) + ":00:00")) && (DateTime.Parse("01/01/0001 " + ticketCreationTime) <= DateTime.Parse("01/01/0001 " + ((2 * count) + 1) + ":59:59"))) { item.time_slot = (2 * count) + ":00 - " + ((2 * count) + 2) + ":00"; break; } } } DataTable ConsolidatedDataTable = oList.ToDataTable(); //Int32 ConsolidatedDataTableColumnCount = ConsolidatedDataTable.Columns.Count; //for (var count = ConsolidatedDataTableColumnCount; count >= 105; count--) //{ // ConsolidatedDataTable.Columns.RemoveAt(count); //} // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(ConsolidatedDataTable); ds.Tables[0].Columns[67].SetOrdinal(14); //Give column names ds.Tables[0].Columns[0].ColumnName = "Ticket Id"; ds.Tables[0].Columns[1].ColumnName = "Assigned To"; ds.Tables[0].Columns[2].ColumnName = "Created By"; ds.Tables[0].Columns[3].ColumnName = "Creation Time"; ds.Tables[0].Columns[4].ColumnName = "Time Slot"; ds.Tables[0].Columns[5].ColumnName = "Customer Name"; ds.Tables[0].Columns[6].ColumnName = "Customer Contact No."; ds.Tables[0].Columns[7].ColumnName = "Organization"; ds.Tables[0].Columns[8].ColumnName = "State"; ds.Tables[0].Columns[9].ColumnName = "City"; ds.Tables[0].Columns[10].ColumnName = "Language"; ds.Tables[0].Columns[11].ColumnName = "Vehicle Owner Name"; ds.Tables[0].Columns[12].ColumnName = "Vehicle Owner Contact No."; ds.Tables[0].Columns[13].ColumnName = "Vehicle Reg No."; ds.Tables[0].Columns[14].ColumnName = "Chassis Number"; ds.Tables[0].Columns[15].ColumnName = "Vehicle Model"; ds.Tables[0].Columns[16].ColumnName = "Vehicle Type"; ds.Tables[0].Columns[17].ColumnName = "Vehicle Chassis No."; ds.Tables[0].Columns[18].ColumnName = "Vehicle Installation Date"; ds.Tables[0].Columns[19].ColumnName = "Vehicle Breakdown Location"; ds.Tables[0].Columns[20].ColumnName = "Landmark"; ds.Tables[0].Columns[21].ColumnName = "Warranty"; ds.Tables[0].Columns[22].ColumnName = "Source of Toll Free No."; ds.Tables[0].Columns[23].ColumnName = "Type of Load Carrying"; ds.Tables[0].Columns[24].ColumnName = "Nature of Problem"; ds.Tables[0].Columns[25].ColumnName = "Estimated Cost"; ds.Tables[0].Columns[26].ColumnName = "Estimated Time (In minutes)"; ds.Tables[0].Columns[27].ColumnName = "Dealer SCode"; ds.Tables[0].Columns[28].ColumnName = "Dealer Name"; ds.Tables[0].Columns[29].ColumnName = "WM Name"; ds.Tables[0].Columns[30].ColumnName = "Dealer Contact No."; ds.Tables[0].Columns[31].ColumnName = "EOS VAN Registration Number"; ds.Tables[0].Columns[32].ColumnName = "Call Open (HH:MM:SS)"; //ds.Tables[0].Columns[33].ColumnName = "Ticket Accepted"; //commented on 14-12-2020 ds.Tables[0].Columns[34].ColumnName = "Van Reached"; ds.Tables[0].Columns[35].ColumnName = "Call Preclosed"; ds.Tables[0].Columns[36].ColumnName = "Call Closure"; ds.Tables[0].Columns[37].ColumnName = "Escalation - Van Not Moving"; ds.Tables[0].Columns[38].ColumnName = "Escalation - Ticket Closure"; ds.Tables[0].Columns[39].ColumnName = "Call Closed < 24 Hrs"; ds.Tables[0].Columns[40].ColumnName = "KM Covered Breakdown's Vehicle"; ds.Tables[0].Columns[41].ColumnName = "Feedback"; ds.Tables[0].Columns[42].ColumnName = "Feedback Score - Ease of Getting Call Centre"; ds.Tables[0].Columns[43].ColumnName = "Feedback Score - Response of Call Centre"; ds.Tables[0].Columns[44].ColumnName = "Feedback Score - Timely Updation by Dealer"; ds.Tables[0].Columns[45].ColumnName = "Feedback Score - Total Repair Time"; ds.Tables[0].Columns[46].ColumnName = "Feedback Score - EOS Charges"; ds.Tables[0].Columns[47].ColumnName = "Feedback Score - Over All Experience"; ds.Tables[0].Columns[48].ColumnName = "Closure Remarks"; ds.Tables[0].Columns[49].ColumnName = "Response(In min)"; ds.Tables[0].Columns[50].ColumnName = "Feedback Count"; ds.Tables[0].Columns[51].ColumnName = "Feedback Call Status"; ds.Tables[0].Columns[52].ColumnName = "Feedback Suggestions"; ds.Tables[0].Columns[53].ColumnName = "Feedback Complaints"; ds.Tables[0].Columns[54].ColumnName = "Feedback Agent"; ds.Tables[0].Columns[55].ColumnName = "Reason for Ticket assigned to Dealer"; ds.Tables[0].Columns[56].ColumnName = "Other Reason for Ticket assigned to Dealer"; ds.Tables[0].Columns[57].ColumnName = "Estimated Distance (In KM)"; ds.Tables[0].Columns[58].ColumnName = "EOS Van Actual Distance Traveled (In KM)"; ds.Tables[0].Columns[59].ColumnName = "EOS Van Trip Start Time"; ds.Tables[0].Columns[60].ColumnName = "EOS Van Trip End Time"; ds.Tables[0].Columns[61].ColumnName = "Eicher Promise"; ds.Tables[0].Columns[62].ColumnName = "Opportunity Loss"; ds.Tables[0].Columns[63].ColumnName = "Opportunity Loss Reason"; ds.Tables[0].Columns[64].ColumnName = "Opportunity Loss Remark"; ds.Tables[0].Columns[65].ColumnName = "Delayed Reason"; ds.Tables[0].Columns[66].ColumnName = "Delayed Remark"; ds.Tables[0].Columns[67].ColumnName = "Re Open Count"; ds.Tables[0].Columns[68].ColumnName = "Odometer Reading"; ds.Tables[0].Columns[74].ColumnName = "Ticket Accepted"; ds.Tables[0].Columns[102].ColumnName = "Reassignment Date and Time"; //commented to hold feedback cr //ds.Tables[0].Columns[103].ColumnName = "Overall Customer Satisfied"; //ds.Tables[0].Columns[104].ColumnName = "Reason for dissatisfaction"; //ds.Tables[0].Columns[105].ColumnName = "Feedback Comments"; ds.Tables[0].Columns[106].ColumnName = "Response time(Reassignment)"; //added on 14-12-2020 ds.Tables[0].Columns[107].ColumnName = "Vehicle Warranty"; ds.Tables[0].Columns[108].ColumnName = "Vehicle Amc"; ds.Tables[0].Columns[109].ColumnName = "Vehicle Emission Norms "; ds.Tables[0].Columns[110].ColumnName = "Vehicle Sales Date"; //ds.Tables[0].Columns[111].ColumnName = "Van Reach By Call Center"; //added on 19-01-2021 ds.Tables[0].Columns[111].ColumnName = "Ticket closed reason"; ds.Tables[0].Columns.Remove("Vehicle Chassis No."); ds.Tables[0].Columns.Remove("total_outbound_calls"); //added on 14-12-2020 ds.Tables[0].Columns.Remove("time_stamps_status_1"); //ds.Tables[0].Columns.Remove("time_stamps_status_2"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_2"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_3"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_4"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_5"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_6"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_7"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_8"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_9"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_10"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_2"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_3"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_4"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_5"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_6"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_7"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_8"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_9"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_10"); ds.Tables[0].Columns.Remove("month_name"); ds.Tables[0].Columns.Remove("default_sla_time"); ds.Tables[0].Columns.Remove("region"); ds.Tables[0].Columns.Remove("vehicle_model"); ds.Tables[0].Columns.Remove("CloseTicketCountInTimeSlot"); ds.Tables[0].Columns.Remove("estimated_time"); ds.Tables[0].Columns.Remove("response"); ds.Tables[0].Columns.Remove("estimated_cost"); ds.Tables[0].Columns.Remove("ticket_id"); //added to hold feedback cr ds.Tables[0].Columns.Remove("are_you_satisfied"); ds.Tables[0].Columns.Remove("not_satisfied_option"); ds.Tables[0].Columns.Remove("not_satisfied_reason"); ds.Tables[0].Columns.Remove("Ticket closed reason"); //added on 20-01-2021 //fileName = "ConsolidatedReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".csv"; //string SaveCsEOS = Server.MapPath(_excelExportPathOnServer + fileName); //bool isCreated = DataTableToCSV(ds.Tables[0], SaveCsvAs); //if (isCreated == true) { return _exportLocation + fileName; } //else { return "error"; } fileName = "ConsolidatedReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string SaveCsvAs = Server.MapPath(_excelExportPathOnServer + fileName); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs); if (isCreated == true) { return _exportLocation + fileName; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ConsolidatedReport_ExportToCSV", ex.Message, path, errorlogtf); throw ex; } } /// /// Created new function on 07-10-2020 to download consolidate report (modified function) /// /// /// /// /// /// /// [HttpPost] public string ConsolidatedReport_ExportToCSV_New(string UserId, string startDate, string endDate, string organization, string vehicleTagging,string filterType) { objLog.AddLogFile("Report_ConsolidatedReport_ExportToCSV", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string fileName = null; objReportRepository = new ReportRepository(); string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //List columnNames = new List(); //PropertyInfo[] propInfoList = typeof(ConsolidatedReportModel).GetProperties(); //foreach (PropertyInfo propInfo in propInfoList) //{ // columnNames.Add(Helper.DisplayNameHelper.GetDisplayName(propInfo)); //} //Get count of consolidated report List oConsolidatedReportCount = objReportRepository.GetConsolidatedData(UserId, fromDate, toDate, _pageSize, 0, "count", null, organization, vehicleTagging, filterType, "old"); Int32 totalCount = 0; totalCount = oConsolidatedReportCount.FirstOrDefault().TicketCount; //foreach (var item in oConsolidatedReportCount) //{ // totalCount = item.TicketCount; //} //consolidate report download changes //Get consolidated report data ReportOpenTicketModel oConsolidatedReportList = objReportRepository.GetConsolidatedDataForDownloadCSV(UserId, fromDate, toDate, totalCount, 0, "data", null, organization, vehicleTagging); List oList = new List(); oList = oConsolidatedReportList.ConsolidatedReportModelList; //ConsolidatedReportModel ServiceInfo = JsonConvert.DeserializeObject(oConsolidatedReportList); //ConsolidatedReportModel list=JsonConvert.DeserializeObject>(oConsolidatedReportList); //foreach (var item in oConsolidatedReportList) //{ // oList.Add(item.ToObject()); //} //consolidate report download changes string ticketCreationDateTime = "", ticketCreationTime = ""; foreach (var item in oList) { ticketCreationDateTime = item.creation_time; string[] split_ticketCreationDateTime = ticketCreationDateTime.Split(' '); ticketCreationTime = split_ticketCreationDateTime[3]; for (var count = 0; count < 12; count++) { if ((DateTime.Parse("01/01/0001 " + ticketCreationTime) >= DateTime.Parse("01/01/0001 " + (2 * count) + ":00:00")) && (DateTime.Parse("01/01/0001 " + ticketCreationTime) <= DateTime.Parse("01/01/0001 " + ((2 * count) + 1) + ":59:59"))) { item.time_slot = (2 * count) + ":00 - " + ((2 * count) + 2) + ":00"; break; } } item.ChassisNo = item.chassis_number; } DataTable ConsolidatedDataTable = oList.ToDataTable(); //Int32 ConsolidatedDataTableColumnCount = ConsolidatedDataTable.Columns.Count; //for (var count = ConsolidatedDataTableColumnCount; count >= 105; count--) //{ // ConsolidatedDataTable.Columns.RemoveAt(count); //} // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(ConsolidatedDataTable); ds.Tables[0].Columns[67].SetOrdinal(14); //Give column names ds.Tables[0].Columns[0].ColumnName = "Ticket Id"; ds.Tables[0].Columns[1].ColumnName = "Assigned To"; ds.Tables[0].Columns[2].ColumnName = "Created By"; ds.Tables[0].Columns[3].ColumnName = "Creation Time"; ds.Tables[0].Columns[4].ColumnName = "Time Slot"; ds.Tables[0].Columns[5].ColumnName = "Customer Name"; ds.Tables[0].Columns[6].ColumnName = "Customer Contact No."; ds.Tables[0].Columns[7].ColumnName = "Organization"; ds.Tables[0].Columns[8].ColumnName = "State"; ds.Tables[0].Columns[9].ColumnName = "City"; ds.Tables[0].Columns[10].ColumnName = "Language"; ds.Tables[0].Columns[11].ColumnName = "Vehicle Owner Name"; ds.Tables[0].Columns[12].ColumnName = "Vehicle Owner Contact No."; ds.Tables[0].Columns[13].ColumnName = "Vehicle Reg No."; ds.Tables[0].Columns[14].ColumnName = "Chassis Number"; ds.Tables[0].Columns[15].ColumnName = "Vehicle Model"; ds.Tables[0].Columns[16].ColumnName = "Vehicle Type"; ds.Tables[0].Columns[17].ColumnName = "Vehicle Chassis No."; ds.Tables[0].Columns[18].ColumnName = "Vehicle Installation Date"; ds.Tables[0].Columns[19].ColumnName = "Vehicle Breakdown Location"; ds.Tables[0].Columns[20].ColumnName = "Landmark"; ds.Tables[0].Columns[21].ColumnName = "Warranty"; ds.Tables[0].Columns[22].ColumnName = "Source of Toll Free No."; ds.Tables[0].Columns[23].ColumnName = "Type of Load Carrying"; ds.Tables[0].Columns[24].ColumnName = "Nature of Problem"; ds.Tables[0].Columns[25].ColumnName = "Estimated Cost"; ds.Tables[0].Columns[26].ColumnName = "Estimated Time (In minutes)"; ds.Tables[0].Columns[27].ColumnName = "Dealer SCode"; ds.Tables[0].Columns[28].ColumnName = "Dealer Name"; ds.Tables[0].Columns[29].ColumnName = "WM Name"; ds.Tables[0].Columns[30].ColumnName = "Dealer Contact No."; ds.Tables[0].Columns[31].ColumnName = "EOS VAN Registration Number"; ds.Tables[0].Columns[32].ColumnName = "Call Open (HH:MM:SS)"; //ds.Tables[0].Columns[33].ColumnName = "Ticket Accepted"; //ds.Tables[0].Columns[34].ColumnName = "Van Reached"; //ds.Tables[0].Columns[35].ColumnName = "Call Preclosed"; //ds.Tables[0].Columns[36].ColumnName = "Call Closure"; //ds.Tables[0].Columns[37].ColumnName = "Escalation - Van Not Moving"; //ds.Tables[0].Columns[38].ColumnName = "Escalation - Ticket Closure"; //ds.Tables[0].Columns[39].ColumnName = "Call Closed < 24 Hrs"; //ds.Tables[0].Columns[40].ColumnName = "KM Covered Breakdown's Vehicle"; //ds.Tables[0].Columns[41].ColumnName = "Feedback"; //ds.Tables[0].Columns[42].ColumnName = "Feedback Score - Ease of Getting Call Centre"; //ds.Tables[0].Columns[43].ColumnName = "Feedback Score - Response of Call Centre"; //ds.Tables[0].Columns[44].ColumnName = "Feedback Score - Timely Updation by Dealer"; //ds.Tables[0].Columns[45].ColumnName = "Feedback Score - Total Repair Time"; //ds.Tables[0].Columns[46].ColumnName = "Feedback Score - EOS Charges"; //ds.Tables[0].Columns[47].ColumnName = "Feedback Score - Over All Experience"; //ds.Tables[0].Columns[48].ColumnName = "Closure Remarks"; //ds.Tables[0].Columns[49].ColumnName = "Response(In min)"; //ds.Tables[0].Columns[50].ColumnName = "Feedback Count"; //ds.Tables[0].Columns[51].ColumnName = "Feedback Call Status"; //ds.Tables[0].Columns[52].ColumnName = "Feedback Suggestions"; //ds.Tables[0].Columns[53].ColumnName = "Feedback Complaints"; //ds.Tables[0].Columns[54].ColumnName = "Feedback Agent"; //ds.Tables[0].Columns[55].ColumnName = "Reason for Ticket assigned to Dealer"; //ds.Tables[0].Columns[56].ColumnName = "Other Reason for Ticket assigned to Dealer"; //ds.Tables[0].Columns[57].ColumnName = "Estimated Distance (In KM)"; //ds.Tables[0].Columns[58].ColumnName = "EOS Van Actual Distance Traveled (In KM)"; //ds.Tables[0].Columns[59].ColumnName = "EOS Van Trip Start Time"; //ds.Tables[0].Columns[60].ColumnName = "EOS Van Trip End Time"; //ds.Tables[0].Columns[61].ColumnName = "Eicher Promise"; //ds.Tables[0].Columns[62].ColumnName = "Opportunity Loss"; //ds.Tables[0].Columns[63].ColumnName = "Opportunity Loss Reason"; //ds.Tables[0].Columns[64].ColumnName = "Opportunity Loss Remark"; //ds.Tables[0].Columns[65].ColumnName = "Delayed Reason"; //ds.Tables[0].Columns[66].ColumnName = "Delayed Remark"; //ds.Tables[0].Columns[67].ColumnName = "Re Open Count"; //ds.Tables[0].Columns[68].ColumnName = "Odometer Reading"; //ds.Tables[0].Columns[102].ColumnName = "Reassignment Date and Time"; ////commented to hold feedback cr ////ds.Tables[0].Columns[103].ColumnName = "Overall Customer Satisfied"; ////ds.Tables[0].Columns[104].ColumnName = "Reason for dissatisfaction"; ////ds.Tables[0].Columns[105].ColumnName = "Feedback Comments"; //ds.Tables[0].Columns[106].ColumnName = "Response time(Reassignment)"; ////added on 14-12-2020 //ds.Tables[0].Columns[107].ColumnName = "Vehicle Warranty"; //ds.Tables[0].Columns[108].ColumnName = "Vehicle Amc"; //ds.Tables[0].Columns[109].ColumnName = "Vehicle Emission Norms "; //ds.Tables[0].Columns[110].ColumnName = "Vehicle Sales Date"; //ds.Tables[0].Columns[111].ColumnName = "Ticket closed reason"; //ds.Tables[0].Columns[34].ColumnName = "Ticket Accepted"; //ds.Tables[0].Columns[35].ColumnName = "Van Reached"; //ds.Tables[0].Columns[36].ColumnName = "Call Preclosed"; //ds.Tables[0].Columns[37].ColumnName = "Call Closure"; //ds.Tables[0].Columns[38].ColumnName = "Escalation - Van Not Moving"; //ds.Tables[0].Columns[39].ColumnName = "Escalation - Ticket Closure"; //ds.Tables[0].Columns[40].ColumnName = "Call Closed < 24 Hrs"; //ds.Tables[0].Columns[41].ColumnName = "KM Covered Breakdown's Vehicle"; //ds.Tables[0].Columns[42].ColumnName = "Feedback"; //ds.Tables[0].Columns[43].ColumnName = "Feedback Score - Ease of Getting Call Centre"; //ds.Tables[0].Columns[44].ColumnName = "Feedback Score - Response of Call Centre"; //ds.Tables[0].Columns[45].ColumnName = "Feedback Score - Timely Updation by Dealer"; //ds.Tables[0].Columns[46].ColumnName = "Feedback Score - Total Repair Time"; //ds.Tables[0].Columns[47].ColumnName = "Feedback Score - EOS Charges"; //ds.Tables[0].Columns[48].ColumnName = "Feedback Score - Over All Experience"; //ds.Tables[0].Columns[49].ColumnName = "Closure Remarks"; //ds.Tables[0].Columns[50].ColumnName = "Response(In min)"; //ds.Tables[0].Columns[51].ColumnName = "Feedback Count"; //ds.Tables[0].Columns[52].ColumnName = "Feedback Call Status"; //ds.Tables[0].Columns[53].ColumnName = "Feedback Suggestions"; //ds.Tables[0].Columns[54].ColumnName = "Feedback Complaints"; //ds.Tables[0].Columns[55].ColumnName = "Feedback Agent"; //ds.Tables[0].Columns[56].ColumnName = "Reason for Ticket assigned to Dealer"; //ds.Tables[0].Columns[57].ColumnName = "Other Reason for Ticket assigned to Dealer"; //ds.Tables[0].Columns[58].ColumnName = "Estimated Distance (In KM)"; //ds.Tables[0].Columns[59].ColumnName = "EOS Van Actual Distance Traveled (In KM)"; //ds.Tables[0].Columns[60].ColumnName = "EOS Van Trip Start Time"; //ds.Tables[0].Columns[61].ColumnName = "EOS Van Trip End Time"; //ds.Tables[0].Columns[62].ColumnName = "Eicher Promise"; //ds.Tables[0].Columns[63].ColumnName = "Opportunity Loss"; //ds.Tables[0].Columns[64].ColumnName = "Opportunity Loss Reason"; //ds.Tables[0].Columns[65].ColumnName = "Opportunity Loss Remark"; //ds.Tables[0].Columns[66].ColumnName = "Delayed Reason"; //ds.Tables[0].Columns[67].ColumnName = "Delayed Remark"; //ds.Tables[0].Columns[68].ColumnName = "Re Open Count"; //ds.Tables[0].Columns[69].ColumnName = "Odometer Reading"; //ds.Tables[0].Columns[102].ColumnName = "Reassignment Date and Time"; ////commented to hold fedback cr ////ds.Tables[0].Columns103].ColumnName = "Overall Customer Satisfied"; ////ds.Tables[0].Columns104].ColumnName = "Reason for dissatisfaction"; ////ds.Tables[0].Columns105].ColumnName = "Feedback Comments"; //ds.Tables[0].Columns[106].ColumnName = "Response time(Reassignment)"; ////added on 14-12-2020 //ds.Tables[0].Columns[107].ColumnName = "Vehicle Warranty"; //ds.Tables[0].Columns[108].ColumnName = "Vehicle Amc"; //ds.Tables[0].Columns[109].ColumnName = "Vehicle Emission Norms "; //ds.Tables[0].Columns[110].ColumnName = "Vehicle Sales Date"; ////ds.Tables[0].Columns[111].ColumnName = "Van Reached Punch In Time"; //added on 23-12-2020 //ds.Tables[0].Columns[111].ColumnName = "Ticket closed reason"; //change column number on 20-01-2021 //ds.Tables[0].Columns.Remove("Vehicle Chassis No."); //ds.Tables[0].Columns.Remove("total_outbound_calls"); ////added on 14-12-2020 //ds.Tables[0].Columns.Remove("time_stamps_status_1"); ////ds.Tables[0].Columns.Remove("time_stamps_status_2"); //ds.Tables[0].Columns.Remove("escalation_level_van_not_move_2"); //ds.Tables[0].Columns.Remove("escalation_level_van_not_move_3"); //ds.Tables[0].Columns.Remove("escalation_level_van_not_move_4"); //ds.Tables[0].Columns.Remove("escalation_level_van_not_move_5"); //ds.Tables[0].Columns.Remove("escalation_level_van_not_move_6"); //ds.Tables[0].Columns.Remove("escalation_level_van_not_move_7"); //ds.Tables[0].Columns.Remove("escalation_level_van_not_move_8"); //ds.Tables[0].Columns.Remove("escalation_level_van_not_move_9"); //ds.Tables[0].Columns.Remove("escalation_level_van_not_move_10"); //ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_2"); //ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_3"); //ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_4"); //ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_5"); //ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_6"); //ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_7"); //ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_8"); //ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_9"); //ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_10"); //ds.Tables[0].Columns.Remove("month_name"); //ds.Tables[0].Columns.Remove("default_sla_time"); //ds.Tables[0].Columns.Remove("region"); //ds.Tables[0].Columns.Remove("vehicle_model"); //ds.Tables[0].Columns.Remove("CloseTicketCountInTimeSlot"); //ds.Tables[0].Columns.Remove("estimated_time"); //ds.Tables[0].Columns.Remove("response"); //ds.Tables[0].Columns.Remove("estimated_cost"); //ds.Tables[0].Columns.Remove("ticket_id"); ////added to hold feedback cr //ds.Tables[0].Columns.Remove("are_you_satisfied"); //ds.Tables[0].Columns.Remove("not_satisfied_option"); //ds.Tables[0].Columns.Remove("not_satisfied_reason"); //ds.Tables[0].Columns.Remove("Ticket closed reason"); //added on 20-01-2021 ds.Tables[0].Columns[34].ColumnName = "Van Reached"; ds.Tables[0].Columns[35].ColumnName = "Call Preclosed"; ds.Tables[0].Columns[36].ColumnName = "Call Closure"; ds.Tables[0].Columns[37].ColumnName = "Escalation - Van Not Moving"; ds.Tables[0].Columns[38].ColumnName = "Escalation - Ticket Closure"; ds.Tables[0].Columns[39].ColumnName = "Call Closed < 24 Hrs"; ds.Tables[0].Columns[40].ColumnName = "KM Covered Breakdown's Vehicle"; ds.Tables[0].Columns[41].ColumnName = "Feedback"; ds.Tables[0].Columns[42].ColumnName = "Feedback Score - Ease of Getting Call Centre"; ds.Tables[0].Columns[43].ColumnName = "Feedback Score - Response of Call Centre"; ds.Tables[0].Columns[44].ColumnName = "Feedback Score - Timely Updation by Dealer"; ds.Tables[0].Columns[45].ColumnName = "Feedback Score - Total Repair Time"; ds.Tables[0].Columns[46].ColumnName = "Feedback Score - EOS Charges"; ds.Tables[0].Columns[47].ColumnName = "Feedback Score - Over All Experience"; ds.Tables[0].Columns[48].ColumnName = "Closure Remarks"; ds.Tables[0].Columns[49].ColumnName = "Response(In min)"; ds.Tables[0].Columns[50].ColumnName = "Feedback Count"; ds.Tables[0].Columns[51].ColumnName = "Feedback Call Status"; ds.Tables[0].Columns[52].ColumnName = "Feedback Suggestions"; ds.Tables[0].Columns[53].ColumnName = "Feedback Complaints"; ds.Tables[0].Columns[54].ColumnName = "Feedback Agent"; ds.Tables[0].Columns[55].ColumnName = "Reason for Ticket assigned to Dealer"; ds.Tables[0].Columns[56].ColumnName = "Other Reason for Ticket assigned to Dealer"; ds.Tables[0].Columns[57].ColumnName = "Estimated Distance (In KM)"; ds.Tables[0].Columns[58].ColumnName = "EOS Van Actual Distance Traveled (In KM)"; ds.Tables[0].Columns[59].ColumnName = "EOS Van Trip Start Time"; ds.Tables[0].Columns[60].ColumnName = "EOS Van Trip End Time"; ds.Tables[0].Columns[61].ColumnName = "Eicher Promise"; ds.Tables[0].Columns[62].ColumnName = "Opportunity Loss"; ds.Tables[0].Columns[63].ColumnName = "Opportunity Loss Reason"; ds.Tables[0].Columns[64].ColumnName = "Opportunity Loss Remark"; ds.Tables[0].Columns[65].ColumnName = "Delayed Reason"; ds.Tables[0].Columns[66].ColumnName = "Delayed Remark"; ds.Tables[0].Columns[67].ColumnName = "Re Open Count"; ds.Tables[0].Columns[68].ColumnName = "Odometer Reading"; ds.Tables[0].Columns[74].ColumnName = "Ticket Accepted"; ds.Tables[0].Columns[102].ColumnName = "Reassignment Date and Time"; ds.Tables[0].Columns[106].ColumnName = "Response time(Reassignment)"; //added on 14-12-2020 ds.Tables[0].Columns[107].ColumnName = "Vehicle Warranty"; ds.Tables[0].Columns[108].ColumnName = "Vehicle Amc"; ds.Tables[0].Columns[109].ColumnName = "Vehicle Emission Norms "; ds.Tables[0].Columns[110].ColumnName = "Vehicle Sales Date"; ds.Tables[0].Columns[111].ColumnName = "Ticket closed reason"; //Remove columns ds.Tables[0].Columns.Remove("Vehicle Chassis No."); ds.Tables[0].Columns.Remove("total_outbound_calls"); //added on 14-12-2020 ds.Tables[0].Columns.Remove("time_stamps_status_1"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_2"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_3"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_4"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_5"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_6"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_7"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_8"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_9"); ds.Tables[0].Columns.Remove("escalation_level_van_not_move_10"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_2"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_3"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_4"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_5"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_6"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_7"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_8"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_9"); ds.Tables[0].Columns.Remove("escalation_level_ticket_closer_10"); ds.Tables[0].Columns.Remove("month_name"); ds.Tables[0].Columns.Remove("default_sla_time"); ds.Tables[0].Columns.Remove("region"); ds.Tables[0].Columns.Remove("vehicle_model"); ds.Tables[0].Columns.Remove("CloseTicketCountInTimeSlot"); ds.Tables[0].Columns.Remove("estimated_time"); ds.Tables[0].Columns.Remove("response"); ds.Tables[0].Columns.Remove("estimated_cost"); ds.Tables[0].Columns.Remove("ticket_id"); ds.Tables[0].Columns.Remove("are_you_satisfied"); ds.Tables[0].Columns.Remove("not_satisfied_option"); ds.Tables[0].Columns.Remove("not_satisfied_reason"); ds.Tables[0].Columns.Remove("Ticket closed reason"); //added on 20-01-2021 ds.Tables[0].Columns.Remove("_call_closed_within_24_hours"); //fileName = "ConsolidatedReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".csv"; //string SaveCsEOS = Server.MapPath(_excelExportPathOnServer + fileName); //bool isCreated = DataTableToCSV(ds.Tables[0], SaveCsvAs); //if (isCreated == true) { return _exportLocation + fileName; } //else { return "error"; } fileName = "ConsolidatedReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string SaveCsvAs = Server.MapPath(_excelExportPathOnServer + fileName); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs); if (isCreated == true) { return _exportLocation + fileName; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_ConsolidatedReport_ExportToCSV", ex.Message, path, errorlogtf); throw ex; } } /// /// Show Consolidated Report grid with chart /// /// User ID /// From Date /// To Date /// organization /// vehicle tagging /// return table public ActionResult ConsolidatedReport_Chart(string userId, string startDate, string endDate, string organization, string vehicleTagging,string filterType) { objLog.AddLogFile("ConsolidatedReport_Chart", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objReportRepository = new ReportRepository(); //Convert date into datetime format string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); #region Get Consolidated Graph Data //Get count of consolidated report List oConsolidatedReportCount = objReportRepository.GetConsolidatedData(userId, fromDate, toDate, _pageSize, 0, "count", null, organization, vehicleTagging, filterType, "old"); Int32 totalCount = 0; foreach (var item in oConsolidatedReportCount) { totalCount = item.TicketCount; } //Get consolidated report data List oConsolidatedReportGraph = objReportRepository.GetConsolidatedData(userId, fromDate, toDate, totalCount, 0, "data", null, organization, vehicleTagging, filterType, "old"); List oGraphList = new List(); foreach (var item2 in oConsolidatedReportGraph) { oGraphList.AddRange(item2.ConsolidatedReportModelList); } //var llll = oGraphList.Where(w => w.creation_time == "" || w.creation_time == null); #region Get Time Slot // Get Time Slot in which ticket is closed string ticketCreationDateTime = "", ticketCreationTime = ""; foreach (var item in oGraphList) { ticketCreationDateTime = item.creation_time; string[] split_ticketCreationDateTime = ticketCreationDateTime.Split(' '); ticketCreationTime = split_ticketCreationDateTime[3]; for (var count = 0; count < 12; count++) { if ((DateTime.Parse("01/01/0001 " + ticketCreationTime) >= DateTime.Parse("01/01/0001 " + (2 * count) + ":00:00")) && (DateTime.Parse("01/01/0001 " + ticketCreationTime) <= DateTime.Parse("01/01/0001 " + ((2 * count) + 1) + ":59:59"))) { item.time_slot = (2 * count) + ":00 to " + ((2 * count) + 2) + ":00"; break; } } } #endregion // Get time slots and no. of breakdowns var listTimeSlotCount = oGraphList.GroupBy(g => g.time_slot).Select(s => new { Key = (string)s.Key, Count = s.Count() }).ToList(); List oListTemp = new List(); // Temp List for chart foreach (var itemTimeSlot in listTimeSlotCount) { oListTemp.Add(new kendoChartModel { xAxis = itemTimeSlot.Key, yAxis = itemTimeSlot.Count }); } List oListTimeSlotChart = new List { new kendoChartModel { Id=1, xAxis = "0:00 to 2:00", yAxis = 0 }, new kendoChartModel { Id=2, xAxis = "2:00 to 4:00", yAxis = 0 }, new kendoChartModel { Id=3, xAxis = "4:00 to 6:00", yAxis = 0 }, new kendoChartModel { Id=4, xAxis = "6:00 to 8:00", yAxis = 0 }, new kendoChartModel { Id=5, xAxis = "8:00 to 10:00", yAxis = 0 }, new kendoChartModel { Id=6, xAxis = "10:00 to 12:00", yAxis = 0 }, new kendoChartModel { Id=7, xAxis = "12:00 to 14:00", yAxis = 0 }, new kendoChartModel { Id=8, xAxis = "14:00 to 16:00", yAxis = 0 }, new kendoChartModel { Id=9, xAxis = "16:00 to 18:00", yAxis = 0 }, new kendoChartModel { Id=10, xAxis = "18:00 to 20:00", yAxis = 0 }, new kendoChartModel { Id=11, xAxis = "20:00 to 22:00", yAxis = 0 }, new kendoChartModel { Id=12, xAxis = "22:00 to 24:00", yAxis = 0 } }; var listTimeSlot = oListTimeSlotChart.Concat(oListTemp).GroupBy(r => r.xAxis).Select(s => s.LastOrDefault()).ToList(); ViewBag.ChartModel = listTimeSlot; #endregion objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(); } catch (Exception ex) { objLog.ErrorLogFile("Reports_ConsolidatedReport_Grid", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Positioning Tool + Geo-Analysis Report /// /// to load main page of of positioning tool /// /// main page of of positioning tool public ActionResult PositioningTool() { // globally storing userid from session _LoginUserId = Session["UserId"].ToString(); // globally storing UtcMinute from session _timeOffSetMinutes = Session["UtcMinute"].ToString(); // storing security token to viewbag ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); // storing UtcMinutes to viewbag ViewBag.UtcMinutes = _timeOffSetMinutes; // storing Userid to viewbag ViewBag.Userid = _LoginUserId; return View(); } /// /// to load main page of of positioning tool /// /// main page of of positioning tool public ActionResult Positioning() { // globally storing userid from session _LoginUserId = Session["UserId"].ToString(); // globally storing UtcMinute from session _timeOffSetMinutes = Session["UtcMinute"].ToString(); // storing security token to viewbag ViewBag.SecurityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString(); // storing UtcMinutes to viewbag ViewBag.UtcMinutes = _timeOffSetMinutes; // storing Userid to viewbag ViewBag.Userid = _LoginUserId; return View(); } #endregion #region pending(saved) tickets report /// /// Get Open Ticket Report view /// /// return view public ActionResult Report_TicketPending() { objLog.AddLogFile("Report_TicketPending", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); _LoginUserRole = Session["UserRole"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.UserRole = _LoginUserRole.ToLower(); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(); } catch (Exception ex) { objLog.ErrorLogFile("Report_TicketPending", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Show grid of open tickets /// /// String representation of login user id /// return partial view of open tickets public ActionResult Report_TicketPending_Grid(string userId) { objLog.AddLogFile("Report_TicketPending_Grid", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objReportRepository = new ReportRepository(); //Get list of open ticket TicketRequestModel oDummyTicketList = objReportRepository.GetDummyTicketsList(userId); List oList = oDummyTicketList.DummyTicketList; ViewBag.pageSize = _pageSize; ViewBag.UserRole = _LoginUserRole.ToLower(); //ViewBag.total = totalCount; //ViewBag.ticketStatus = ticketStatus; //ViewBag.userId = userId; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oList); } catch (Exception ex) { objLog.ErrorLogFile("Report_TicketPending_Grid", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #endregion #region kam tickets close report /// /// Get Close Ticket Report view /// /// return view public ActionResult Report_KamTickets_Close() { objLog.AddLogFile("Report_KamTickets_Close", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); _LoginUserRole = Session["UserRole"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.UserRole = _LoginUserRole; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(); } catch (Exception ex) { objLog.ErrorLogFile("Report_KamTickets_Close", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Show grid of close tickets /// /// String representation of login user id /// String representation of start date /// String representation of end date /// String representation of ticket status /// return partial view of close tickets public ActionResult Report_KamTickets_Close_Grid(string userId, string startDate, string endDate, string ticketStatus) { objLog.AddLogFile("Report_KamTickets_Close_Grid", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objReportRepository = new ReportRepository(); //Adding time to start date and end date string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //Getting list of close ticket list TicketRequestModel oTicketKamFullList = objReportRepository.GetKamTicketsList(userId, fromDate, toDate, _pageSize, 0, ticketStatus, null); //Fetching ticket list from close ticket list List oList = oTicketKamFullList.TicketList; //Server side paging, Get total count of tickets TicketRequestModel oTicketKamCount = objReportRepository.GetKamTicketsList(userId, fromDate, toDate, _pageSize, 0, "count", null); Int32 totalCount = Convert.ToInt32(oTicketKamCount.TicketCount); ViewBag.pageSize = _pageSize; ViewBag.total = totalCount; ViewBag.ticketStatus = ticketStatus; ViewBag.startDate = fromDate; ViewBag.endDate = toDate; ViewBag.userId = userId; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oList); } catch (Exception ex) { objLog.ErrorLogFile("Report_KamTickets_Close_Grid", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Server side paging on close ticket report /// /// data source request /// login user id /// from data /// to date /// ticket status /// total rows to be get /// return list of close tickets public ActionResult Report_KamTickets_Close_Pager([DataSourceRequest] DataSourceRequest request, string userId, string startDate, string endDate, string ticketStatus, int total) { objLog.AddLogFile("Report_KamTickets_Close_Pager", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string query = null; if (request.Filters.Count > 0) { // extract filter from request var filterData = (System.Web.HttpContext.Current.Request.Params[9]); // get query from filter object, query = FilterKendoGrid.CreateFilterQuery(filterData); } objReportRepository = new ReportRepository(); //Getting list of close ticket list TicketRequestModel oTicketKamFullList = objReportRepository.GetKamTicketsList(userId, startDate, endDate, request.PageSize, request.PageSize * (request.Page - 1), ticketStatus, query); //Fetching ticket list from close ticket list List oList = oTicketKamFullList.TicketList; //Server side paging, Get total count of tickets TicketRequestModel oTicketKamCount = objReportRepository.GetKamTicketsList(userId, startDate, endDate, request.PageSize, request.PageSize * (request.Page - 1), "count", query); Int32 totalCount = Convert.ToInt32(oTicketKamCount.TicketCount); DataSourceResult result = oList.ToDataSourceResult(request); //check if filters are applied than total count fetched from server if (query == null) { result.Total = total; } else { result.Total = totalCount; } //send data to kendo grid result.Data = oList; return Json(result); } catch (Exception ex) { objLog.ErrorLogFile("Report_KamTickets_Close_Pager", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Export to excel Open and Close Ticket Report /// /// Login user id /// From Date /// To Date /// Ticket Status(Open or Close) /// Returns excel file [HttpPost] public string Report_KamTickets_Close_ExportToExcel(string userId, string startDate, string endDate, string ticketStatus) { objLog.AddLogFile("Ticket_Close_Open_ExportToExcel", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string filename = null; string templatePath = null; objReportRepository = new ReportRepository(); string fromDate = "01 jan 1900"; string toDate = DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]); if (startDate != "" && endDate != "") { fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); } //string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); //string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //Getting list of close ticket list TicketRequestModel oTicketKamFullList = objReportRepository.GetKamTicketsList(userId, fromDate, toDate, 1000000, 0, ticketStatus, null); //Fetching ticket list from close ticket list List oList = oTicketKamFullList.TicketList; DataTable OpenTicketTable = oList.ToDataTable(); //Server side paging, Get total count of tickets Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1; for (var count = OpenTicketTableColumnCount; count >= 11; count--) { OpenTicketTable.Columns.RemoveAt(count); } //if (ticketStatus.ToLower().Trim() == "open") //{ // OpenTicketTable.Columns.RemoveAt(13); // OpenTicketTable.Columns.RemoveAt(12); //} //else //{ // OpenTicketTable.Columns.RemoveAt(14); //} // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(OpenTicketTable); //if (ticketStatus == "close") //{ // ds.Tables[0].Columns.RemoveAt(1); //} //else if (ticketStatus == "open") //{ // ds.Tables[0].Columns.RemoveAt(ds.Tables[0].Columns.Count - 1); //} //================================ Excel Functionality ===================================// ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility(); List workbokkMapping = new List(); if (ticketStatus == "open") { filename = "OpenTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Ticket", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false }); templatePath = Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString()); } else { filename = "FleetManagerCloseTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Fleet Manager Close Ticket", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false }); templatePath = Server.MapPath(ConfigurationManager.AppSettings["CloseTicketReportTemplate"].ToString()); } string pathToExcelFile = _exportLocation + filename; string saveAs = Server.MapPath(_excelExportPathOnServer + filename); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, saveAs); // ExcelHelper.StatusModel result = objExcelUtility.ExportToExcel(ds, templatePath, workbokkMapping, saveAs, false); //================================ Excel Functionality End ===================================// if (isCreated == true) { return pathToExcelFile; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Ticket_Close_Open_ExportToExcel", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #endregion #region kam tickets open report /// /// Get Open Ticket Report view /// /// return view public ActionResult Report_KamTickets_Open() { objLog.AddLogFile("Report_KamTickets_Open", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); _LoginUserRole = Session["UserRole"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.UserRole = _LoginUserRole; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(); } catch (Exception ex) { objLog.ErrorLogFile("Report_KamTickets_Open", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Show grid of open tickets /// /// String representation of login user id /// String representation of start date /// String representation of end date /// String representation of limit of pages /// String representation of offset /// String representation of ticket status /// return partial view of open tickets public ActionResult Report_KamTickets_Open_Grid(string userId, string startDate, string endDate, string ticketStatus) { objLog.AddLogFile("Report_KamTickets_Open_Grid", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objReportRepository = new ReportRepository(); string fromDate = null; string toDate = null; //string fromDate = "01 jan 1900"; //string toDate = DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]); //if (startDate != "" && endDate != "") //{ // fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); // toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //} //Get list of open ticket TicketRequestModel oTicketKamFullList = objReportRepository.GetKamTicketsList(userId, fromDate, toDate, _pageSize, 0, ticketStatus, null); //Fetching ticket list from close ticket list List oList = oTicketKamFullList.TicketList; ViewBag.pageSize = _pageSize; //ViewBag.total = totalCount; ViewBag.ticketStatus = ticketStatus; ViewBag.startDate = fromDate; ViewBag.endDate = toDate; ViewBag.userId = userId; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oList); } catch (Exception ex) { objLog.ErrorLogFile("Report_KamTickets_Open_Grid", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #endregion #region Consolidated Report New /// /// Get Consolidated Report view /// /// return view public ActionResult ConsolidatedReportNew() { objLog.AddLogFile("Report_ConsolidatedReport", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objUserInventoryRepository = new UserInventoryRepository(); //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; //Getting Organization list user wise List oOrganizationList = objUserInventoryRepository.GetOrganizationList(); List oOrganizationNameList = new List(); oOrganizationNameList.Add(new SelectListItem { Text = "All", Value = "" }); foreach (OrganizationModel items in oOrganizationList) { oOrganizationNameList.Add(new SelectListItem { Text = items.OrganizationName, Value = items.Id.ToString() }); } objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(oOrganizationNameList.OrderBy(o => o.Text)); } catch (Exception ex) { objLog.ErrorLogFile("Report_ConsolidatedReport", ex.Message, path, errorlogtf); throw ex; } } /// /// Show Consolidated Report grid with chart /// /// User ID /// From Date /// To Date /// organization /// vehicle tagging /// return table public ActionResult ConsolidatedReport_Grid_New(string userId, string startDate, string endDate, string organization, string vehicleTagging, string filterType) { objLog.AddLogFile("Reports_ConsolidatedReport_Grid", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objReportRepository = new ReportRepository(); //Convert date into datetime format string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //Get consolidated report data // List oConsolidatedReportList = objReportRepository.GetConsolidatedDataNew(userId, fromDate, toDate, _pageSize, 0, "data", null, organization, vehicleTagging, filterType); List oConsolidatedReportList = objReportRepository.GetConsolidatedDataNew(userId, fromDate, toDate, _pageSize, 0, "data", null, organization, vehicleTagging, filterType); List oConsolidatedReportList = objReportRepository.GetConsolidatedData(userId, fromDate, toDate, _pageSize, 0, "data", null, organization, vehicleTagging, filterType,"new"); List oList = new List(); List oCountTicketCloseInTimeSlotList = new List(); foreach (var item in oConsolidatedReportList) { oList.AddRange(item.ConsolidatedReportModelList); } foreach (var item in oList) { item.complaints = (item.complaints == null) ? "" : ("
    1. " + item.complaints + "
    "); item.suggestion = (item.suggestion == null) ? "" : ("
    1. " + item.suggestion + "
    "); if (item.complaints.IndexOf(",") != -1) { item.complaints = item.complaints.Replace(@",", @"
  • "); // item.complaints = "
    1. " + item.complaints + "
    "; } if (item.suggestion.IndexOf(",") != -1) { item.suggestion = item.suggestion.Replace(@",", @"
  • "); //item.suggestion = "
    1. " + item.suggestion + "
    "; } } //Get count of consolidated report List oConsolidatedReportCount = objReportRepository.GetConsolidatedData(userId, fromDate, toDate, _pageSize, 0, "count", null, organization, vehicleTagging, filterType,"old"); Int32 totalCount = 0; foreach (var item in oConsolidatedReportCount) { totalCount = item.TicketCount; } ViewBag.pageSize = _pageSize; ViewBag.total = totalCount; ViewBag.startDate = fromDate; ViewBag.endDate = toDate; ViewBag.userId = userId; ViewBag.organization = organization; ViewBag.vehicleTagging = vehicleTagging; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oList); } catch (Exception ex) { objLog.ErrorLogFile("Reports_ConsolidatedReport_Grid", ex.Message, path, errorlogtf); throw ex; } } /// /// Server side paging on consolidated report /// /// data source request /// login user id /// from data /// to date /// total rows to be get /// organization /// vehicle tagging /// return list of consolidated report public ActionResult ConsolidatedReport_Pager_New([DataSourceRequest] DataSourceRequest request, string userId, string startDate, string endDate, int total, string organization, string vehicleTagging, string filterType) { objLog.AddLogFile("Report_ConsolidatedReport_Pager", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string query = null; if (request.Filters.Count > 0) { // extract filter from request var filterData = (System.Web.HttpContext.Current.Request.Params["filter"]); // get query from filter object, query = FilterKendoGrid.CreateFilterQuery(filterData); } objReportRepository = new ReportRepository(); List oConsolidatedReportList = objReportRepository.GetConsolidatedDataNew(userId, startDate, endDate, request.PageSize, request.PageSize * (request.Page - 1), "data", query, organization, vehicleTagging, filterType); List oList = new List(); foreach (var item in oConsolidatedReportList) { oList.AddRange(item.ConsolidatedReportModelList); } foreach (var item in oList) { item.complaints = (item.complaints == null) ? "" : ("
    1. " + item.complaints + "
    "); item.suggestion = (item.suggestion == null) ? "" : ("
    1. " + item.suggestion + "
    "); if (item.complaints.IndexOf(",") != -1) { item.complaints = item.complaints.Replace(@",", @"
  • "); // item.complaints = "
    1. " + item.complaints + "
    "; } if (item.suggestion.IndexOf(",") != -1) { item.suggestion = item.suggestion.Replace(@",", @"
  • "); //item.suggestion = "
    1. " + item.suggestion + "
    "; } } //Get count of consolidated report List oConsolidatedReportCount = objReportRepository.GetConsolidatedData(userId, startDate, endDate, _pageSize, 0, "count", query, organization, vehicleTagging, filterType, "old"); Int32 totalCount = 0; foreach (var item in oConsolidatedReportCount) { totalCount = item.TicketCount; } DataSourceResult result = oList.ToDataSourceResult(request); result.Total = totalCount; result.Data = oList; return Json(result); } catch (Exception ex) { objLog.ErrorLogFile("Report_ConsolidatedReport_Pager", ex.Message, path, errorlogtf); throw ex; } } #endregion #region Reassignment report public ActionResult ReassignmentReport() { objLog.AddLogFile("Report_ReassignmentReport", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objUserInventoryRepository = new UserInventoryRepository(); //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; //Getting Organization list user wise List oOrganizationList = objUserInventoryRepository.GetOrganizationList(); List oOrganizationNameList = new List(); oOrganizationNameList.Add(new SelectListItem { Text = "All", Value = "" }); foreach (OrganizationModel items in oOrganizationList) { oOrganizationNameList.Add(new SelectListItem { Text = items.OrganizationName, Value = items.Id.ToString() }); } objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(oOrganizationNameList.OrderBy(o => o.Text)); } catch (Exception ex) { objLog.ErrorLogFile("Report_ReassignmentReport", ex.Message, path, errorlogtf); throw ex; } } #endregion #region DTC report public ActionResult DTCReport() { objLog.AddLogFile("Report_DTCReport", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objUserInventoryRepository = new UserInventoryRepository(); //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; //Getting Organization list user wise List oOrganizationList = objUserInventoryRepository.GetOrganizationList(); List oOrganizationNameList = new List(); oOrganizationNameList.Add(new SelectListItem { Text = "All", Value = "" }); foreach (OrganizationModel items in oOrganizationList) { oOrganizationNameList.Add(new SelectListItem { Text = items.OrganizationName, Value = items.Id.ToString() }); } objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(oOrganizationNameList.OrderBy(o => o.Text)); } catch (Exception ex) { objLog.ErrorLogFile("Report_ReassignmentReport", ex.Message, path, errorlogtf); throw ex; } } #endregion #endregion #region Driver Score Report /// /// Get Open Ticket Report view /// /// return view public ActionResult Report_DriverScore() { objLog.AddLogFile("Report_DriverScore", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); _LoginUserRole = Session["UserRole"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.UserRole = _LoginUserRole; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return View(); } catch (Exception ex) { objLog.ErrorLogFile("Report_DriverScore", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #region Van score /// /// get all van score /// /// return view public ActionResult Report_GetAllVansScore() { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); ReportRepository oReportRepository = new ReportRepository(); ScoreRequestModel model = new ScoreRequestModel(); model = oReportRepository.GetVanScoreList(); ViewBag.pageSize = _pageSize; return PartialView(model.ClosedTicketList); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowEosCallCount", ex.Message, path, errorlogtf); throw ex; } } /// /// get score report of a van or compare report of more than two vans /// /// van/vans string /// start date /// end date /// compare report of two or more van public ActionResult Report_CompareVansScore(string vans, string fromDate, string toDate) { try { fromDate = DateTime.Now.AddMonths(-1).ToString("dd MMM yyyy"); toDate = DateTime.Now.ToString("dd MMM yyyy"); //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); ViewBag.pageSize = _pageSize; ReportRepository oReportRepository = new ReportRepository(); ScoreRequestModel model = new ScoreRequestModel(); model = oReportRepository.GetVansScoresCompareReport(vans, fromDate, toDate); return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowEosCallCount", ex.Message, path, errorlogtf); throw ex; } } #endregion #region dealer score /// /// Get all dealer score report /// /// partial view public ActionResult Report_GetAllDealersScore() { try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); ReportRepository oReportRepository = new ReportRepository(); ScoreRequestModel model = new ScoreRequestModel(); model = oReportRepository.GetDealerScoreList(); ViewBag.pageSize = _pageSize; return PartialView(model.ClosedTicketList); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowEosCallCount", ex.Message, path, errorlogtf); throw ex; } } /// /// get score report of a dealer or compare report of more than two dealers /// /// dealer/dealers string /// start date /// end date /// compare report of two or more dealers public ActionResult Report_CompareDealersScore(string dealers, string fromDate, string toDate) { try { fromDate = DateTime.Now.AddMonths(-1).ToString("dd MMM yyyy"); toDate = DateTime.Now.ToString("dd MMM yyyy"); //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _UtcMinutes = Convert.ToInt16(Session["UtcMinute"].ToString()); ViewBag.pageSize = _pageSize; dealerScoreCardScore dealerScoreScore = new dealerScoreCardScore(); dealerScoreScore.Score = ""; dealerScoreCardDate dealerScoreCardDate = new dealerScoreCardDate(); dealerScoreCardDate.RecordDate = ""; ReportRepository oReportRepository = new ReportRepository(); ScoreRequestModel model = new ScoreRequestModel(); dealerScoreCard modelScoreCard = new dealerScoreCard(); List listScoreCard = new List(); EosScoreCardModel modelDealerScore = new EosScoreCardModel(); model = oReportRepository.GetDealersScoresCompareReport(dealers, fromDate, toDate); //for (var count = 0; count < model.ClosedTicketList.Count; count++) //{ // if (count == 0) // { // dealerScoreScore.Score += model.ClosedTicketList[count].Score; // dealerScoreCardDate.RecordDate += model.ClosedTicketList[count].RecordDate; // } // else // { // dealerScoreScore.Score += " ," + model.ClosedTicketList[count].Score; // dealerScoreCardDate.RecordDate += " ," + model.ClosedTicketList[count].RecordDate; // } //} //var ss = dealerScoreScore.Score.Split(new string[] { ", " }, StringSplitOptions.None); //modelScoreCard.Score = dealerScoreScore.Score.Split(new string[] { ", " }, StringSplitOptions.None); //modelScoreCard.RecordDate = dealerScoreCardDate.RecordDate.Split(new string[] { ", " }, StringSplitOptions.None); //listScoreCard.Add(new dealerScoreCard // { // Score = modelScoreCard.Score, // RecordDate = modelScoreCard.RecordDate // }); //modelDealerScore.dealerScoreCard = listScoreCard; return PartialView(model); } catch (Exception ex) { objLog.ErrorLogFile("Report_ShowEosCallCount", ex.Message, path, errorlogtf); throw ex; } } #endregion #region ticket score /// /// Get Close Ticket Report view /// /// return view public ActionResult Report_GetAllTicketScore() { objLog.AddLogFile("Report_GetAllTicketScore", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { //Getting login user's id, name and utc minutes from session _LoginUserId = Session["UserId"].ToString(); _LoginUserName = Session["UserName"].ToString(); _timeOffSetMinutes = Session["UtcMinute"].ToString(); _LoginUserRole = Session["UserRole"].ToString(); ViewBag.SecurityToken = _securityToken; ViewBag.Userid = _LoginUserId; ViewBag.UserName = _LoginUserName; ViewBag.UtcMinutes = _timeOffSetMinutes; ViewBag.UserRole = _LoginUserRole; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(); } catch (Exception ex) { objLog.ErrorLogFile("Reports_Ticket_Close", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Show grid of close tickets /// /// String representation of login user id /// String representation of start date /// String representation of end date /// String representation of ticket status /// return partial view of close tickets public ActionResult Report_GetAllTicketScoreGrid(string userId, string startDate, string endDate, string ticketStatus) { objLog.AddLogFile("Report_GetAllTicketScore", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { objReportRepository = new ReportRepository(); //Adding time to start date and end date string fromDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]); string toDate = endDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]); //Getting list of close ticket list List oTicketOpenFullList = objReportRepository.GetTicketScoreList(userId, fromDate, toDate, _pageSize, 0, ticketStatus, null); //Fetching ticket list from close ticket list List oList = new List(); foreach (var item in oTicketOpenFullList) { oList.AddRange(item.TicketScoreList); } //Server side paging, Get total count of tickets List oTicketCloseCount = objReportRepository.GetOpenTicketsList(userId, fromDate, toDate, _pageSize, 0, "count", null,null); Int32 totalCount = 0; foreach (var item in oTicketCloseCount) { totalCount = item.TicketCount; } ViewBag.pageSize = _pageSize; ViewBag.total = totalCount; ViewBag.ticketStatus = ticketStatus; ViewBag.startDate = fromDate; ViewBag.endDate = toDate; ViewBag.userId = userId; objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); return PartialView(oList); } catch (Exception ex) { objLog.ErrorLogFile("Reports_Ticket_Close_Grid", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } /// /// Server side paging on close ticket report /// /// data source request /// login user id /// from data /// to date /// ticket status /// total rows to be get /// return list of close tickets public ActionResult Report_GetAllTicketScoreeGrid_Pager([DataSourceRequest] DataSourceRequest request, string userId, string startDate, string endDate, string ticketStatus, int total) { objLog.AddLogFile("Report_GetAllTicketScoreeGrid_Pager", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string query = null; if (request.Filters.Count > 0) { // extract filter from request var filterData = (System.Web.HttpContext.Current.Request.Params[9]); // get query from filter object, query = FilterKendoGrid.CreateFilterQuery(filterData); } objReportRepository = new ReportRepository(); //Getting list of close ticket list List oTicketOpenFullList = objReportRepository.GetTicketScoreList(userId, startDate, endDate, request.PageSize, request.PageSize * (request.Page - 1), ticketStatus, query); //Fetching ticket list from close ticket list List oList = new List(); foreach (var item in oTicketOpenFullList) { oList.AddRange(item.TicketScoreList); } //Server side paging, Get total count of tickets List oTicketCloseCount = objReportRepository.GetOpenTicketsList(userId, startDate, endDate, request.PageSize, request.PageSize * (request.Page - 1), "count", query,null); Int32 totalCount = 0; foreach (var item in oTicketCloseCount) { totalCount = item.TicketCount; } DataSourceResult result = oList.ToDataSourceResult(request); //check if filters are applied than total count fetched from server if (query == null) { result.Total = total; } else { result.Total = totalCount; } //send data to kendo grid result.Data = oList; return Json(result); } catch (Exception ex) { objLog.ErrorLogFile("Report_GetAllTicketScoreeGrid_Pager", ex.Message, path, errorlogtf); objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); throw ex; } } #endregion #endregion //------------------------------ added on 09-03-2021 start--------------------------------------------- [HttpPost] public string DummyCancelledTicketsExportToExcel() { objLog.AddLogFile("Report_CancelledDummyTickets_ExportToCSV", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf); try { string fileName = null; objReportRepository = new ReportRepository(); //Get cancelled dummy report data List oCancelledDraftTicketReport = objReportRepository.GetCancelledDummyList(); List oList = new List(); foreach (var item in oCancelledDraftTicketReport) { oList.AddRange(item.CancelledDraftTicketList); } DataTable CancelledDummyDataTable = oList.ToDataTable(); // getting required dataset DataSet ds = new DataSet(); ds.Tables.Add(CancelledDummyDataTable); ds.Tables[0].Columns[11].SetOrdinal(11); //Remove columns ds.Tables[0].Columns.Remove("Token"); ds.Tables[0].Columns.Remove("Message"); ds.Tables[0].Columns.Remove("UtcMinute"); //Give column names ds.Tables[0].Columns[0].ColumnName = "Draft Ticket Id"; ds.Tables[0].Columns[1].ColumnName = "Vehicle Registration Number"; ds.Tables[0].Columns[2].ColumnName = "Chassis Number"; ds.Tables[0].Columns[3].ColumnName = "Comments"; ds.Tables[0].Columns[4].ColumnName = "Contact Number"; ds.Tables[0].Columns[5].ColumnName = "Driver Name"; ds.Tables[0].Columns[6].ColumnName = "Kam User"; ds.Tables[0].Columns[7].ColumnName = "Creation Time"; ds.Tables[0].Columns[8].ColumnName = "Toll Free No Source"; ds.Tables[0].Columns[9].ColumnName = "Ticket Cancel Reason"; ds.Tables[0].Columns[10].ColumnName = "Ticket Cancel Remark"; fileName = "DummyCancelReport" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx"; string SaveCsvAs = Server.MapPath(_excelExportPathOnServer + fileName); bool isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs); if (isCreated == true) { return _exportLocation + fileName; } else { return "error"; } } catch (Exception ex) { objLog.ErrorLogFile("Report_DummyCancelReport_ExportToCSV", ex.Message, path, errorlogtf); throw ex; } } //------------------------------ added on 09-03-2021 end --------------------------------------------- } }