using DBHelper; using ExcelHelper; using LoggingHelper; using Npgsql; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Security.Cryptography; using System.Text; using System.Web; using System.Web.Http; using VECV_WebApi.Models.EmailServices; using VECV_WebApi.Models.Ticket; namespace VECV_WebApi.Controllers.Ticket { public class LiveTabTrackingController : 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 the Database connection string available to this class /// private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString(); #endregion #region APIs public List Post([FromBody] LiveTrackingDetailsModel model) { try { string strsuccess = ""; LiveTrackingDetailsModel objTicketDetail = new LiveTrackingDetailsModel(); List objlsttracking = new List(); objTicketRepository = new TicketRepository(_connStr); objTicketDetail = objTicketRepository.getTicketDetailLiveTabTracking(model); objlsttracking.Add(objTicketDetail); return objlsttracking; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetTicketDetailOnDeviceAlias_Controller", Ex.Message, path, errorlogtf); throw Ex; } } public string Post(string vanlatlng,[FromBody] LiveTrackingDetailsModel model) { try { string strvanlatlng = ""; objTicketRepository = new TicketRepository(_connStr); strvanlatlng = objTicketRepository.gevanlatlngbydevicealias(model.TicketId_Alias); return strvanlatlng; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetTicketDetailOnDeviceAlias_Controller", Ex.Message, path, errorlogtf); throw Ex; } } public string Post(string ticketId, string LiveTracking, [FromBody] LiveTrackingDetailsModel model) { string status = ""; // string encryptkey = EncryptQueryString(model.TicketId, "tracking", "track"); objTicketRepository = new TicketRepository(_connStr); // strvanlatlng = objTicketRepository.gevanlatlngbydevicealias(model.TicketId_Alias); string encryptedText = objTicketRepository.Encrypt(model.TicketId, "Tracking", "YourSaltValue"); Console.WriteLine($"Encrypted: {encryptedText}"); // string encryptedTextval = objTicketRepository.sendmail(); return encryptedText; } public string Post(string ticketId, string LiveTracking, string smssend, [FromBody] LiveTrackingDetailsModel model) { string status = ""; string msgestimatedVanReachTime = System.Web.Configuration.WebConfigurationManager.AppSettings["msgLiveTrackingLink"].ToString(); if (System.Configuration.ConfigurationManager.AppSettings["livetrackingsmsIsBlocked"] != "true") { NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[1]; nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.TicketId); DataSet ds3_ticket_info = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_live_trackingsms_api"], nSqlParam1); if (ds3_ticket_info.Tables.Count > 0) { if (ds3_ticket_info.Tables[0].Rows.Count > 0) { objTicketRepository = new TicketRepository(_connStr); string strurl = objTicketRepository.Encrypt(model.TicketId, "Tracking", "YourSaltValue"); //string strurl = Encrypt("W2H0524869754", "Tracking", "YourSaltValue"); string liveurl = System.Web.Configuration.WebConfigurationManager.AppSettings["base_url_live_tracking"].ToString();// + strurl; string smsSentUrl = $"{liveurl}?{"p"}={Uri.EscapeDataString(strurl)}"; string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString(); //smsSentUrl= smsSentUrl.Replace("%3D","="); string msgelivetracking = System.Web.Configuration.WebConfigurationManager.AppSettings["msgLiveTrackingLinkSMS"].ToString(); msgelivetracking = string.Format(msgelivetracking, ds3_ticket_info.Tables[0].Rows[0]["_site_incharge_name"].ToString() + " %26", ds3_ticket_info.Tables[0].Rows[0]["_site_incharge_no"].ToString() + ") %26", ds3_ticket_info.Tables[0].Rows[0]["_wm_name"].ToString() + " %26", ds3_ticket_info.Tables[0].Rows[0]["_wm_no"].ToString(), ds3_ticket_info.Tables[0].Rows[0]["_dealer_name"].ToString(), smsSentUrl); //msgestimatedVanReachTime = string.Format(msgestimatedVanReachTime, ds3_ticket_info.Tables[0].Rows[0]["dealer_or_service_engg"].ToString(), // model.estimatedVAnReachTime, // ds3_ticket_info.Tables[0].Rows[0]["_ticket_id_alias"].ToString(), // smsSentUrl); // ds3_ticket_info.Tables[0].Rows[0]["dealer_dealer_name"].ToString()); string OwnerSms = string.Format(url, model.TechnicianMobileNumber, msgelivetracking); GlobalRepository objGlobalRepository = new GlobalRepository(_connStr); objGlobalRepository.SendMessage(OwnerSms); status = "success"; } } } return status; } #endregion } }