public IActionResult EditProductDescriptionFields(int subcategoryId, [FromQuery] int newFields) { var descFields = _subcategoryRepository.GetProductDescFieldsBySubcat(subcategoryId); PrepareNavData(subcategoryId, "CPanelProductDescriptionFields"); var vm = new ProductDescriptionFieldsViewModel { SubcategoryId = subcategoryId, Fields = descFields, CategoryName = _subcategoryRepository.GetSubcategoryById(subcategoryId).Name }; int i = 0; var maxOrderId = descFields.Max(df => df.DisplayOrderId); while (i < newFields) { vm.FieldsToAdd.Add(new ProductDescriptionField() { DisplayOrderId = (maxOrderId + 1 + i) }); i++; } return(View(vm)); }
public IActionResult UpdateProductDescriptionFields(ProductDescriptionFieldsViewModel vm) { var subcat = _subcategoryRepository.GetSubcategoryById(vm.SubcategoryId); foreach (var field in vm.Fields) { var fieldInDb = _subcategoryRepository.GetProductDescFieldById(field.Id); fieldInDb.Name = field.Name; fieldInDb.DisplayOrderId = field.DisplayOrderId; fieldInDb.DisplayInItemPreview = field.DisplayInItemPreview; } foreach (var fieldToAdd in vm.FieldsToAdd) { if (!String.IsNullOrEmpty(fieldToAdd.Name) && !String.IsNullOrWhiteSpace(fieldToAdd.Name)) { var newField = new ProductDescriptionField { Name = fieldToAdd.Name, DisplayOrderId = fieldToAdd.DisplayOrderId, DisplayInItemPreview = fieldToAdd.DisplayInItemPreview, }; subcat.DescriptionFields.Add(fieldToAdd); } } _subcategoryRepository.SaveChanges(); return(RedirectToAction("EditProductDescriptionFields", "Subcategory", new { subcategoryId = vm.SubcategoryId })); }