EOS-WebAPI/Controllers/Ticket/LiveTabTrackingController.cs
Nidhi Bhargava d0ac8a7790 Code Commit
2025-09-04 17:30:22 +05:30

162 lines
7.1 KiB
C#

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
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
TicketRepository objTicketRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
public List<LiveTrackingDetailsModel> Post([FromBody] LiveTrackingDetailsModel model)
{
try
{
string strsuccess = "";
LiveTrackingDetailsModel objTicketDetail = new LiveTrackingDetailsModel();
List<LiveTrackingDetailsModel> objlsttracking = new List<LiveTrackingDetailsModel>();
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
}
}