public bool IsDuplicateSRStatus(ProductSREntity product) { bool result = false; foreach (int statusId in product.ToSRStatusIds) { var cntStatus = _context.TB_C_SR_STATUS_CHANGE.Where( x => x.PRODUCTGROUP_ID == product.ProductGroupId && x.PRODUCT_ID == product.ProductId && x.CAMPAIGNSERVICE_ID == product.CampaignId && x.TYPE_ID == product.TypeId && x.AREA_ID == product.AreaId && x.SUBAREA_ID == product.SubAreaId && x.FROM_SR_STATUS_ID == product.FromSRStatusId && x.TO_SR_STATUS_ID == statusId).Count(); result = cntStatus > 0; if (result == true) { break; } } return(result); }
public bool SaveSRStatus(ProductSREntity productEntity) { _productDataAccess = new ProductDataAccess(_context); return(_productDataAccess.SaveSRStatus(productEntity)); }
public bool IsDuplicateSRStatus(ProductSREntity product) { _productDataAccess = new ProductDataAccess(_context); return(_productDataAccess.IsDuplicateSRStatus(product)); }
public ActionResult Edit(ProductViewModel productVM) { Logger.Info(_logMsg.Clear().SetPrefixMsg("Save SR Status").Add("ProductGroupId", productVM.ProductGroupId) .Add("ProductId", productVM.ProductId).Add("CampaignId", productVM.CampaignId) .Add("TypeId", productVM.TypeId).Add("AreaId", productVM.AreaId).Add("SubAreaId", productVM.SubAreaId) .Add("FromSRStatusId", productVM.FromSRStatusId).Add("ToSRStatusId", productVM.ToSRStatusLeftId)); try { if (ModelState.IsValid) { ProductSREntity product = new ProductSREntity { ProductGroupId = productVM.ProductGroupId, ProductId = productVM.ProductId, CampaignId = productVM.CampaignId, TypeId = productVM.TypeId, AreaId = productVM.AreaId, SubAreaId = productVM.SubAreaId, FromSRStatusId = productVM.FromSRStatusId, ToSRStatusIds = productVM.ToSRStatusRightId, IsEdit = productVM.IsEdit, CreateUser = UserInfo, UpdateUser = UserInfo }; _productFacade = new ProductFacade(); #region "Check Duplicate" if (productVM.IsEdit == false) { if (_productFacade.IsDuplicateSRStatus(product) == true) { ViewBag.ErrorMessage = Resource.Error_SaveFailedDuplicate; goto Outer; } } #endregion bool success = _productFacade.SaveSRStatus(product); if (success) { return(RedirectToAction("Search", "Product")); } ViewBag.ErrorMessage = Resource.Error_SaveFailed; } Outer: TempData["productVM"] = productVM; return(InitEdit()); } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); Logger.Info(_logMsg.Clear().SetPrefixMsg("Save SR Status").ToFailLogString()); return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(), this.ControllerContext.RouteData.Values["action"].ToString()))); } }
public ActionResult InitEdit(string jsonData = "{}") { ProductViewModel productVM = null; _commPoolFacade = new CommPoolFacade(); var toRTStatuses = new Dictionary <string, string>(); var fromStatuses = _commPoolFacade.GetSRStatusSelectList(); var toLFStatuses = new Dictionary <string, string>(fromStatuses); ProductSearchFilter searchFilter = JsonConvert.DeserializeObject <ProductSearchFilter>(jsonData); if (TempData["productVM"] != null) { productVM = (ProductViewModel)TempData["productVM"]; if (productVM.ToSRStatusRightId != null && productVM.ToSRStatusRightId.Count > 0) { foreach (var s in productVM.ToSRStatusRightId) { var statusId = s.ConvertToString(); var statusName = toLFStatuses[statusId]; toLFStatuses.RemoveByValue(statusId); toRTStatuses.Add(statusId, statusName); } } } else { productVM = new ProductViewModel(searchFilter); if (searchFilter != null) { _productFacade = new ProductFacade(); ProductSREntity product = _productFacade.GetProduct(searchFilter); if (product != null) { productVM.FromSRStatusId = product.FromSRStatusId; productVM.ProductGroupId = product.ProductGroupId; productVM.ProductGroupName = product.ProductGroupName; productVM.ProductId = product.ProductId; productVM.ProductName = product.ProductName; productVM.CampaignId = product.CampaignId; productVM.CampaignName = product.CampaignName; productVM.TypeId = product.TypeId; productVM.TypeName = product.TypeName; productVM.AreaId = product.AreaId; productVM.AreaName = product.AreaName; productVM.SubAreaId = product.SubAreaId; productVM.SubAreaName = product.SubAreaName; productVM.IsEdit = product.IsEdit; productVM.CreateUser = product.CreateUser != null ? product.CreateUser.FullName : ""; productVM.CreatedDate = product.CreatedDate.FormatDateTime(Constants.DateTimeFormat.DefaultFullDateTime); productVM.UpdateDate = product.Updatedate.FormatDateTime(Constants.DateTimeFormat.DefaultFullDateTime); productVM.UpdateUser = product.UpdateUser != null ? product.UpdateUser.FullName : ""; toRTStatuses = product.ToSRStatusList.ToDictionary(x => x.SRStatusId.ConvertToString(), x => x.SRStatusName); productVM.ToSRStatusRightList = new MultiSelectList(toRTStatuses, "Key", "Value"); foreach (var s in toRTStatuses) { toLFStatuses.RemoveByValue(s.Key); } } } } productVM.FromStatusList = new SelectList((IEnumerable)fromStatuses, "Key", "Value", string.Empty); productVM.ToSRStatusLeftList = new MultiSelectList(toLFStatuses, "Key", "Value"); productVM.ToSRStatusRightList = new MultiSelectList(toRTStatuses, "Key", "Value"); if (productVM.IsEdit == false) { // default UserLogin if (this.UserInfo != null) { var today = DateTime.Now; productVM.CreateUser = this.UserInfo.FullName; productVM.CreatedDate = today.FormatDateTime(Constants.DateTimeFormat.DefaultFullDateTime); productVM.UpdateDate = today.FormatDateTime(Constants.DateTimeFormat.DefaultFullDateTime); productVM.UpdateUser = this.UserInfo.FullName; } } return(View("~/Views/Product/Edit.cshtml", productVM)); }
private void GetToSRStatusList(ProductSREntity product) { if (product != null) { var query = from cs in _context.TB_C_SR_STATUS_CHANGE join ts in _context.TB_C_SR_STATUS on cs.TO_SR_STATUS_ID equals ts.SR_STATUS_ID where cs.PRODUCTGROUP_ID == product.ProductGroupId && cs.PRODUCT_ID == product.ProductId && cs.CAMPAIGNSERVICE_ID == product.CampaignId && cs.TYPE_ID == product.TypeId && cs.AREA_ID == product.AreaId && cs.SUBAREA_ID == product.SubAreaId && cs.FROM_SR_STATUS_ID == product.FromSRStatusId select new SRStatusEntity { SRStatusId = ts.SR_STATUS_ID, SRStatusCode = ts.SR_STATUS_CODE, SRStatusName = ts.SR_STATUS_NAME }; product.ToSRStatusList = query.Any() ? query.ToList() : null; #region "Get UserCreate" // UserInfo var queryUserCreate = from cs in _context.TB_C_SR_STATUS_CHANGE join ts in _context.TB_C_SR_STATUS on cs.TO_SR_STATUS_ID equals ts.SR_STATUS_ID from ucs in _context.TB_R_USER.Where(o => o.USER_ID == cs.CREATE_USER).DefaultIfEmpty() from us in _context.TB_R_USER.Where(o => o.USER_ID == cs.UPDATE_USER).DefaultIfEmpty() where cs.PRODUCTGROUP_ID == product.ProductGroupId && cs.PRODUCT_ID == product.ProductId && cs.CAMPAIGNSERVICE_ID == product.CampaignId && cs.TYPE_ID == product.TypeId && cs.AREA_ID == product.AreaId && cs.SUBAREA_ID == product.SubAreaId && cs.FROM_SR_STATUS_ID == product.FromSRStatusId select new ProductSREntity { CreatedDate = cs.CREATE_DATE, Updatedate = cs.UPDATE_DATE, CreateUser = ucs != null ? new UserEntity { Firstname = ucs.FIRST_NAME, Lastname = ucs.LAST_NAME, PositionCode = ucs.POSITION_CODE } : null, UpdateUser = us != null ? new UserEntity { Firstname = us.FIRST_NAME, Lastname = us.LAST_NAME, PositionCode = us.POSITION_CODE } : null }; var userObj = queryUserCreate.Any() ? queryUserCreate.FirstOrDefault() : null; if (userObj != null) { product.CreatedDate = userObj.CreatedDate; product.Updatedate = userObj.Updatedate; product.CreateUser = userObj.CreateUser; product.UpdateUser = userObj.UpdateUser; } #endregion } }
public bool SaveSRStatus(ProductSREntity product) { try { var today = DateTime.Now; using (var transaction = _context.Database.BeginTransaction(IsolationLevel.ReadCommitted)) { _context.Configuration.AutoDetectChangesEnabled = false; try { if (product.IsEdit == true) { var statusChanges = _context.TB_C_SR_STATUS_CHANGE.Where( x => x.PRODUCTGROUP_ID == product.ProductGroupId && x.PRODUCT_ID == product.ProductId && x.CAMPAIGNSERVICE_ID == product.CampaignId && x.TYPE_ID == product.TypeId && x.AREA_ID == product.AreaId && x.SUBAREA_ID == product.SubAreaId && x.FROM_SR_STATUS_ID == product.FromSRStatusId); if (statusChanges.Any()) { _context.TB_C_SR_STATUS_CHANGE.RemoveRange(statusChanges); this.Save(); } } if (product.ToSRStatusIds != null && product.ToSRStatusIds.Count > 0) { foreach (int statusId in product.ToSRStatusIds) { var statusChange = new TB_C_SR_STATUS_CHANGE(); statusChange.PRODUCTGROUP_ID = product.ProductGroupId; statusChange.PRODUCT_ID = product.ProductId; statusChange.CAMPAIGNSERVICE_ID = product.CampaignId; statusChange.TYPE_ID = product.TypeId; statusChange.AREA_ID = product.AreaId; statusChange.SUBAREA_ID = product.SubAreaId; statusChange.FROM_SR_STATUS_ID = product.FromSRStatusId; statusChange.TO_SR_STATUS_ID = statusId; statusChange.CREATE_USER = product.CreateUser.UserId; statusChange.UPDATE_USER = product.UpdateUser.UserId; statusChange.CREATE_DATE = today; statusChange.UPDATE_DATE = today; _context.TB_C_SR_STATUS_CHANGE.Add(statusChange); } this.Save(); } transaction.Commit(); return(true); } catch (Exception ex) { transaction.Rollback(); Logger.Error("Exception occur:\n", ex); } finally { _context.Configuration.AutoDetectChangesEnabled = true; } } } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); } return(false); }