public async Task <JsonResult> Edit(ProductCategoryIM vm) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR, JsonRequestBehavior.DenyGet)); } try { if (vm.Id > 0) { var editCase = await _db.ProductCategories.FindAsync(vm.Id); editCase = _mapper.Map(vm, editCase); editCase.UpdatedDate = DateTime.Now; editCase.UpdatedBy = Site.CurrentUserName; _db.Entry(editCase).State = EntityState.Modified; await _db.SaveChangesAsync(); await SetPageMetaAsync(_db, (short)ModelType.CATEGORY, editCase.Id.ToString(), editCase.Title, vm.SEOTitle, vm.Keywords, vm.SEODescription); AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Category)); return(Json(AR, JsonRequestBehavior.DenyGet)); } else { var newCase = _mapper.Map <ProductCategoryIM, ProductCategory>(vm); newCase.CreatedDate = DateTime.Now; newCase.CreatedBy = Site.CurrentUserName; newCase = _db.ProductCategories.Add(newCase); var result = await _db.SaveChangesAsync(); if (result > 0) { await SetPageMetaAsync(_db, (short)ModelType.CATEGORY, newCase.Id.ToString(), newCase.Title, vm.SEOTitle, vm.Keywords, vm.SEODescription); } AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.Category)); return(Json(AR, JsonRequestBehavior.DenyGet)); } } catch (Exception er) { AR.Setfailure(er.Message); return(Json(AR, JsonRequestBehavior.DenyGet)); } }
public async Task <ActionResult> Edit(int?id) { GetParentCategories(null); if (id > 0) { var vCase = await _db.ProductCategories.FindAsync(id); if (vCase == null) { AR.Setfailure(Messages.HttpNotFound); return(Json(AR, JsonRequestBehavior.AllowGet)); } var editCase = _mapper.Map <ProductCategory, ProductCategoryIM>(vCase); var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.ARTICLECATEGORY && d.ObjectId == editCase.Id.ToString()); if (pageMeta != null) { editCase.SEOTitle = pageMeta.Title; editCase.Keywords = pageMeta.Keyword; editCase.SEODescription = pageMeta.Description; } return(View(editCase)); } else { var vm = new ProductCategoryIM { Active = true, Importance = 0 }; return(View(vm)); } }
// GET: Admin/ProductCategories/Edit/5 public async Task <IActionResult> Edit(int?id) { var vm = new ProductCategoryIM { Active = true, Importance = 0 }; var categories = await _context.ProductCategories.OrderByDescending(d => d.Importance).ProjectTo <ProductCategoryBVM>(_mapper.ConfigurationProvider).ToListAsync(); var catelist = new List <ProductCategoryBVM>(); var videos = await _context.Videos.AsNoTracking() .OrderByDescending(d => d.Importance).ThenByDescending(d => d.Id).ToListAsync(); ViewData["Videos"] = new SelectList(videos, "Id", "Title"); if (id == null) { foreach (var item in categories.Where(d => d.ParentId == null)) { if (item.Id != 0) { LoadCategories(catelist, item, 0, 0, categories); } } ViewData["Categories"] = new SelectList(catelist, "Id", "Title"); return(View(vm)); } else { var category = await _context.ProductCategories.FindAsync(id); if (category == null) { return(NotFound()); } var model = _mapper.Map <ProductCategoryIM>(category); var pm = await _context.PageMetas.FirstOrDefaultAsync(d => d.ModuleType == (short)ModuleType.CATEGORY && d.ObjectId == category.Alias); if (pm != null) { model.SEOTitle = pm.Title; model.SEOKeywords = pm.Keywords; model.SEODescription = pm.Description; } foreach (var item in categories.Where(d => d.ParentId == null)) { if (item.Id != category.Id) { LoadCategories(catelist, item, 0, category.Id, categories); } } ViewData["Categories"] = new SelectList(catelist, "Id", "Title"); return(View(model)); } }
public async Task <IActionResult> Edit([Bind("Id,Title,ParentId,Alias,Description,Importance,Active,VideoId,SEOTitle,SEOKeywords,SEODescription")] ProductCategoryIM im, int id = 0) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR)); } if (id == 0) { var model = _mapper.Map <ProductCategory>(im); model.CreatedBy = User.Identity.Name; model.CreatedDate = DateTime.Now; _context.Add(model); await _context.SaveChangesAsync(); // return RedirectToAction(nameof(Index)); AR.SetSuccess(string.Format(Messages.AlertCreateSuccess, EntityNames.ProductCategory)); return(Json(AR)); } if (id != im.Id) { AR.Setfailure("未发现此分类"); return(Json(AR)); } try { var model = await _context.ProductCategories.FindAsync(id); model = _mapper.Map(im, model); model.UpdatedBy = User.Identity.Name; model.UpdatedDate = DateTime.Now; _context.Update(model); await _context.SaveChangesAsync(); var pm = new PageMeta { Title = im.SEOTitle, Description = im.SEODescription, Keywords = im.SEOKeywords, ModuleType = (short)ModuleType.ARTICLECATEGORY, ObjectId = im.Alias }; await CreatedUpdatedPageMetaAsync(_context, pm); AR.SetSuccess(string.Format(Messages.AlertUpdateSuccess, EntityNames.ProductCategory)); return(Json(AR)); } catch (DbUpdateConcurrencyException) { if (!ProductCategoryExists(im.Id)) { AR.Setfailure("未发现此分类"); return(Json(AR)); } else { AR.Setfailure(string.Format(Messages.AlertUpdateFailure, EntityNames.ProductCategory)); return(Json(AR)); } } }