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 }));
        }