public ActionResult RemoveSpecificationTitleEdit(ProductTypeEditViewModel productType, int specificationTitleIndex) { productType.SpecificationTitles.RemoveAt(specificationTitleIndex); ModelState.Clear(); return(PartialView("_SpecificationTitlesEdit", productType)); }
public ServiceResult Edit(ProductTypeEditViewModel model, int Id) { var entity = _productType.Find(Id); Mapper.Map(model, entity); _productType.Update(entity); _Context.SaveChanges(); return(ServiceResult.Okay()); }
public IActionResult Edit(ProductTypeEditViewModel model, int Id) { var result = _productTypeRepository.Edit(model, Id); TempData.AddResult(result); if (model.ParentId.HasValue) { return(RedirectToAction(nameof(SubGroup), new { model.ParentId })); } return(RedirectToAction(nameof(Index))); }
public ActionResult GenerateSpecificationTitleEdit(ProductTypeEditViewModel productType) { var specificationTitle = new SpecificationTitle(); if (productType.SpecificationTitles == null) { productType.SpecificationTitles = new List <SpecificationTitle>(); } productType.SpecificationTitles.Add(specificationTitle); return(PartialView("_SpecificationTitlesEdit", productType)); }
public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var productTypeEditViewModel = await ProductTypeEditViewModel.GetViewModelByModelId(id); if (productTypeEditViewModel == null) { return(NotFound()); } return(View(productTypeEditViewModel)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Name,SpecificationTitles")] ProductTypeEditViewModel newProductTypeData) { if (id != newProductTypeData.Id) { return(NotFound()); } if (ModelState.IsValid) { try { // Удаляем из контекста уже не нужные SpecificationTitles var oldSpecificationTitlesId = db.ProductTypes.Include(pt => pt.SpecificationTitles).AsNoTracking() .FirstOrDefault(pt => pt.Id == newProductTypeData.Id) .SpecificationTitles.Select(i => i.Id); var newSpecificationTitlesId = newProductTypeData.SpecificationTitles.Select(i => i.Id); var remove = oldSpecificationTitlesId.Except(newSpecificationTitlesId); db.SpecificationTitles.RemoveRange(db.SpecificationTitles.Where(i => remove.Contains(i.Id))); // Старые данные объекта ProductType newProductType = newProductTypeData.GetModelByViewModel(); db.Update(newProductType); await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductTypeExists(newProductTypeData.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction("List")); } return(View(newProductTypeData)); }