namespace VECV_WebApi.Controllers.Sync { using ExcelHelper; #region Namespaces using LoggingHelper; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using RestSharp; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Net; using System.Reflection; using System.Text.RegularExpressions; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Script.Serialization; using VECV_WebApi.Models.EmailServices; using VECV_WebApi.Models.Sync; using VECV_WebApi.Models.Ticket; #endregion /// /// This controller contain apis releted to offline syncing /// public class SyncController : 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 Global Repository object available to this class /// GlobalRepository objGlobalRepository = new GlobalRepository(""); /// /// making Sync Repository object available to this class /// SyncRepository objSyncRepository; /// /// making the Database connection string available to this class /// private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString(); #endregion #region APIs /// /// To get synced open tickets details device alias wise /// /// open ticket sync info /// synced open tickets details device alias wise public List Post([FromBody] SyncOpenModel model) { SyncOpenModel objModel = new SyncOpenModel(); List objList = new List(); try { objSyncRepository = new SyncRepository(_connStr); objList = objSyncRepository.GetSyncOpenTicketDetail(model); return objList; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetSyncOpenTicketDetail_Controller", Ex.Message, path, errorlogtf); objList.Add(new SyncOpenModel { Status = "0", Message = Ex.Message }); return objList; } } /// /// To get close tickets detail device alias wise /// /// extra param to identify the api /// close ticket sync info /// close tickets detail device alias wise public List Post([FromUri] string Close, [FromBody] SyncCloseModel model) { SyncCloseModel objModel = new SyncCloseModel(); List objList = new List(); try { objSyncRepository = new SyncRepository(_connStr); objList = objSyncRepository.GetSyncCloseTicketDetail(model); return objList; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetSyncCloseTicketDetail_Controller", Ex.Message, path, errorlogtf); objList.Add(new SyncCloseModel { Status = "0", Message = Ex.Message }); return objList; } } /// /// To get all tickets detail device alias wise /// /// extra param to identify the api /// open + close ticket sync info /// all tickets detail device alias wise public List Post([FromUri] string Sync, [FromBody] SyncModel model) { SyncModel objModel = new SyncModel(); List objList = new List(); try { objSyncRepository = new SyncRepository(_connStr); objList = objSyncRepository.GetSyncTicketDetail(model); return objList; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetSyncTicketDetail_Controller", Ex.Message, path, errorlogtf); objList.Add(new SyncModel { Status = "0", Message = Ex.Message }); return objList; } } /// /// To get dealer open/close tickets for syncing /// /// extra param to identify the api /// extra param to identify the api /// open + close ticket sync info /// all tickets detail device alias wise public List Post([FromUri] string Sync, [FromUri] string Dealer, [FromBody] SyncModel model) { SyncModel objModel = new SyncModel(); List objList = new List(); try { objSyncRepository = new SyncRepository(_connStr); objList = objSyncRepository.GetSyncTicketDetail_Dealer(model); return objList; } catch (Exception Ex) { objList.Add(new SyncModel { Status = "0", Message = Ex.Message }); return objList; } } /// /// To get KAM open/close tickets for syncing /// /// extra param to identify th4444e api /// open + close ticket sync info /// all tickets detail device alias wise public List Post([FromUri] string Sync, [FromUri] string Kam, [FromUri] string Customer, [FromBody] SyncModel model) { SyncModel objModel = new SyncModel(); List objList = new List(); try { objSyncRepository = new SyncRepository(_connStr); objList = objSyncRepository.GetSyncTicketDetail_Kam(model); return objList; } catch (Exception Ex) { objList.Add(new SyncModel { Status = "0", Message = Ex.Message }); return objList; } } public TicketStatusModel Get([FromUri] string TicketId, [FromUri] string strTicketStatus ) { TicketStatusModel objticket = new TicketStatusModel(); objSyncRepository = new SyncRepository(_connStr); objticket = objSyncRepository.GetSyncTicketDetail(TicketId, strTicketStatus); return objticket; } public List Get([FromUri] string dtccodes) { List objDTCcode = new List(); objSyncRepository = new SyncRepository(_connStr); string[] strings = dtccodes.Split(','); // int[] ints = Array.ConvertAll(strings, s => int.Parse(s)); objDTCcode = objSyncRepository.GetAllDtcDescriptionListDataSet(strings); return objDTCcode; } public TechModel Post([FromUri] string Sync, [FromUri] string techinician, [FromUri] string techinician_number, [FromUri] string Customer, [FromBody] TechModel model) { TechModel objModel = new TechModel(); List objList = new List(); string strmsg = ""; // objLog.ErrorLogFile("Sync Mobile number",model.Tech_Number, path, errorlogtf); string istrue = ""; try { objSyncRepository = new SyncRepository(_connStr); bool isValid = IsValidMobileNumber(model.Tech_Number); if (isValid == true) { if (model.Tech_Number.Length == 10) { istrue = "true"; } else { istrue = "false"; strmsg = "Please enter 10 digit mobile number"; } } else { strmsg = "Please enter 10 digit mobile number"; istrue = "false"; } if (istrue == "false") { } else { strmsg = objSyncRepository.insertTechnicianNumber(model.TicketId, model.Tech_Number); } objModel.Message = strmsg; objModel.TicketId = model.TicketId; objModel.Tech_Number = model.Tech_Number; return objModel; } catch (Exception Ex) { objLog.ErrorLogFile("insertTechnicianNumber", Ex.Message, path, errorlogtf); objList.Add(new SyncModel { Status = "0", Message = Ex.Message }); } return objModel; } public VECV_WebApi.Models.Sync.CustomerOpenTicketDetail Post([FromUri] string Sync, [FromUri] string tikcetdetails, [FromUri] string latest, [FromUri] string ticketid, [FromUri] string getdetails, [FromBody] SyncModel model) { // SyncModel objModel = new SyncModel(); // List objList = new List(); VECV_WebApi.Models.Sync.CustomerOpenTicketDetail objModel = new VECV_WebApi.Models.Sync.CustomerOpenTicketDetail(); try { objSyncRepository = new SyncRepository(_connStr); objModel = objSyncRepository.getTicketDetailLatestUpdate(model); } catch (Exception Ex) { objLog.ErrorLogFile("insertTechnicianNumber", Ex.Message, path, errorlogtf); } return objModel; } static bool IsValidMobileNumber(string number) { string pattern = @"^\+?[0-9\s\-]*$"; // Adjust the regex pattern to match your requirements Regex regex = new Regex(pattern); return regex.IsMatch(number); } #endregion } }