public JsonResult ProcessAddExpenseItemSettingRequest(RegExpenseItemSettingObj model) { try { #region Current User Session Check var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData(); if (userData.UserId < 1) { return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false })); } #endregion #region Model Validations if (model == null) { return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false })); } if (model.ClientId < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "client required " })); } if (model.ProductItemId < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Product Item required " })); } if (model.ProductId < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Product required " })); } if (model.ExpenseCategoryId < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "ExpenseCategory required " })); } if (model.ExpenseClassificationId < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Expense Classification required " })); } if (model.ExpenseItemId < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Expense Item required " })); } if (model.ExpenseTypeId < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Expense Type required " })); } if (model.PreferedVendorId < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Prefered Vendor required " })); } if (model.RequestFrequency < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Request Frequency required " })); } if (model.RequestFrequencyType < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Request Frequency Type required " })); } if (model.UnitPrice < 1) { return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Unit Price required " })); } #endregion #region Check if item Exist From Session var previousExpenseItemSettingList = (List <ExpenseItemSettingObj>)Session["_ExpenseItemSettingList_"]; if (previousExpenseItemSettingList != null) { if (previousExpenseItemSettingList.Count(x => x.ExpenseItemId == model.ExpenseItemId && x.ClientId == model.ClientId && x.ProductId == model.ProductId && x.ProductItemId == model.ProductItemId) > 0) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Expense Lookup Already Exist!" })); } } #endregion #region Build Request Object var requestObj = new RegExpenseItemSettingObj { ClientId = model.ClientId, ProductId = model.ProductId, AdminUserId = userData.UserId, RegisteredBy = userData.UserId, ProductItemId = model.ProductItemId, ExpenseCategoryId = model.ExpenseCategoryId, ExpenseClassificationId = model.ExpenseClassificationId, ExpenseItemId = model.ExpenseItemId, ExpenseTypeId = model.ExpenseTypeId, IsEnabled = true, PreferedVendorId = model.PreferedVendorId, RegularQuantity = model.RegularQuantity, RequestFrequency = model.RequestFrequency, RequestFrequencyType = model.RequestFrequencyType, Status = 1, UnitPrice = model.UnitPrice, }; #endregion #region Response And Validations var response = ExpenseItemSettingServices.AddExpenseItemSetting(requestObj, userData.Username); if (response?.Status == null) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" })); } if (!response.Status.IsSuccessful) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add nomination Source" : response.Status.Message.TechnicalMessage })); } var searchObj = new ExpenseItemSettingSearchObj { AdminUserId = userData.UserId, ExpenseItemSettingId = 0, Status = -2 }; var retVal = ExpenseItemSettingServices.LoadExpenseItemSettings(searchObj, userData.Username); if (retVal?.Status != null && retVal.ExpenseItemSettings != null) { var ExpenseItemSettings = retVal.ExpenseItemSettings.OrderBy(m => m.ExpenseItemSettingId).ToList(); Session["_ExpenseItemSettingList_"] = ExpenseItemSettings.Where(m => m.ClientId == model.ClientId && m.ProductId == model.ProductId).ToList(); } #endregion return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" })); } catch (Exception ex) { UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" })); } }