namespace VECV_WebApi.Controllers.BoatAPI
{
using DocumentFormat.OpenXml.Bibliography;
using DocumentFormat.OpenXml.EMMA;
using DocumentFormat.OpenXml.Office2010.ExcelAc;
using DocumentFormat.OpenXml.Wordprocessing;
using ExcelHelper;
#region Namespaces
using LoggingHelper;
using Microsoft.Ajax.Utilities;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Configuration;
using System.Web;
using System.Web.Helpers;
using System.Web.Http;
using System.Web.Http.Results;
using System.Web.Mvc;
using VECV_WebApi.Common;
using VECV_WebApi.CommonAuthorization;
using VECV_WebApi.Models.BoatAPIModel;
using VECV_WebApi.Models.BoatAPIRepository;
using VECV_WebApi.Models.Notification;
using VECV_WebApi.Models.Ticket;
#endregion
///
/// This controller contain ticket related api
///
[JwtAuthentication]
[System.Web.Http.Authorize]
[RoutePrefix("api/ai-boat")]
public class BoatAPIController : 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"]);
string _appName = (ConfigurationManager.AppSettings["ApplicationName"]);
///
/// making the Database connection string available to this class
///
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
[System.Web.Http.HttpPost]
[System.Web.Http.Route("Ticket_detail")]
/*{
"TicketId": "T123456",
"Reg_No": "MH12AB1234"
}*/
public IHttpActionResult Ticket_detail([FromBody] TicketDetailsRequestModel model)
{
TicketDetailsResponseModel objTicketDetailsResponseModel = new TicketDetailsResponseModel();
if (model == null)
return BadRequest("Request body is missing or invalid.");
try
{
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
objTicketDetailsResponseModel = objBoatAPI.GetTicketDetails(model);
return Ok(objTicketDetailsResponseModel);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController Ticket_detail", Ex.Message, path, errorlogtf);
return Ok($"Received: Error = {Ex.Message}");
}
}
[System.Web.Http.HttpPost]
[System.Web.Http.Route("UpdateRemarks")]
public IHttpActionResult UpdateRemarks([FromBody] updateRemarksRequestModel model)
{
ResponseModel objResponseModel = new ResponseModel();
if (model == null)
return BadRequest("Request body is missing or invalid.");
try
{
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
string str = objBoatAPI.InsertBoatComment(model);
objResponseModel.Status = "true";
objResponseModel.Message = "Remarks Updated Successfully";
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController UpdateRemarks", Ex.Message, path, errorlogtf);
objResponseModel.Status = "false";
objResponseModel.Message = Ex.Message;
}
return Ok(objResponseModel);
}
[System.Web.Http.HttpPost]
[System.Web.Http.Route("preclosureUpdate")]
public IHttpActionResult preclosureUpdate([FromBody] preClosureUpdateRequestModel model)
{
ResponseModel objResponseModel = new ResponseModel();
if (model == null)
return BadRequest("Request body is missing or invalid.");
try
{
TicketWhatsupAPIModel objTicketWhatsupAPIModel = new TicketWhatsupAPIModel();
NotificationRepository oNotificationRepository = new NotificationRepository(_connStr);
objTicketWhatsupAPIModel = oNotificationRepository.GetTicketStatusByTicketId(model.Ticket_Id.Trim());
InsertOpenTicket requestmodel = new InsertOpenTicket();
requestmodel.ChassisNo = "DUMMYCHASSISEOS";
requestmodel.LastModifiedBy = "autopreclosure.vecv.in";
requestmodel.OdometerReading = Convert.ToDouble(model.OdoMeter_reading);
requestmodel.preclosure_reason = model.preclosure_reason;
requestmodel.SuggestionComment = model.SuggestionComment;
requestmodel.TicketId = objTicketWhatsupAPIModel.TicketId;
requestmodel.TicketIdAlias = model.SuggestionComment;
requestmodel.VehicleRegistrationNumber = objTicketWhatsupAPIModel.VehicleRegisterNumber;
requestmodel.VehicleType = "Haulage";
requestmodel.TicketStatus = 4;
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
InsertOpenTicket objInsertOpenTicket=new InsertOpenTicket();
objInsertOpenTicket= objBoatAPI.UpdateOpenTicketaBoat(requestmodel);
objResponseModel.Status = "true";
objResponseModel.Message = "Ticket Preclose Successfully";
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController preclosureUpdate", Ex.Message, path, errorlogtf);
objResponseModel.Status = "false";
objResponseModel.Message = Ex.Message;
}
return Ok(objResponseModel);
}
[System.Web.Http.HttpPost]
[System.Web.Http.Route("getVanList")]
public IHttpActionResult getVanList([FromBody] VanListRequestModel model)
{
List objVanListResponseModel = new List();
if (model == null)
return BadRequest("Request body is missing or invalid.");
try
{
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
objVanListResponseModel = objBoatAPI.GetVanListBoatAPI(model);
return Ok(objVanListResponseModel);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController getVanList", Ex.Message, path, errorlogtf);
return Ok($"Received: Error = {Ex.Message}");
}
}
[System.Web.Http.HttpPost]
[System.Web.Http.Route("assignvan")]
public IHttpActionResult assignvan([FromBody] AssignVanRequestModel model)
{
if (model == null)
return BadRequest("Request body is missing or invalid.");
ResponseModel objResponseModel = new ResponseModel();
try
{
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
VanDetailsRequestModel objVanDetailsRequestModel = new VanDetailsRequestModel();
TicketRepository objTicketRepository = new TicketRepository(_connStr);
TicketWhatsupAPIModel objTicketWhatsupAPIModel = new TicketWhatsupAPIModel();
NotificationRepository oNotificationRepository = new NotificationRepository(_connStr);
if (model.Type == "Reg_no")
{
objVanDetailsRequestModel.Reg_no = model.Value;
}
else
{
objVanDetailsRequestModel.Liscensce_key = model.Value;
}
objTicketWhatsupAPIModel = oNotificationRepository.GetTicketStatusByTicketId(model.TicketIdAlias.Trim());
// Licsecsce_Key
VanDetailsResponseModel objVanDetailsResponseModel = new VanDetailsResponseModel();
objVanDetailsResponseModel = objBoatAPI.Getvandetailsbyfilter(objVanDetailsRequestModel);
string regno = objTicketWhatsupAPIModel.VehicleRegisterNumber;
InsertOpenTicket objModel = new InsertOpenTicket();
try
{
objModel.AssignedToUserLattitude = objVanDetailsResponseModel.Latitude;
objModel.AssignedToUserLongitude = objVanDetailsResponseModel.Longitude;
objModel.TicketStatusAlias = "new";
objModel.TicketStatus = 1;
objModel.OtherRemarks = "assign van";
objModel.Message = "assign van";
objModel.AssignedTo = "van";
objModel.EstimateDistance = "10";
//model.Token = model.Token;
objModel = objTicketRepository.UpdateOpenTicketWeb(objModel);
objModel.Token = "teramatrix";
objModel.TicketStatus = 2;
objModel.TicketStatusAlias = "assigned";
objModel.OtherRemarks = "assign van";
objModel.Message = "assign van";
objModel.AssignedTo = "van";
objModel.EstimateDistance = "10";
objModel.TicketIdAlias = model.TicketIdAlias;
objModel.VehicleRegistrationNumber = objVanDetailsResponseModel.Reg_no;
objModel.AssignedToUserLattitude = objVanDetailsResponseModel.Latitude;
objModel.AssignedToUserLongitude = objVanDetailsResponseModel.Longitude;
objModel = objTicketRepository.UpdateOpenTicketWeb(objModel);
objResponseModel.Status = "true";
objResponseModel.Message = "Ticket Re-Assign Successfully";
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("getVanList assignvan", Ex.Message, path, errorlogtf);
objResponseModel.Status = "false";
objResponseModel.Message = Ex.Message;
}
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController getVanList", Ex.Message, path, errorlogtf);
return Ok($"Received: Error = {Ex.Message}");
}
return Ok(objResponseModel);
}
}
#endregion
}