namespace VECV_WebApi.Controllers.Activity { #region Namespaces using LoggingHelper; using Newtonsoft.Json; using RestSharp; using System; using System.Collections.Generic; using System.Configuration; using System.Globalization; using System.IO; using System.Linq; using System.Net; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Script.Serialization; using VECV_WebApi.Models.Activity; using VECV_WebApi.Models.EmailServices; using VECV_WebApi.Models.Ticket; using VECV_WebApi.Models.Vehicle; #endregion /// /// This controller contain APIs releted to actvity on open ticket and close ticket /// public class ActivityController : 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 Activity Repository object available to this class /// ActivityRepository objActivityRepository; /// /// making the Database connection string available to this class /// private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString(); #endregion #region APIs /// /// This method is used for get activity of open ticket detail, ticket id wise /// /// Ticket information /// activities of open ticket, ticket id wise public List Post([FromBody] OpenTicketActivityTicketWiseModel model) { //write data logs OpenTicketActivityTicketWiseModel objModel = new OpenTicketActivityTicketWiseModel(); List objList = new List(); try { objActivityRepository = new ActivityRepository(_connStr); objList = objActivityRepository.GetOpenTicketActivityTicketWise(model); return objList; } catch (Exception Ex) { objList.Add(new OpenTicketActivityTicketWiseModel { Status = "0", Message = Ex.Message }); //write error log into file objLog.ErrorLogFile("GetOpenTicketActivityTicketWise_Controller", Ex.Message, path, errorlogtf); return objList; } } /// /// This method is used for get activities of close ticket, ticket id wise /// /// Ticket Information /// activities of close ticket, ticket id wise public List Post([FromUri] string Close, [FromBody] CloseTicketActivityTicketWiseModel model) { // write data log into file CloseTicketActivityTicketWiseModel objModel = new CloseTicketActivityTicketWiseModel(); List objList = new List(); try { objActivityRepository = new ActivityRepository(_connStr); objList = objActivityRepository.GetCloseTicketActivityTicketWise(model); return objList; } catch (Exception Ex) { objList.Add(new CloseTicketActivityTicketWiseModel { Status = "0", Message = Ex.Message }); return objList; } } public string Post([FromUri] string preClose,[FromUri] string preClosereason, [FromBody] CloseTicketActivityTicketWiseModel model) { // write data log into file string reasonval = ""; try { objActivityRepository = new ActivityRepository(_connStr); reasonval = objActivityRepository.getPreclosureReason(model.TicketId); return reasonval; } catch (Exception Ex) { reasonval = "error"; return reasonval; } } public string Get([FromUri] string chassisno, [FromUri] string regno) { //string chassino = "MC2DALRC0ME001921"; VehicleRepository objVehicleRepository; VehicleModel objModel = new VehicleModel(); try { //VehicleRepository objvehicle = new VehicleRepository(); objVehicleRepository = new VehicleRepository(_connStr); //string[] strings = dtccodes.Split(','); VehicleModel model = new VehicleModel(); model.Id = ""; model.RegistrationNo = regno; // model.Id = null; objVehicleRepository = new VehicleRepository(_connStr); objModel = objVehicleRepository.GetchessisDetail(model); } catch (Exception Ex) { objLog.ErrorLogFile("get chasssi number", Ex.Message, path, errorlogtf); } return objModel.ChassisNumber; } //Added by priya 09 feb 2023 /* public Telematic_Model Get([FromUri] string chassisno) { Telematic_Model model = new Telematic_Model(); if (chassisno.Length > 12) { try { string APIRegistrationNo = string.Format(ConfigurationManager.AppSettings["EOSAPI "].ToString(), chassisno); WebRequest req = WebRequest.Create(APIRegistrationNo); req.Method = "GET"; ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; WebResponse webRes = req.GetResponse(); HttpWebResponse resp = req.GetResponse() as HttpWebResponse; if (resp.StatusCode == HttpStatusCode.Created) { StreamReader ResponseDataStream = new StreamReader(resp.GetResponseStream()); String res = ResponseDataStream.ReadToEnd(); JavaScriptSerializer js = new JavaScriptSerializer(); model = js.Deserialize(res); //model.lastdate = model.positionDateTime.ToShortDateString(); // string jsonified2 = JsonConvert.SerializeObject(model); // objLog.AddLogFile("telematic detail", jsonified2, path, errorlogtf); // DateTime? dt = null; //dt = Convert.ToDateTime(model.positionDateTime); string strposteddate = model.positionDateTime.ToShortDateString(); if (strposteddate == "1/1/0001") { strposteddate = null; } else { strposteddate =model.positionDateTime.ToShortDateString(); } model.lastdate = strposteddate; //odometerreading = model.odometer; } } catch (Exception Ex) { objLog.ErrorLogFile("no telematic details", Ex.Message, path, errorlogtf); } } return model; } */ /// /// Added for new telematics /// /// /// /// /// public Telematic_Model_new Get([FromUri] string chassisno) { Telematic_Model_new model = new Telematic_Model_new(); TicketRepository objTicketRepository = new TicketRepository(_connStr); var apiurl = "https://apiplatform.vecv.net/volvo-api/getLatestLocation_Volvo/" + chassisno + "/"; if (chassisno.Length > 12) { try { if (System.Configuration.ConfigurationManager.AppSettings["isProtechAPICall"] != "true") { //requestVehicleType.AddParameter("chassisno", chassisno); var clientVehicleType = new RestClient("https://apiplatform.vecv.net/volvo-api/getLatestLocation_Volvo/" + chassisno + "/"); clientVehicleType.Timeout = 10000; // clientVehicleType.Timeout =-1; var requestVehicleType = new RestRequest(Method.GET); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3 | (SecurityProtocolType)3072; //requestVehicleType.AddParameter("chassisno", chassisno); var username = ConfigurationManager.AppSettings["EOSUSERNAMEFORGETTINGTELEMATICDATA"].ToString(); var password = ConfigurationManager.AppSettings["EOSPASSWORDFORGETTINGTELEMATICDATA"].ToString(); // Add Basic Authentication var credentials = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes($"{username}:{password}")); // Add Basic Authentication header requestVehicleType.AddHeader("Authorization", $"Basic {credentials}"); requestVehicleType.AddHeader("Content-Type", "application/json"); IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType); Console.WriteLine(responseVehicleType.ResponseStatus); if(responseVehicleType.ResponseStatus.ToString() == "Error") { bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf); } else { if (responseVehicleType.ResponseStatus.ToString() == "TimedOut") { bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString()); objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf); } else { var stringvehcileResult = responseVehicleType.Content.ToString(); var telematicList = JsonConvert.DeserializeObject>(stringvehcileResult); // Get the latitude value if (telematicList[0].status.ToLower() == "success") { model.latitude = telematicList[0].latitude; model.longitude = telematicList[0].longitude; model.odometer = telematicList[0].odometer; model.positionDateTime = telematicList[0].positionDateTime; string format = "yyyyMMddHHmmss"; // Parse the string to DateTime DateTime dateTime = DateTime.ParseExact(model.positionDateTime, format, CultureInfo.InvariantCulture); string strposteddate = dateTime.ToShortDateString(); if (strposteddate == "1/1/0001") { strposteddate = null; } else { strposteddate = dateTime.ToShortDateString(); } model.lastdate = strposteddate; } } } } } catch (Exception Ex) { bool isSend = objTicketRepository.emailForError(Ex.Message, apiurl); objLog.ErrorLogFile("no telematic details", Ex.Message, path, errorlogtf); } } return model; } public string Get([FromUri] string connected, [FromUri] string ticketId, [FromUri] string vehiclestatus) { //string chassino = "MC2DALRC0ME001921"; VehicleRepository objVehicleRepository; string strmessage = ""; try { //VehicleRepository objvehicle = new VehicleRepository(); objVehicleRepository = new VehicleRepository(_connStr); objVehicleRepository = new VehicleRepository(_connStr); strmessage = objVehicleRepository.updateVehicleConnectedFlag(ticketId, vehiclestatus); } catch (Exception Ex) { objLog.ErrorLogFile("vehicle connected or not", Ex.Message, path, errorlogtf); } return strmessage; } #endregion } }