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

292 lines
14 KiB
C#

using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using VECV_WebApi.Models.Activity;
using VECV_WebApi.Models.Customer;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.Mobile;
using VECV_WebApi.Models.Ticket;
using VECV_WebApi.Models.User;
using VECV_WebApi.Models.Vehicle;
using VECV_WebApi.UserClient;
namespace VECV_WebApi.Controllers.Mobile
{
/// <summary>
/// This controller contain apis, related to Mobile users
/// </summary>
public class MobileController : 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 Global Repository object available to this class
/// </summary>
GlobalRepository objGlobalRepository = new GlobalRepository("");
/// <summary>
/// making Activity Repository object available to this class
/// </summary>
ActivityRepository objActivityRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
/// <summary>
/// Merging following 6 APIs result into one api :-
/// 1. Get Open/Close Ticket activities
/// 2. Get Customer Details
/// 3. Get Owner Details
/// 4. Get Ticket Details
/// 5. Get Escalation Levels
/// 6. Get Vehicle Details
/// </summary>
/// <param name="model">required input parameters for ticket/vehicle/customer etc</param>
/// <returns>status and data</returns>
public MobileOutputModel Post([FromBody]MobileInputModel model)
{
MobileOutputModel oMobileOutputModel = new MobileOutputModel();
TicketRepository objTicket = new TicketRepository(_connStr);
List<CloseTicketActivityTicketWiseModel> list_CloseTicketActivity = new List<CloseTicketActivityTicketWiseModel>();
List<OpenTicketActivityTicketWiseModel> list_OpenTicketActivity = new List<OpenTicketActivityTicketWiseModel>();
List<CustomerVehicleModel> list_CustomerDetails = new List<CustomerVehicleModel>();
EscalationLevelOutputModel oEscalationLevelOutputModel = new EscalationLevelOutputModel();
CustomerRepository objCustomerRepository = new CustomerRepository(_connStr);
CustomerModel oCustomerOutputModel = new CustomerModel();
List<CustomerOpenTicketFullDetailsTicketWise> ticket_List_output = new List<CustomerOpenTicketFullDetailsTicketWise>();
VehicleRepository objVehicleRepository = new VehicleRepository(_connStr);
VehicleModel oVehicleModel = new VehicleModel();
try
{
//================= Getting Open/Close Ticket activities ===========================
if ((model.OpenCloseStatus.ToUpper().Trim() == "OPEN") || (model.OpenCloseStatus.ToUpper().Trim() == "OPEN_KAM"))
{
objActivityRepository = new ActivityRepository(_connStr);
OpenTicketActivityTicketWiseModel model_Input_OpenTicketActivity = new OpenTicketActivityTicketWiseModel();
model_Input_OpenTicketActivity.Token = model.Token;
model_Input_OpenTicketActivity.TicketId = model.TicketId;
model_Input_OpenTicketActivity.UtcMinute = Convert.ToInt32(model.UtcMinute);
list_OpenTicketActivity = objActivityRepository.GetOpenTicketActivityTicketWise(model_Input_OpenTicketActivity);
oMobileOutputModel.list_OpenTicketActivity = list_OpenTicketActivity;
}
//-----------------------------------------------------
else if ((model.OpenCloseStatus.ToUpper().Trim() == "CLOSE") || (model.OpenCloseStatus.ToUpper().Trim() == "CLOSE_KAM"))
{
objActivityRepository = new ActivityRepository(_connStr);
CloseTicketActivityTicketWiseModel model_Input_CloseTicketActivity = new CloseTicketActivityTicketWiseModel();
model_Input_CloseTicketActivity.Token = model.Token;
model_Input_CloseTicketActivity.TicketId = model.TicketId;
model_Input_CloseTicketActivity.UtcMinute = Convert.ToInt32(model.UtcMinute);
list_CloseTicketActivity = objActivityRepository.GetCloseTicketActivityTicketWise(model_Input_CloseTicketActivity);
oMobileOutputModel.list_CloseTicketActivity = list_CloseTicketActivity;
}
//=============================================================================
//==================== Getting Customer Details ===============================
CustomerVehicleModel model_input_CustomerVehicle = new CustomerVehicleModel();
model_input_CustomerVehicle.Token = model.Token;
model_input_CustomerVehicle.VehicleRegistrationNumber = model.VehicleRegistrationNumber;
model_input_CustomerVehicle.CustomerMobile1 = model.CustomerMobile1;
model_input_CustomerVehicle.TicketNo = model.TicketNo;
list_CustomerDetails = objTicket.GetCustomerDetails(model_input_CustomerVehicle);
oMobileOutputModel.list_CustomerDetails = list_CustomerDetails;
//=============================================================================
//====================== Getting Owner Details =================================
CustomerModel model_input_CustomerModel = new CustomerModel();
model_input_CustomerModel.Token = model.Token;
//model_input_CustomerModel.CustomerId = model.CustomerId;
model_input_CustomerModel.VehicleRegistrationNumber = model.VehicleRegistrationNumber;
//model_input_CustomerModel.CustomerMobileNumber1 = model.CustomerMobileNumber1;
oCustomerOutputModel = objCustomerRepository.GetOwnerDetail(model_input_CustomerModel);
oMobileOutputModel.customerModel = oCustomerOutputModel;
//==============================================================================
//====================== Getting Ticket Details =================================
CustomerOpenTicketFullDetailsTicketWise model_input_CustomerOpenTicketFullDetailsTicketWise = new CustomerOpenTicketFullDetailsTicketWise();
model_input_CustomerOpenTicketFullDetailsTicketWise.Token = model.Token;
model_input_CustomerOpenTicketFullDetailsTicketWise.TicketId = model.TicketId;
model_input_CustomerOpenTicketFullDetailsTicketWise.OpenCloseStatus = model.OpenCloseStatus;
model_input_CustomerOpenTicketFullDetailsTicketWise.UtcMinute = Convert.ToInt32(model.UtcMinute);
ticket_List_output = objTicket.GetCustomerOpenTicketFullDetailTicketWise(model_input_CustomerOpenTicketFullDetailsTicketWise);
oMobileOutputModel.list_CustomerOpenTicketFullDetails = ticket_List_output;
//==============================================================================
//==================== Getting Escalation Levels ===============================
if (ticket_List_output.Count > 0 && !string.IsNullOrEmpty(ticket_List_output[0].Dealer_Id))
{
EscalationLevelInputModel model_input_EscalationLevel = new EscalationLevelInputModel();
model_input_EscalationLevel.DelerId = ticket_List_output[0].Dealer_Id; // getting dealer id
model_input_EscalationLevel.Token = model.Token;
model_input_EscalationLevel.VehicleType = model.VehicleType;
oEscalationLevelOutputModel = objTicket.GetEscalationLevels(model_input_EscalationLevel);
}
oMobileOutputModel.escalationLevelOutputModel = oEscalationLevelOutputModel;
//==============================================================================
//====================== Getting Vehicle Details =================================
VehicleModel model_input_Vehicle = new VehicleModel();
model_input_Vehicle.Token = model.Token;
model_input_Vehicle.Id = model.Id;
model_input_Vehicle.RegistrationNo = model.RegistrationNo;
oVehicleModel = objVehicleRepository.GetVehicleDetail(model_input_Vehicle);
oMobileOutputModel.vehicleModel = oVehicleModel;
//==============================================================================
oMobileOutputModel.Status = "1";
return oMobileOutputModel;
}
catch (Exception Ex)
{
oMobileOutputModel.Status = "0";
oMobileOutputModel.Message = Ex.Message;
return oMobileOutputModel;
}
}
#endregion
public LogOnModel LogOn(LogOnModel model, string _appName)
{
VECV_WebApi.Models.User.UserModel objUserModel = new Models.User.UserModel();
UserRepository objUserRepository;
try
{
if (ModelState.IsValid)
{
UserClient.UserClient oUserClient = new UserClient.UserClient();
var userDetail = oUserClient.validateLoginDetails(model.UserName.Trim(), model.Password, _appName);
var userAppId = oUserClient.GetUserById(userDetail.userId);
if (userDetail.userId != Guid.Empty && userDetail.Role.Count() > 0)
{
UserRepository objUserresp = new UserRepository(_connStr);
string strappversion = objUserresp.GetUserAppVersion(model.UserName, model.token);
if (strappversion == ConfigurationManager.AppSettings["latest_app_version_vecvUsers"].ToString())
{
objUserRepository = new UserRepository(_connStr);
objUserModel.UserName = model.UserName;
objUserModel.Token = model.token;
objUserModel = objUserRepository.GetUserDetailUserNameWise(objUserModel);
model.userId = objUserModel.UserId;
model.ProductVariant = objUserModel.VehicleTagging;
model.Designation = objUserModel.Designation;
model.Organization = objUserModel.OrganizationAlias;
model.Name = objUserModel.FirstName;
model.isValid = true;
model.Status = "1";
model.Message = "Valid";
}
else
{
model.Status = "0";
model.isValid = false;
model.Message = "Please update version from play store";
}
}
else
{
model.Status = "0";
model.isValid = false;
model.Message = "Invalid Username and Password";
}
}
return model;
}
catch (Exception Ex)
{
if(Ex.Message.ToLower() == "there is no row at position 0.")
{
model.Message = "Invalid Username and Password";
}
else {
model.Message = Ex.Message;
}
model.Status = "0";
return model;
}
}
//Mobile OTP CR
public CheckMobileModel VerifyOTP(CheckMobileModel model, string extraparam)
{
CheckMobileModel responseModel = new CheckMobileModel();
if (!String.IsNullOrEmpty(model.OTP.ToString()) && !String.IsNullOrEmpty(model.ticketID))
{
VehicleRepository objVehicleRepository = new VehicleRepository(_connStr);
responseModel = objVehicleRepository.CheckOTPMobile(model);
return responseModel;
}
else
{
responseModel.response = false;
return responseModel;
}
}
public string post(LogOnModel model, string _appName,string vecvuser)
{
UserRepository objUserresp = new UserRepository(_connStr);
string strappversion = objUserresp.updateUserAppVersion(model.UserName, model.token, _appName);
return strappversion;
}
//Mobile OTP CR
}
}