public ActionResult Edit(int?id) { EditProduct editProduct; if (id.HasValue) { editProduct = Mapper.Map <EditProduct>(Products.GetByID(id.Value)); editProduct.Text = HttpUtility.HtmlDecode(editProduct.Text); editProduct.GroupUrlPerfix = Groups.GetByID(editProduct.GroupID.Value).UrlPerfix; editProduct.Groups = ProductGroups.GetByProductID(editProduct.ID).Select(item => item.GroupID).ToList(); editProduct.Images = ProductImages.GetByProductID(editProduct.ID); editProduct.Files = ProductFiles.GetByProductID(editProduct.ID); editProduct.Marks = ProductMarks.GetByProductID(editProduct.ID); editProduct.Points = ProductPoints.GetByProductID(editProduct.ID); editProduct.Keywords = ProductKeywords.GetByProductID(editProduct.ID); editProduct.Notes = ProductNotes.GetByProductID(editProduct.ID); editProduct.ProductPricesLinks = ProductPricesLinks.GetByProductID(editProduct.ID); editProduct.Supplies = ProductSupplies.GetByProductID(editProduct.ID); editProduct.Prices = ProductPrices.GetByProductID(editProduct.ID); editProduct.Varients = ProductVarients.GetByProductID(editProduct.ID); editProduct.Discounts = ProductDiscounts.GetAllByProductID(editProduct.ID); } else { editProduct = new EditProduct(); editProduct.userID = UserID; } return(View(editProduct)); }
private async Task LoadProductDiscountLookupAsync() { ProductDiscounts.Clear(); ProductDiscounts.Add(new NullLookupItem { DisplayMember = " - " }); var lookup = await _productDiscountLookupDataService.GetProductDiscountLookupAsync(); foreach (var lookupItem in lookup) { ProductDiscounts.Add(lookupItem); } }
public ActionResult Edit(int?id) { ProductDiscount productDiscount; if (id.HasValue) { productDiscount = ProductDiscounts.GetByID(id.Value); productDiscount.Price = (productDiscount.Price / (ExtensionMethods.IsRial ? 1 : 10)); } else { productDiscount = new ProductDiscount(); } if (productDiscount.ProductID.HasValue) { ViewBag.ProductDiscountProductID = true; } else { ViewBag.ProductDiscountProductID = false; } if (productDiscount.GroupID.HasValue) { ViewBag.ProductDiscountGroupID = true; } else { ViewBag.ProductDiscountGroupID = false; } if (productDiscount.RoleID != null) { ViewBag.ProductDiscountRoleID = true; } else { ViewBag.ProductDiscountRoleID = false; } return(View(productDiscount)); }
public JsonResult Delete(int id) { var jsonSuccessResult = new JsonSuccessResult(); try { ProductDiscounts.Delete(id); jsonSuccessResult.Success = true; } catch (Exception ex) { jsonSuccessResult.Errors = new string[] { ex.Message }; jsonSuccessResult.Success = false; } return(new JsonResult() { Data = jsonSuccessResult }); }
public JsonResult Get(int pageIndex, int pageSize, string pageOrder, string title, string fromDate, string toDate) { DateTime?sDate = null, eDate = null; if (fromDate != String.Empty) { sDate = Utilities.ToEnglishDate(fromDate).Date; } if (toDate != String.Empty) { eDate = Utilities.ToEnglishDate(toDate).Date; } var list = ProductDiscounts.Get(pageIndex, pageSize, pageOrder, title, sDate, eDate); foreach (var item in list) { if (item.ProductID.HasValue) { var product = Products.GetByID(item.ProductID.Value); item.ProductTitle = product.Title; } else { item.ProductTitle = "-"; } if (item.GroupID.HasValue) { var group = Groups.GetByID(item.GroupID.Value); item.GroupTitle = group.Title; } else { item.GroupTitle = "-"; } if (item.RoleID != null) { var role = IdentityDbContext.Entity.Roles.Where(r => r.Id == item.RoleID).Single(); item.RoleTitle = role.Name; } else { item.RoleTitle = "-"; } } int total = ProductDiscounts.Count(title, sDate, eDate); int totalPage = (int)Math.Ceiling((decimal)total / pageSize); if (pageSize > total) { pageSize = total; } if (list.Count < pageSize) { pageSize = list.Count; } JsonResult result = new JsonResult() { Data = new { TotalPages = totalPage, PageIndex = pageIndex, PageSize = pageSize, Rows = list }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; return(result); }
public ActionResult Edit(ProductDiscount productDiscount, string discountStatus) { try { ViewBag.ProductDiscountProductID = ViewBag.ProductDiscountGroupID = ViewBag.ProductDiscountRoleID = false; switch (discountStatus) { case "0": ViewBag.ProductDiscountProductID = true; //productDiscount.ProductID = null; productDiscount.GroupID = null; productDiscount.RoleID = null; break; case "1": ViewBag.ProductDiscountGroupID = true; productDiscount.ProductID = null; //productDiscount.GroupID = null; productDiscount.RoleID = null; break; case "2": ViewBag.ProductDiscountRoleID = true; productDiscount.ProductID = null; productDiscount.GroupID = null; //productDiscount.RoleID = null; break; default: break; } switch (productDiscount.DiscountType) { case DiscountType.Percent: productDiscount.Price = 0; break; case DiscountType.PriceAfter: productDiscount.Price = (productDiscount.Price * (ExtensionMethods.IsRial ? 1 : 10)); productDiscount.Percent = 0; break; case DiscountType.PriceBefore: productDiscount.Price = (productDiscount.Price * (ExtensionMethods.IsRial ? 1 : 10)); productDiscount.Percent = 0; break; default: break; } productDiscount.LastUpdate = DateTime.Now; ViewBag.Success = true; var id = productDiscount.ID; if (productDiscount.ID == -1) { ProductDiscounts.Insert(productDiscount); UserNotifications.Send(UserID, String.Format("جدید - تخفیف محصول '{0}'", productDiscount.Percent), "/Admin/ProductDiscounts/Edit/" + productDiscount.ID, NotificationType.Success); } else { ProductDiscounts.Update(productDiscount); } productDiscount.Price = (productDiscount.Price / (ExtensionMethods.IsRial ? 1 : 10)); #region Set Task var taskText = String.Format("تخفیف \"{0}\" در حال اتمام است.", productDiscount.Title, productDiscount.PersianEndDate); var taskDate = productDiscount.EndDate.AddDays(-1); UserTasks.SetTask("اتمام مهلت تخفیف", taskText, StaticValues.AdminID, "ProductDiscounts_" + productDiscount.ID, "/Admin/ProductDiscounts/Edit/" + productDiscount.ID, taskDate); #endregion Set Task if (id == -1) { productDiscount = new ProductDiscount(); } } catch (Exception ex) { SetErrors(ex); } return(ClearView(productDiscount)); }
public async Task SaveToDbContextAsync(ApplicationDbContext context) { await semaphoreSlim.WaitAsync(); try { ProductsInfo currentDbState = new ProductsInfo(); await currentDbState.LoadFromDbContextAsync(context); WrappedProductsInfo wrappedProductsInfo = new WrappedProductsInfo(this); //LEFT TO ADD: Product, ProductDiscount, ProductAd, ProductImage, ProductAttributeValue, AttributeValue, Attribute, ProductProperty, ProductCategory, Category, CategoryCategory //ADDING IN THIS STEP: Product, Attribute, Categories //Add missing products foreach (var importProduct in Products) { Product dbProduct = currentDbState.Products.FirstOrDefault((p) => { return(p.Equals(importProduct)); }); if (dbProduct == null) { importProduct.Id = 0; context.Product.Add(importProduct); } } //Add missing attributes foreach (var importAttribute in Attributes) { Models.Attribute dbAttribute = currentDbState.Attributes.FirstOrDefault((a) => { return(a.Equals(importAttribute)); }); if (dbAttribute == null) { importAttribute.Id = 0; context.Attribute.Add(importAttribute); } } //Add missing categories foreach (var importCategory in Categories) { Category dbCategory = currentDbState.Categories.FirstOrDefault((c) => { return(c.Equals(importCategory)); }); if (dbCategory == null) { importCategory.Id = 0; context.Category.Add(importCategory); } } await context.SaveChangesAsync(); //Update every entity's ProductId value foreach (var updatedProduct in wrappedProductsInfo.Products) { ProductDiscounts.Where((x) => { return(x.ProductId == updatedProduct.Item1); }).All((x) => { x.ProductId = updatedProduct.Item2.Id; return(true); }); ProductAds.Where((x) => { return(x.ProductId == updatedProduct.Item1); }).All((x) => { x.ProductId = updatedProduct.Item2.Id; return(true); }); ProductImages.Where((x) => { return(x.ProductId == updatedProduct.Item1); }).All((x) => { x.ProductId = updatedProduct.Item2.Id; return(true); }); ProductAttributeValues.Where((x) => { return(x.ProductId == updatedProduct.Item1); }).All((x) => { x.ProductId = updatedProduct.Item2.Id; return(true); }); ProductProperties.Where((x) => { return(x.ProductId == updatedProduct.Item1); }).All((x) => { x.ProductId = updatedProduct.Item2.Id; return(true); }); ProductCategories.Where((x) => { return(x.ProductId == updatedProduct.Item1); }).All((x) => { x.ProductId = updatedProduct.Item2.Id; return(true); }); } //Update every entity's AttributeId values foreach (var updatedAttribute in wrappedProductsInfo.Attributes) { AttributeValues.Where((x) => { return(x.AttributeId == updatedAttribute.Item1); }).All((x) => { x.AttributeId = updatedAttribute.Item2.Id; return(true); }); } //Update every entity's CategoryId and ParentCategoryId values foreach (var updatedCategory in wrappedProductsInfo.Categories) { ProductCategories.Where((x) => { return(x.CategoryId == updatedCategory.Item1); }).All((x) => { x.CategoryId = updatedCategory.Item2.Id; return(true); }); CategoryCategories.Where((x) => { return(x.CategoryId == updatedCategory.Item1); }).All((x) => { x.CategoryId = updatedCategory.Item2.Id; return(true); }); CategoryCategories.Where((x) => { return(x.ParentCategoryId == updatedCategory.Item1); }).All((x) => { x.ParentCategoryId = updatedCategory.Item2.Id; return(true); }); } //LEFT TO ADD: ProductDiscount, ProductAd, ProductImage, ProductAttributeValue, AttributeValue, ProductProperty, ProductCategory, CategoryCategory //ADDING IN THIS STEP: ProductDiscount, ProductAd, ProductImage, AttributeValue, ProductProperty, CategoryCategory, ProductCategory //Add missing product discounts foreach (var importProductDiscount in ProductDiscounts) { ProductDiscount dbProductDiscount = currentDbState.ProductDiscounts.FirstOrDefault((pd) => { return(pd.Equals(importProductDiscount)); }); if (dbProductDiscount == null) { importProductDiscount.Id = 0; context.ProductDiscount.Add(importProductDiscount); } } //Add missing product ads foreach (var importProductAd in ProductAds) { ProductAd dbProductAd = currentDbState.ProductAds.FirstOrDefault((pa) => { return(pa.Equals(importProductAd)); }); if (dbProductAd == null) { importProductAd.Id = 0; context.ProductAd.Add(importProductAd); } } //Add missing product images foreach (var importProductImage in ProductImages) { ProductImage dbProductImage = currentDbState.ProductImages.FirstOrDefault((pi) => { return(pi.Equals(importProductImage)); }); if (dbProductImage == null) { importProductImage.Id = 0; context.ProductImage.Add(importProductImage); } } //Add missing product properties foreach (var importProductProperty in ProductProperties) { ProductProperty dbProductProperty = currentDbState.ProductProperties.FirstOrDefault((pp) => { return(pp.Equals(importProductProperty)); }); if (dbProductProperty == null) { importProductProperty.Id = 0; context.ProductProperty.Add(importProductProperty); } } //Add missing attribute values foreach (var importAttributeValue in AttributeValues) { AttributeValue dbAttributeValue = currentDbState.AttributeValues.FirstOrDefault((av) => { return(av.Equals(importAttributeValue)); }); if (dbAttributeValue == null) { importAttributeValue.Id = 0; context.AttributeValue.Add(importAttributeValue); } } //Add missing category categories foreach (var importCategoryCategory in CategoryCategories) { CategoryCategory dbCategoryCategory = currentDbState.CategoryCategories.FirstOrDefault((cc) => { return(cc.Equals(importCategoryCategory)); }); if (dbCategoryCategory == null) { importCategoryCategory.Id = 0; context.CategoryCategory.Add(importCategoryCategory); } } //Add missing product categories foreach (var importProductCategory in ProductCategories) { ProductCategory dbProductCategory = currentDbState.ProductCategories.FirstOrDefault((pc) => { return(pc.Equals(importProductCategory)); }); if (dbProductCategory == null) { importProductCategory.Id = 0; context.ProductCategory.Add(importProductCategory); } } await context.SaveChangesAsync(); //Update every entity's AttributeValueId foreach (var updatedAttributeValue in wrappedProductsInfo.AttributeValues) { ProductAttributeValues.Where((x) => { return(x.AttributeValueId == updatedAttributeValue.Item1); }).All((x) => { x.AttributeValueId = updatedAttributeValue.Item2.Id; return(true); }); } //LEFT TO ADD: ProductAttributeValue //ADDING IN THIS STEP: ProductAttributeValue //Add missing product attribute values foreach (var importProductAttributeValue in ProductAttributeValues) { ProductAttributeValue dbProductAttributeValue = currentDbState.ProductAttributeValues.FirstOrDefault((pav) => { return(pav.Equals(importProductAttributeValue)); }); if (dbProductAttributeValue == null) { importProductAttributeValue.Id = 0; context.ProductAttributeValue.Add(importProductAttributeValue); } } await context.SaveChangesAsync(); } finally { semaphoreSlim.Release(); } }