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 } }