namespace VECV_WebApi.Controllers.Ticket { #region Namespaces using LoggingHelper; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net.Http; using System.Threading.Tasks; using System.Web; using System.Web.Http; using System.Web.Mvc; using VECV_WebApi.Common; using VECV_WebApi.Models.Customer; using VECV_WebApi.Models.EmailServices; //using VECV_WebApi.Models.Sync; using VECV_WebApi.Models.Ticket; using VECV_WebApi.Models.Vehicle; #endregion /// /// This controller contain apis related to open ticket /// ticketid public class OpenTicketController : ApiController { #region Global Variable /// /// making object of LoggingUtility class available to this class /// LoggingUtility objLog = new LoggingUtility(); /// /// making the data-log file path available to this class /// string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]); /// /// making data log file path available to this class /// string logtf = (ConfigurationManager.AppSettings["Log"]); /// /// making error log file path available to this class /// string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]); /// /// making Ticket Repository object available to this class /// TicketRepository objTicketRepository; /// /// making Ticket Repository object available to this class /// GlobalRepository objGlobalRepository; /// /// making the Database connection string available to this class /// private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString(); #endregion #region APIs /// /// To find ticket detail on device alias. /// /// ticket info /// ticket details on device alias public List Post([FromBody] TicketOpenModel model) { try { List objList = new List(); objTicketRepository = new TicketRepository(_connStr); objList = objTicketRepository.GetTicketDetailOnDeviceAlias(model); return objList; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetTicketDetailOnDeviceAlias_Controller", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To find ticket details based on Device alias. /// /// extra param to identify the api /// ticket info /// ticket details based on Device alias public List Post([FromUri] string TicketAccept, [FromBody] TicketOpenModel model) { try { List objListfullDetails = new List(); TicketOpenModel objModel = new TicketOpenModel(); objTicketRepository = new TicketRepository(_connStr); objListfullDetails = objTicketRepository.TicketAcceptOrDecliend(model); return objListfullDetails; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("TicketAcceptOrDecliend_Controller", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To Insert Open Ticket /// /// extra param to identify the api /// ticket details /// status public InsertOpenTicket Post([FromUri] string Ticket, [FromBody] InsertOpenTicket model) { try { InsertOpenTicket objModel = new InsertOpenTicket(); objTicketRepository = new TicketRepository(_connStr); objModel = objTicketRepository.InsertOpenTicket(model); return objModel; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("InsertOpenTicket_Controller", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To Insert KAM dummy Ticket /// /// extra param to identify the api /// ticket details /// status public InsertOpenTicket Post([FromUri] int kam, [FromUri] string Ticket, [FromBody] InsertOpenTicket model) { try { InsertOpenTicket objModel = new InsertOpenTicket(); objTicketRepository = new TicketRepository(_connStr); objModel = objTicketRepository.InsertKamDummyTicket(model); return objModel; } catch (Exception Ex) { throw Ex; } } /// /// To Insert KAM Real Ticket /// /// extra param to identify the api /// ticket details /// status public InsertOpenTicket Post([FromUri] string Ticket, [FromUri] int KamRealTicket, [FromBody] InsertOpenTicket model) { try { InsertOpenTicket objModel = new InsertOpenTicket(); objTicketRepository = new TicketRepository(_connStr); objModel = objTicketRepository.InsertKamRealTicket(model); return objModel; } catch (Exception Ex) { throw Ex; } } /// /// To update open ticket from Web /// /// extra param to identify the api /// extra param to identify the api /// ticket info /// status public InsertOpenTicket Post([FromUri] string TicketUpdate, [FromUri] string TicketUpdate1, [FromBody] InsertOpenTicket model) { InsertOpenTicket objModel = new InsertOpenTicket(); CHASSIS_ODOMETER_Model objOdoMeterModel = new CHASSIS_ODOMETER_Model(); try { model.IsMobileRequest = false; string delayreason = ""; objTicketRepository = new TicketRepository(_connStr); objGlobalRepository = new GlobalRepository(_connStr); // call eos api to create job card. if (model.AssignedTo == null) { } else { string[] CSMContactNo = model.AssignedTo.ToString().Split(','); int cout = CSMContactNo.Length; if (cout == 1) { model.AssignedTo = CSMContactNo[0]; } else if (cout == 2) { model.AssignedTo = CSMContactNo[0]; if (model.TicketStatus == 4) { model.preclosure_reason = CSMContactNo[1]; } } else if (cout == 3) { model.AssignedTo = CSMContactNo[0]; if (model.TicketStatus == 4) { model.preclosure_reason = CSMContactNo[1]; model._24HrsReason = CSMContactNo[2]; } } } if (model.TicketStatus == 4) { if (model.JobCompleteResponseTime == null) { string[] CSMContactNo = model.AssignedTo.ToString().Split(','); int cout = CSMContactNo.Length; if (cout == 2) { model.AssignedTo = CSMContactNo[0]; model.preclosure_reason = CSMContactNo[1]; } if (cout == 3) { model.AssignedTo = CSMContactNo[0]; model.preclosure_reason = CSMContactNo[1]; model._24HrsReason = CSMContactNo[2]; } } else { string[] CSMContactNo = model.JobCompleteResponseTime.ToString().Split(','); if(CSMContactNo.Length > 2) { model.AssignedTo = CSMContactNo[0]; model.preclosure_reason = CSMContactNo[1]; model._24HrsReason = CSMContactNo[2]; } if (CSMContactNo.Length == 2) { model.preclosure_reason = CSMContactNo[1]; } if (CSMContactNo[0] == "ClosureReason") { model.preclosure_reason = CSMContactNo[1]; } } } if (model.TicketStatus == 5) { if (model.ChassisNo != "" && model.OdometerReading != 0.0 && model.VehicleType != "") { model.OdometerUnit = model.VehicleType == "Haulage" ? "KM" : "H"; model._24HrsReason = null; // call api to // // // // // odometer to create job card objOdoMeterModel = objGlobalRepository.InsertOdoMeterInEOSAPI(model.TicketIdAlias, model.ChassisNo, model.OdometerReading.ToString(), model.OdometerUnit); if (objOdoMeterModel.Status == "1") { objModel = objTicketRepository.UpdateOpenTicketWeb(model); objModel.Message = objOdoMeterModel.Message; } else if (objOdoMeterModel.Status == "9") { objModel = objTicketRepository.UpdateOpenTicketWeb(model); objModel.Message = objOdoMeterModel.Message; } else { objModel.Message = objOdoMeterModel.Message; objModel.Status = objOdoMeterModel.Status; } } else { objModel = objTicketRepository.UpdateOpenTicketWeb(model); } } else if (model.TicketStatus == 4) { objModel = objTicketRepository.CheckChassisNoNumberThirdPartyPreclosure(model); if (objModel.Status == "2" || objModel.Status == "0") return objModel; objModel = objTicketRepository.UpdateOpenTicketWeb(model); } else { objModel = objTicketRepository.UpdateOpenTicketWeb(model); } return objModel; } catch (Exception Ex) { //objModel.Status = "0"; // write error log into file objLog.ErrorLogFile("UpdateOpenTicketWeb_Controller", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To update open ticket from android /// /// extra param to identify the api /// extra param to identify the api /// extra param to identify the api /// open ticket info /// status /// /// correct one public InsertOpenTicket Post([FromUri] string TicketUpdate, [FromUri] string TicketUpdate1, [FromUri] string TicketUpdate2, [FromBody] InsertOpenTicket model) { try { InsertOpenTicket objModel = new InsertOpenTicket(); CHASSIS_ODOMETER_Model objOdoMeterModel = new CHASSIS_ODOMETER_Model(); model.IsMobileRequest = true; objTicketRepository = new TicketRepository(_connStr); objGlobalRepository = new GlobalRepository(_connStr); // call eos api to create job card. if (model.TicketStatus == 5) { if (model.ChassisNo != "" && model.OdometerReading != 0.0 && model.VehicleType != "") { model.OdometerUnit = model.VehicleType == "Haulage" ? "KM" : "H"; // call api to insert odometer to create job card objOdoMeterModel = objGlobalRepository.InsertOdoMeterInEOSAPI(model.TicketIdAlias, model.ChassisNo, model.OdometerReading.ToString(), model.OdometerUnit); if (objOdoMeterModel.Status == "1") { objModel = objTicketRepository.UpdateOpenTicketaAndroid(model); objModel.Message = objOdoMeterModel.Message; } else if (objOdoMeterModel.Status == "9") { objModel = objTicketRepository.UpdateOpenTicketaAndroid(model); objModel.Message = objOdoMeterModel.Message; } else { objModel.Message = objOdoMeterModel.Message; objModel.Status = objOdoMeterModel.Status; } } else { objModel = objTicketRepository.UpdateOpenTicketaAndroid(model); } } else if (model.TicketStatus == 4) { objModel = objTicketRepository.CheckChassisNoNumberThirdPartyPreclosure(model); if (objModel.Status == "0" || objModel.Status == "2") return objModel; objModel = objTicketRepository.UpdateOpenTicketaAndroid(model); // objModel.Message = objOdoMeterModel.Message; //} //else { // objModel.Message = objOdoMeterModel.Message; // objModel.Status = objOdoMeterModel.Status; //} } else { if (model.TicketStatus == 8) { objModel = objTicketRepository.UpdateOpenTicketaAndroidNEW(model); } else { objModel = objTicketRepository.UpdateOpenTicketaAndroid(model); } } if (model.TicketStatus == 3) { if (model.RepairCost == null) { VECV_WebApi.Models.Sync.TicketStatusModel objticket = new VECV_WebApi.Models.Sync.TicketStatusModel(); VECV_WebApi.Models.Sync.SyncRepository objSyncRepository; objSyncRepository = new VECV_WebApi.Models.Sync.SyncRepository(_connStr); objticket = objSyncRepository.GetSyncTicketDetail(model.TicketId, "open"); if (objticket.TicketStatus == 3) { // for rabbitt mq // PushData UdanPushData = new PushData(); // UdanPushData.SendDataToSAP("", model.TicketStatus, model.TicketId); if (objModel.Status == "0") { objModel.Message = "Please try again"; } else { objModel.Message = "Van reach successfully"; } } else { if (objticket.IsTripStart == false) { if (objModel.Status == "0") { objModel.Message = "Please try again"; } else { objModel.Message = "Please start your trip"; } } } } else { if (objModel.Status == "0") { objModel.Message = "Please try again"; } else { objModel.Message = "job estimation successfully"; } } } if (model.TicketStatus == 9) { if (objModel.Status == "0") { objModel.Message = "Please try again"; } else { objModel.Message = "Trip start successfully"; } } if (model.TicketStatus == 4) { if (objModel.Status == "0") { objModel.Message = "Please try again"; } else { objModel.Message = "Job completed successfully"; } } if (model.TicketStatus == 8) { if (objModel.Status == "0") { objModel.Message = "Please try again"; } else { objModel.Message = "Trip end successfully"; } } if (model.TicketStatus == 8) { new System.Threading.Tasks.Task(() => { model.DBMData = "false"; //This represents 1500 milliseconds of work System.Threading.Thread.Sleep(1500); objTicketRepository.TripENDDBM(model); }).Start(); // string strmesage = objTicketRepository.TripENDDBM(model); } else { if (model.TicketStatus == 4) { model.IsMobileRequest = true; //objTicketRepository.InsertTicketDetailOnPreclousreInVECV(model, model.TicketIdAlias, model.preclosure_reason); } // string strmesage = objTicketRepository.SendSMSForMobile(model); } return objModel; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("UpdateOpenTicketaAndroid_Controller", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To update open ticket from android /// /// extra param to identify the api /// extra param to identify the api /// extra param to identify the api /// extra param to identify the api /// open ticket info /// status public InsertOpenTicket Post([FromUri] string TicketUpdate, [FromUri] string TicketUpdate1, [FromUri] string Ticket , [FromUri] string IsMobile, [FromBody] InsertOpenTicket model) { try { InsertOpenTicket objModel = new InsertOpenTicket(); objTicketRepository = new TicketRepository(_connStr); objModel = objTicketRepository.UpdateOpenTicketaAndroid(model, IsMobile); return objModel; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("UpdateOpenTicketaAndroid_Controller", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get customer open ticket full details ticket wise /// /// extra param to identify the api /// extra param to identify the api /// ticket info /// customer open ticket full details ticket wise public List Post([FromUri] string Ticket, [FromUri] string Ticket1, [FromBody] CustomerOpenTicketFullDetailsTicketWise model) { try { List objList = new List(); objTicketRepository = new TicketRepository(_connStr); objList = objTicketRepository.GetCustomerOpenTicketFullDetailTicketWise(model); return objList; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetCustomerOpenTicketFullDetailTicketWise_Controller", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get KAM ticket full details /// /// extra param to identify the api /// extra param to identify the api /// ticket info /// customer open ticket full details ticket wise public List Post([FromUri] int kam, [FromUri] string Ticket, [FromUri] string Ticket1, [FromBody] CustomerOpenTicketFullDetailsTicketWise model) { try { List objList = new List(); objTicketRepository = new TicketRepository(_connStr); objList = objTicketRepository.GetKamOpenTicketDetails(model); return objList; } catch (Exception Ex) { throw Ex; } } /// /// To get customer open ticket details /// /// extra param to identify the api /// extra param to identify the api /// ticket info /// customer open ticket details public List Post([FromUri] string OpenTicket, [FromUri] string OpenTicket1, [FromBody] CustomerOpenTicketDetail model) { try { List objList = new List(); objTicketRepository = new TicketRepository(_connStr); objList = objTicketRepository.GetCustomerOpenTicketDetail(model); return objList; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetCustomerOpenTicketDetail_Controller", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To get customer close ticket details /// /// extra param to identify the api /// extra param to identify the api /// ticket info /// customer close ticket details public List Post([FromUri] string CloseTicket, [FromUri] string CloseTicket1, [FromBody] CustomerCloseTicketDetail model) { try { List objList = new List(); objTicketRepository = new TicketRepository(_connStr); objList = objTicketRepository.GetCustomerCloseTicketDetail(model); return objList; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetCustomerCloseTicketDetail_Controller", Ex.Message, path, errorlogtf); throw Ex; } } /// /// To Insert dummy Ticket /// /// extra param to identify the api /// ticket details /// status public InsertOpenTicket Post([FromUri] int dummy, [FromUri] string DummyTicket1, [FromUri] string DummyTicket2, [FromBody] InsertOpenTicket model) { try { InsertOpenTicket objModel = new InsertOpenTicket(); objTicketRepository = new TicketRepository(_connStr); objModel = objTicketRepository.InsertDummyTicket(model); return objModel; } catch (Exception Ex) { throw Ex; } } //---------------------added on 23-12-2020(start)-------------------------- public VanReachedTimeModel Post([FromUri] int vanReached, [FromUri] string vanReached1, [FromUri] string vanReached2, [FromUri] string vanReached3, [FromUri] string vanReached4, [FromUri] string vanReached5, [FromBody] VanReachedTimeModel model) { try { VanReachedTimeModel objModel = new VanReachedTimeModel(); objTicketRepository = new TicketRepository(_connStr); objModel = objTicketRepository.VanReachedDateTime(model); return objModel; } catch (Exception Ex) { throw Ex; } } //---------------------added on 23-12-2020(end)-------------------------- /// /// To get dummy open ticket details /// /// extra param to identify the api /// extra param to identify the api /// ticket info /// dummy open ticket details public List Post([FromUri] string OpenDummyTicket, [FromUri] string OpenDummyTicket1, [FromUri] string OpenDummyTicket2, [FromBody] DummyOpenTicketDetail model) { try { List objList = new List(); objTicketRepository = new TicketRepository(_connStr); objList = objTicketRepository.GetDummyTicketDetails(model); return objList; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetDummyTicketDetails_Controller", Ex.Message, path, errorlogtf); throw Ex; } } public InsertOpenTicket Post([FromUri] string dummy, [FromUri] int dummyticket, [FromUri] string DeleteDummyTicket, [FromBody] InsertOpenTicket model) { try { InsertOpenTicket objModel = new InsertOpenTicket(); objTicketRepository = new TicketRepository(_connStr); objModel = objTicketRepository.DeleteDummyOpenTicket(model); return objModel; } catch (Exception Ex) { throw Ex; } } // added by priya #region PutApi /// /// To insert open ticket /// /// extra param to identify the api /// open ticket info /// status public InsertOpenTicket Put([FromUri] string put1, [FromBody] InsertOpenTicket model) { try { InsertOpenTicket objModel = new InsertOpenTicket(); objTicketRepository = new TicketRepository(_connStr); objModel = objTicketRepository.UpdateOpenTicketWebPut(model); return objModel; } catch (Exception Ex) { throw Ex; } } public InsertOpenTicket Post([FromUri] string TripUpdate, [FromUri] int TripEnd, [FromUri] string TripEnd1, [FromUri] int TripEnd2, [FromBody] InsertOpenTicket model) { try { InsertOpenTicket objModel = new InsertOpenTicket(); objTicketRepository = new TicketRepository(_connStr); objModel = objTicketRepository.UpdateOpenTrip(model); return objModel; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("UpdateOpenTrip_Controller", Ex.Message, path, errorlogtf); throw Ex; } } #endregion public string Get([FromUri] string ticketid) { string estimated_van_reach_time = ""; objTicketRepository = new TicketRepository(_connStr); estimated_van_reach_time = objTicketRepository.getEstimatedVanReach(ticketid); return estimated_van_reach_time; } #endregion } }