Пример #1
0
        public ActionResult RemoveSpecificationTitleEdit(ProductTypeEditViewModel productType,
                                                         int specificationTitleIndex)
        {
            productType.SpecificationTitles.RemoveAt(specificationTitleIndex);

            ModelState.Clear();
            return(PartialView("_SpecificationTitlesEdit", productType));
        }
Пример #2
0
        public ServiceResult Edit(ProductTypeEditViewModel model, int Id)
        {
            var entity = _productType.Find(Id);

            Mapper.Map(model, entity);

            _productType.Update(entity);
            _Context.SaveChanges();
            return(ServiceResult.Okay());
        }
Пример #3
0
        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)));
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        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));
        }