namespace VECV_WebApi.Controllers.Dealer
{
#region Namespaces
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.Dashboard;
using VECV_WebApi.Models.Dealer;
using VECV_WebApi.Models.ServiceEngineer;
using VECV_WebApi.Models.Sync;
using VECV_WebApi.Models.Tracking;
using VECV_WebApi.Models.User;
#endregion
///
/// This controller contain api releated to service engineer
///
public class WMController : 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 ServiceEngineerRegistration Repository object available to this class
///
ServiceEngineerRegistrationResponseModel objServiceEngRegistrationResponse;
///
/// making ServiceEngineer Repository object available to this class
///
DealerRepository objDealerRepository;
///
/// making the Database connection string available to this class
///
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
///
/// To get open ticket detail of dealer
///
/// Dealer info
/// open ticket details of dealer
public List Post([FromBody] DealerOpenTicketDetailModel model)
{
DealerOpenTicketDetailModel objModel = new DealerOpenTicketDetailModel();
List objList = new List();
try
{
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetWMOpenTicketDetail(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerOpenTicketDetail_Controller", Ex.Message, path, errorlogtf);
return objList;
}
}
public List Post([FromUri] string Sync, [FromUri] string WM, [FromBody] SyncModel model)
{
SyncModel objModel = new SyncModel();
List objList = new List();
try
{
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetSyncTicketDetail_WM(model);
return objList;
}
catch (Exception Ex)
{
objList.Add(new SyncModel
{
Status = "0",
Message = Ex.Message
});
return objList;
}
}
public string Post(string _appName, string RegistrationNo, string iswm)
{
objServiceEngRegistrationResponse = new ServiceEngineerRegistrationResponseModel();
objDealerRepository = new DealerRepository(_connStr);
string strappversion = objDealerRepository.updateWMAppVersion(RegistrationNo, _appName);
return strappversion;
}
public List Post(string dealercode, string wm, string iswm, string get, [FromBody] DashboardModel model)
{
List objList = new List();
try
{
objServiceEngRegistrationResponse = new ServiceEngineerRegistrationResponseModel();
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetTileDashboardDataSetWM(model);
}
catch (Exception Ex)
{
objList.Add(new DashboardModel
{
Status = "0",
Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message
});
// write error log into file
objLog.ErrorLogFile("DashboardController GetTileDashboardDataSet", Ex.Message, path, errorlogtf);
}
return objList;
}
public RegistrationResponseModel post([FromUri] string multipleDealer, [FromUri] int dealer, [FromUri] int isAuthenticate, [FromBody] ServiceEngineerRegistrationRequestModel model)
{
RegistrationResponseModel oRegistrationResponseModel = new RegistrationResponseModel();
ServiceEngineerRegistrationResponseModel objServiceEngRegistrationRepsonseModel = new ServiceEngineerRegistrationResponseModel();
try
{
objDealerRepository = new DealerRepository(_connStr);
string Token = ConfigurationManager.AppSettings["Token"].ToString();
model.Token = Token;
oRegistrationResponseModel = objDealerRepository.RegisterWMDevice(model);
if (oRegistrationResponseModel.Status == "0")
{
oRegistrationResponseModel.Status = "0";
oRegistrationResponseModel.Massage = "Login Failed !!! Please enter registered mobile number available in EOS";// oRegistrationResponseModel.Massage;
}
else
{
objServiceEngRegistrationResponse = objDealerRepository.LoginWMUser(model);
if (objServiceEngRegistrationResponse.Status == "1")
{
string strappversion = objDealerRepository.GetWMAppVersion(model.RegistrationNo, Token);
//if (strappversion == ConfigurationManager.AppSettings["latest_app_version_Dealers"].ToString())
//{
// return oRegistrationResponseModel;
//}
if (strappversion == ConfigurationManager.AppSettings["latest_app_version_Dealers"].ToString())
{
string[] saAllowedCharacters = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
string sRandomOTP = GenerateRandomOTP(4, saAllowedCharacters);
oRegistrationResponseModel.OTP = sRandomOTP;
oRegistrationResponseModel = objDealerRepository.GetUserDetailWMWise(model, sRandomOTP);
oRegistrationResponseModel.UserId = oRegistrationResponseModel.UserName.ToString();
oRegistrationResponseModel.Token = Token;
oRegistrationResponseModel.OTP = sRandomOTP;
oRegistrationResponseModel.IsPasswordExist = "1";
oRegistrationResponseModel.Status = "1";
oRegistrationResponseModel.Massage = "Device Register successfully";
}
else
{
oRegistrationResponseModel.Status = "0";
oRegistrationResponseModel.IsPasswordExist = "1";
oRegistrationResponseModel.Massage = "Please update version from play store";
}
}
else
{
oRegistrationResponseModel.Status = "0";
oRegistrationResponseModel.IsPasswordExist = "1";
oRegistrationResponseModel.Massage = objServiceEngRegistrationResponse.Massage;
}
}
return oRegistrationResponseModel;
}
catch (Exception Ex)
{
oRegistrationResponseModel.Status = "0";
oRegistrationResponseModel.Massage = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message;
return oRegistrationResponseModel;
}
}
public CurrentTracking post([FromUri] string Tracking, [FromUri] string Tracking1, [FromUri] string Tracking2, [FromBody] VanModel model)
{
// write data log into file
CurrentTracking objCurrentTracking = new CurrentTracking();
try
{
TrackingRepository objTrackingRepository = new TrackingRepository(_connStr);
objCurrentTracking = objTrackingRepository.GetCurrentTrackingDetailWMWIse(model);
return objCurrentTracking;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetCurrentTrackingDetailUserIdWIse_Controller", Ex.Message, path, errorlogtf);
objCurrentTracking.status = "0";
objCurrentTracking.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; ;
return objCurrentTracking;
}
}
private string GenerateRandomOTP(int iOTPLength, string[] saAllowedCharacters)
{
string sOTP = String.Empty;
string sTempChars = String.Empty;
Random rand = new Random();
for (int i = 0; i < iOTPLength; i++)
{
int p = rand.Next(0, saAllowedCharacters.Length);
sTempChars = saAllowedCharacters[rand.Next(0, saAllowedCharacters.Length)];
sOTP += sTempChars;
}
return sOTP;
}
#endregion
}
}