public Product Create(ProductIM im) { var newProduct = new Product { ProductName = im.ProductName, ProductNo = im.ProductNo, Thumbnail = im.Thumbnail, Cover = im.Cover, Recommend = im.Recommend, Active = im.Active, Body = im.Body, Description = im.Summary, ImageUrl = im.ImageUrl, Importance = im.Importance }; if (im.PostCategoryIds != null) { var lCategories = (from c in _unitOfWork.ProductCategoryRepository.GetAll() where im.PostCategoryIds.Contains(c.Id.ToString()) select c).ToList(); newProduct.Categories = lCategories; } return(_unitOfWork.ProductRepository.Insert(newProduct)); }
public bool Update(ProductIM im) { var editProduct = _unitOfWork.ProductRepository.GetById(im.Id); editProduct.ProductName = im.ProductName; editProduct.ProductNo = im.ProductNo; editProduct.Thumbnail = im.Thumbnail; editProduct.Cover = im.Cover; editProduct.Recommend = im.Recommend; editProduct.Active = im.Active; editProduct.Body = im.Body; editProduct.Description = im.Summary; editProduct.ImageUrl = im.ImageUrl; editProduct.Importance = im.Importance; editProduct.Categories.Clear(); if (im.PostCategoryIds != null) { var lCategories = (from c in _unitOfWork.ProductCategoryRepository.GetAll() where im.PostCategoryIds.Contains(c.Id.ToString()) select c).ToList(); editProduct.Categories = lCategories; } return(_unitOfWork.ProductRepository.Update(editProduct)); }
public async Task <ActionResult> Edit(int?id) { var im = new ProductIM() { Importance = 0, Active = true }; if (id != null) { var vProduct = await _db.Products.Include(d => d.ProductCategories).FirstOrDefaultAsync(d => d.Id == id); if (vProduct == null) { return(HttpNotFound()); } im = _mapper.Map <ProductIM>(vProduct); if (vProduct.ProductCategories.Any()) { im.PostCategoryIds = vProduct.ProductCategories.Select(c => c.Id.ToString()).ToArray(); } var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.PRODUCT && d.ObjectId == im.Id.ToString()); if (pageMeta != null) { im.Title = pageMeta.Title; im.Keywords = pageMeta.Keyword; im.SEODescription = pageMeta.Description; } } //var categoryList = _categoryRepository.GetActiveItems().OrderByDescending(c => c.Importance).ToList(); //var lCategories = new SelectList(categoryList, "Id", "Title"); //ViewBag.Categories = lCategories; var allCategory = _db.ProductCategories.OrderByDescending(c => c.Importance); var lCategories = allCategory.Where(d => d.ParentId > 0); foreach (var item in lCategories) { item.Parent = allCategory.FirstOrDefault(d => d.Id == item.ParentId); } // var catselectList = categoryList.Select(d => new CategorySelectList { Id = d.Id, Title = d.Title, ParentTitle = d.ParentCategory.Title }).ToList(); // 一级分类 ViewBag.Categories = new SelectList(allCategory, "Id", "Title", 0); // 二级分类 //ViewBag.Categories = new SelectList(lCategories, "Id", "Title", "ParentCategory.Title", 0); return(View(im)); }
// GET: Admin/Products/Edit/5 public async Task <IActionResult> Edit(int?id) { var vm = new ProductIM(); if (id == null) { vm.Active = true; } else { var article = await _context.Products.FindAsync(id); if (article == null) { return(NotFound()); } vm = _mapper.Map <ProductIM>(article); var pm = await _context.PageMetas.FirstOrDefaultAsync(d => d.ModuleType == (short)ModuleType.ARTICLE && d.ObjectId == vm.Id.ToString()); if (pm != null) { vm.SEOTitle = pm.Title; vm.SEOKeywords = pm.Keywords; vm.SEODescription = pm.Description; } } var categories = await _context.ProductCategories.OrderByDescending(d => d.Importance).ProjectTo <ProductCategoryBVM>(_mapper.ConfigurationProvider).ToListAsync(); var catelist = new List <ProductCategoryBVM>(); foreach (var item in categories.Where(d => d.ParentId == null)) { LoadCategories(catelist, item, 0, categories); } ViewData["Categories"] = new SelectList(catelist, "Id", "Title"); return(View(vm)); }
public async Task <IActionResult> Edit(ProductIM article) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR)); } try { var pm = new PageMeta { Title = article.SEOTitle, Description = article.SEODescription, Keywords = article.SEOKeywords, ModuleType = (short)ModuleType.ARTICLE }; if (article.Id > 0) { var model = await _context.Products.FirstOrDefaultAsync(d => d.Id == article.Id); if (model == null) { AR.Setfailure(Messages.HttpNotFound); return(Json(AR)); } model = _mapper.Map(article, model); model.UpdatedBy = User.Identity.Name; model.UpdatedDate = DateTime.Now; _context.Entry(model).State = EntityState.Modified; await _context.SaveChangesAsync(); AR.SetSuccess(string.Format(Messages.AlertUpdateSuccess, EntityNames.Product)); pm.ObjectId = model.Id.ToString(); } else { var model = _mapper.Map <Product>(article); model.CreatedBy = User.Identity.Name; model.CreatedDate = DateTime.Now; //model.Body = WebUtility.HtmlEncode(page.Body); _context.Add(model); await _context.SaveChangesAsync(); pm.ObjectId = model.Id.ToString(); AR.SetSuccess(string.Format(Messages.AlertCreateSuccess, EntityNames.Product)); } await CreatedUpdatedPageMetaAsync(_context, pm); return(Json(AR)); } catch (DbUpdateConcurrencyException) { if (!ProductExists(article.Id)) { AR.Setfailure(Messages.HttpNotFound); return(Json(AR)); } else { throw; } } }
public async Task <JsonResult> Edit(ProductIM vm) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR, JsonRequestBehavior.DenyGet)); } try { if (vm.Id > 0) { var product = await _db.Products.Include(d => d.ProductCategories).FirstOrDefaultAsync(d => d.Id == vm.Id); product = _mapper.Map(vm, product); product.ProductCategories.Clear(); if (vm.PostCategoryIds != null) { var lCategories = (from c in _db.ProductCategories where vm.PostCategoryIds.Contains(c.Id.ToString()) select c).ToList(); product.ProductCategories = lCategories; } _db.Entry(product).State = EntityState.Modified; await _db.SaveChangesAsync(); await SetPageMetaAsync(_db, (short)ModelType.PRODUCT, vm.Id.ToString(), vm.ProductName, vm.Title, vm.Keywords, vm.SEODescription); AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Product)); } else { var product = _mapper.Map <Product>(vm); if (vm.PostCategoryIds != null) { var lCategories = (from c in _db.ProductCategories where vm.PostCategoryIds.Contains(c.Id.ToString()) select c).ToList(); product.ProductCategories = lCategories; } _db.Products.Add(product); await _db.SaveChangesAsync(); await SetPageMetaAsync(_db, (short)ModelType.PRODUCT, product.Id.ToString(), vm.ProductName, vm.Title, vm.Keywords, vm.SEODescription); AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Product)); } } catch (Exception er) { AR.Setfailure(er.Message); } return(Json(AR, JsonRequestBehavior.DenyGet)); }