public async Task <ActionResult> Edit(int?id) { if (id > 0) { var vProduct = await _db.SimpleProducts.FindAsync(id); if (vProduct == null) { return(HttpNotFound()); } var editProduct = _mapper.Map <SimpleProduct, SimpleProductIM>(vProduct); var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == ModelType.SIMPLEPRODUCT && d.ObjectId == editProduct.Id.ToString()); if (pageMeta != null) { editProduct.Title = pageMeta.Title; editProduct.Keywords = pageMeta.Keyword; editProduct.SEODescription = pageMeta.Description; } return(View(editProduct)); } else { var product = new SimpleProductIM { Active = true, Importance = 0 }; return(View(product)); } }
public async Task <JsonResult> Edit(SimpleProductIM vm) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR, JsonRequestBehavior.DenyGet)); } try { if (vm.Id > 0) { var editProduct = await _db.SimpleProducts.FindAsync(vm.Id); editProduct = _mapper.Map(vm, editProduct); _db.Entry(editProduct).State = EntityState.Modified; var result = await _db.SaveChangesAsync(); if (result > 0) { var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == ModelType.SIMPLEPRODUCT && d.ObjectId == editProduct.Id.ToString()); pageMeta = pageMeta ?? new PageMeta(); pageMeta.ObjectId = vm.Id.ToString(); pageMeta.Title = string.IsNullOrEmpty(vm.Title) ? vm.Title : vm.Title; pageMeta.Keyword = string.IsNullOrEmpty(vm.Keywords) ? vm.Title : vm.Keywords.Replace(',', ','); pageMeta.Description = vm.SEODescription; pageMeta.ModelType = ModelType.SIMPLEPRODUCT; if (pageMeta.Id > 0) { _db.Entry(pageMeta).State = EntityState.Modified; } else { _db.PageMetas.Add(pageMeta); } await _db.SaveChangesAsync(); AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Product)); } else { AR.Setfailure(String.Format(Messages.AlertUpdateFailure, EntityNames.Product)); } } else { var product = _mapper.Map <SimpleProductIM, SimpleProduct>(vm); _db.SimpleProducts.Add(product); var result = await _db.SaveChangesAsync(); if (result > 0) { var pageMeta = new PageMeta() { ObjectId = vm.Id.ToString(), Title = string.IsNullOrEmpty(vm.Title) ? $"{vm.ProductName}_{vm.ProductNo}" : vm.Title, Keyword = string.IsNullOrEmpty(vm.Keywords) ? vm.Title : vm.Keywords.Replace(',', ','), Description = vm.SEODescription, ModelType = ModelType.SIMPLEPRODUCT }; _db.PageMetas.Add(pageMeta); await _db.SaveChangesAsync(); AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.Product)); } else { AR.Setfailure(String.Format(Messages.AlertCreateFailure, EntityNames.Product)); } } } catch (Exception er) { AR.Setfailure(er.Message); } return(Json(AR, JsonRequestBehavior.DenyGet)); }