using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using GODATA.RoleServices;
using GODATA.AuthenticationServices;
using RestSharp;
using Newtonsoft.Json;
using GODATA.Models.Ticket;
using Kendo.Mvc.UI;
using Kendo.Mvc.Extensions;
using GODATA.Models.UserInventory;
namespace GODATA.Models.UserInventory
{
public class UserInventoryRepository
{
#region Global Variables
///
/// Represent object of LoggingUtility class
///
LoggingUtility objLog = new LoggingUtility();
///
/// Represent string object contain log file path
///
//string path = "~/Log/";
string path = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
///
/// Represent string object contain log status
///
string logtf = (ConfigurationManager.AppSettings["Log"]);
///
/// Represent string object contain Error log status
///
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
///
/// getting application name from AppSetting in web.config file
///
private static string _appName = ConfigurationManager.AppSettings["ApplicationName"].ToString();
///
/// getting web api token from AppSetting in web.config file
///
private static string _securityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString();
///
/// getting user's utc minutes from session
///
private static string _timeOffSetMinutes = null;
//= System.Web.HttpContext.Current.Session["UtcMinute"].ToString();
///
/// getting login user's id
///
private static string _LoginUserId = null;
///
/// getting time zone id from AppSetting in web.config file
///
private static string _TimeZoneId = ConfigurationManager.AppSettings["TimeZoneId"].ToString();
///
/// getting rest api url from AppSetting in web.config file
///
private static string _RestClientUrl = ConfigurationManager.AppSettings["RestfulApiUrl"].ToString();
#endregion
#region RestApiCall
///
/// Post method to get organization list user wise
///
/// return list
public List GetOrganizationList()
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/global", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("Id", _LoginUserId);
return client.Execute>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetOrganizationList", ex.Message, path, errorlogtf);
throw ex;
}
}
///
/// Get method to get region name
///
/// return list
public List GetRegionModel()
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/global", Method.GET);
return client.Execute>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetRegionModel", ex.Message, path, errorlogtf);
throw ex;
}
}
///
/// Post method to get state list
///
/// return state list
public List GetStateList()
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/global?state=ttpl", Method.POST);
request.AddParameter("Token", _securityToken);
return client.Execute>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetStateList", ex.Message, path, errorlogtf);
throw ex;
}
}
///
/// Post method to get city list state wise
///
/// return city list
public List GetCityList(int StateId)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/global?state=ttpl&city=ttpl", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("StateId", StateId);
return client.Execute>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetCityList", ex.Message, path, errorlogtf);
throw ex;
}
}
///
/// Post method to get non-vecv users(dealers) list
///
/// return list
public List GetNonUserDealersList()
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/User?Dealer=tt&NonUser=bbbb", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserId", _LoginUserId);
return client.Execute>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetNonUserDealersList", ex.Message, path, errorlogtf);
throw ex;
}
}
///
/// Post method to add new user
///
/// user inventory model
/// user type either vecv user or non-vecv user
/// return model
public UserCreateModel GetUserModel(UserInventory model, string userType)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/User?NewUser=new", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("FirstName", model.FirstName);
request.AddParameter("LastName", "");
request.AddParameter("UserName", model.UserName);
//request.AddParameter("AuthEngineId", model.UserName);
request.AddParameter("AuthEngineId", model.UserName);
request.AddParameter("Designation", model.Designation);
request.AddParameter("ObjectId", model.ObjectId);
//check user tupe
if (userType == "user")
{
request.AddParameter("OrganizationId", model.OrganizationId);
}
else
{
request.AddParameter("OrganizationId", model.OrganizationName);
}
request.AddParameter("City", model.City);
request.AddParameter("State", model.StateName);
request.AddParameter("Region", model.Region);
request.AddParameter("Language", model.Language);
request.AddParameter("TimeZoneId", _TimeZoneId);
request.AddParameter("VehicleTagging", model.VehicleTagging);
return client.Execute(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetUserModel", ex.Message, path, errorlogtf);
throw ex;
}
}
///
/// Post method to get users list based on user type, vecv or non-vecv
///
/// user type either vecv user or non-vecv user
/// return list
public List GetUserList(string userType)
{
try
{
_LoginUserId = HttpContext.Current.Session["UserId"].ToString();
_timeOffSetMinutes = HttpContext.Current.Session["UtcMinute"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/User?User=tt&Dealer=dd&UserType=" + userType, Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserId", _LoginUserId);
request.AddParameter("UtcMinute", _timeOffSetMinutes);
return client.Execute>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetUserList", ex.Message, path, errorlogtf);
throw ex;
}
}
///
/// Post method to get user's details based on user name
///
/// user name
/// return list
public List GetUserDetail(string UserName)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/User", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserName", UserName);
return client.Execute>(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetUserDetail", ex.Message, path, errorlogtf);
throw ex;
}
}
///
/// Post method to get login user's organization details user name wise
///
/// Login user's name
/// Returns list of user details
public UserCreateModel GetUserOrganizationDetails(string UserName)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/User", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("UserName", UserName);
return client.Execute(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetUserOrganizationDetails", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#region add deler principal
///
/// Post method to add new Dealer Principal User
///
/// Dealer Principle Create Model
/// user type principleDealer
/// action either insert or update
/// return model
public DealerPrincipleCreateModel GetDealerPrincipleModel(UserInventory model, string userType, string action)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Dealer?DealerDetail=principledealer", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("DealerId", (action.ToLower() == "update" || action.ToLower() == "delete") ? model.ObjectId : "");
request.AddParameter("PrincipalDealerName", model.FirstName);
request.AddParameter("DealerDealerName", "");
//request.AddParameter("AuthEngineId", model.UserName);
request.AddParameter("UserName", model.UserName);
request.AddParameter("Designation", model.Designation);
request.AddParameter("DealerOrganizationId", model.OrganizationId);
request.AddParameter("DealerCity", model.City);
request.AddParameter("DealerState", model.StateName);
if (action.ToLower() == "delete")
{
request.AddParameter("IsDeleted", model.IsDealerDeleted);
}
else
{
request.AddParameter("IsDeleted", "");
}
request.AddParameter("DealerContactNo", model.PrincipleDealerContactNo);
request.AddParameter("IsParent", model.IsPrincipleDealer);
request.AddParameter("DealerChildList", model.DealerChildList);
request.AddParameter("Operation", (action.ToLower() == "update" || action.ToLower() == "delete") ? "update" : action);
request.AddParameter("TimeZoneId", _TimeZoneId);
request.AddParameter("IsDealerDeleted", model.IsDealerDeleted);
return client.Execute(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetDealerPrincipleModel", ex.Message, path, errorlogtf);
throw ex;
}
}
#region Get dealer principal
///
/// Get dealer Principal Details
///
/// Dealer Principal Id
/// Type of user either a child dealer or dealer principal
/// return model
public DealerPrincipleCreateModel GetDealerPrincipalCompleteDetail(string sDealerId, string GetDetailsOf)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/Dealer?DealerDetail=" + GetDetailsOf, Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("DealerId", sDealerId);
return client.Execute(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("InventorRepository_GetDealerCompleteDetail", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
#endregion
#region add vota dealer from eos web app
////add dealer user in vota app
//public UserCreateModel GetVotaUserModel(UserInventory model, string userType)
//{
// try
// {
// var client = new RestSharp.RestClient("http://localhost:1728/");
// var request = new RestRequest("Api/User?NewUser=new", Method.POST);
// request.AddParameter("Token", _securityToken);
// request.AddParameter("FirstName", model.FirstName);
// request.AddParameter("LastName", "");
// request.AddParameter("UserName", model.UserName);
// //request.AddParameter("AuthEngineId", model.UserName);
// request.AddParameter("AuthEngineId", model.UserName);
// request.AddParameter("Designation", model.Designation);
// request.AddParameter("ObjectId", model.ObjectId);
// //check user tupe
// if (userType == "user")
// {
// request.AddParameter("OrganizationId", model.OrganizationId);
// }
// else
// {
// request.AddParameter("OrganizationId", model.OrganizationName);
// }
// request.AddParameter("City", model.City);
// request.AddParameter("State", model.StateName);
// request.AddParameter("Region", model.Region);
// request.AddParameter("Language", model.Language);
// request.AddParameter("TimeZoneId", _TimeZoneId);
// request.AddParameter("VehicleTagging", model.VehicleTagging);
// return client.Execute(request).Data;
// }
// catch (Exception ex)
// {
// objLog.ErrorLogFile("UserInventoryRepository_GetUserModel", ex.Message, path, errorlogtf);
// throw ex;
// }
//}
#endregion
#region User CRUD
///
/// Post method to add new user
///
/// user inventory model
/// user type either vecv user or non-vecv user
/// return model
public UserCreateModel EditDeleteUserModel(UserInventory model, string userType)
{
try
{
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/User?User=update&UpdateDeleteUser=update", Method.POST);
request.AddParameter("Token", _securityToken);
request.AddParameter("FirstName", model.FirstName);
request.AddParameter("LastName", "");
request.AddParameter("UserName", model.UserName);
request.AddParameter("AuthEngineId", model.UserName);
request.AddParameter("Designation", model.Designation);
request.AddParameter("ObjectId", model.ObjectId);
//check user tupe
if (userType == "user")
{
request.AddParameter("OrganizationId", model.OrganizationId);
}
else
{
request.AddParameter("OrganizationId", (model.IsDeleted == true) ? model.OrganizationId : model.OrganizationName);
}
request.AddParameter("City", model.City);
request.AddParameter("State", model.StateName);
request.AddParameter("Region", model.Region);
request.AddParameter("Language", model.Language);
request.AddParameter("TimeZoneId", _TimeZoneId);
request.AddParameter("VehicleTagging", model.VehicleTagging);
request.AddParameter("IsDeleted", model.IsDeleted);
return client.Execute(request).Data;
}
catch (Exception ex)
{
objLog.ErrorLogFile("UserInventoryRepository_GetUserModel", ex.Message, path, errorlogtf);
throw ex;
}
}
#endregion
}
}