292 lines
14 KiB
C#
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
|
|
|
|
}
|
|
} |