示例#1
0
        public virtual async Task <IActionResult> CreateSpecificationAttributeGroup(SpecificationAttributeGroupModel model, bool continueEditing)
        {
            if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageAttributes))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var specificationAttributeGroup = model.ToEntity <SpecificationAttributeGroup>();
                await _specificationAttributeService.InsertSpecificationAttributeGroupAsync(specificationAttributeGroup);
                await UpdateAttributeGroupLocalesAsync(specificationAttributeGroup, model);

                await _customerActivityService.InsertActivityAsync("AddNewSpecAttributeGroup",
                                                                   string.Format(await _localizationService.GetResourceAsync("ActivityLog.AddNewSpecAttributeGroup"), specificationAttributeGroup.Name), specificationAttributeGroup);

                _notificationService.SuccessNotification(await _localizationService.GetResourceAsync("Admin.Catalog.Attributes.SpecificationAttributes.SpecificationAttributeGroup.Added"));

                if (!continueEditing)
                {
                    return(RedirectToAction("List"));
                }

                return(RedirectToAction("EditSpecificationAttributeGroup", new { id = specificationAttributeGroup.Id }));
            }

            model = await _specificationAttributeModelFactory.PrepareSpecificationAttributeGroupModelAsync(model, null, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }
        public virtual IActionResult EditSpecificationAttributeGroup(SpecificationAttributeGroupModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageAttributes))
            {
                return(AccessDeniedView());
            }

            var specificationAttributeGroup = _specificationAttributeService.GetSpecificationAttributeGroupById(model.Id);

            if (specificationAttributeGroup == null)
            {
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                specificationAttributeGroup = model.ToEntity(specificationAttributeGroup);
                _specificationAttributeService.UpdateSpecificationAttributeGroup(specificationAttributeGroup);
                UpdateAttributeGroupLocales(specificationAttributeGroup, model);

                _customerActivityService.InsertActivity("EditSpecAttributeGroup",
                                                        string.Format(_localizationService.GetResource("ActivityLog.EditSpecAttributeGroup"), specificationAttributeGroup.Name), specificationAttributeGroup);

                _notificationService.SuccessNotification(_localizationService.GetResource("Admin.Catalog.Attributes.SpecificationAttributes.SpecificationAttributeGroup.Updated"));

                if (!continueEditing)
                {
                    return(RedirectToAction("List"));
                }

                return(RedirectToAction("EditSpecificationAttributeGroup", new { id = specificationAttributeGroup.Id }));
            }

            model = _specificationAttributeModelFactory.PrepareSpecificationAttributeGroupModel(model, specificationAttributeGroup, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }
示例#3
0
 /// <returns>A task that represents the asynchronous operation</returns>
 protected virtual async Task UpdateAttributeGroupLocalesAsync(SpecificationAttributeGroup specificationAttributeGroup, SpecificationAttributeGroupModel model)
 {
     foreach (var localized in model.Locales)
     {
         await _localizedEntityService.SaveLocalizedValueAsync(specificationAttributeGroup,
                                                               x => x.Name,
                                                               localized.Name,
                                                               localized.LanguageId);
     }
 }
        /// <summary>
        /// Prepare specification attribute group model
        /// </summary>
        /// <param name="model">Specification attribute group model</param>
        /// <param name="specificationAttributeGroup">Specification attribute group</param>
        /// <param name="excludeProperties">Whether to exclude populating of some properties of model</param>
        /// <returns>Specification attribute group model</returns>
        public virtual SpecificationAttributeGroupModel PrepareSpecificationAttributeGroupModel(SpecificationAttributeGroupModel model,
                                                                                                SpecificationAttributeGroup specificationAttributeGroup, bool excludeProperties = false)
        {
            Action <SpecificationAttributeGroupLocalizedModel, int> localizedModelConfiguration = null;

            if (specificationAttributeGroup != null)
            {
                //fill in model values from the entity
                model ??= specificationAttributeGroup.ToModel <SpecificationAttributeGroupModel>();

                //define localized model configuration action
                localizedModelConfiguration = (locale, languageId) =>
                {
                    locale.Name = _localizationService.GetLocalized(specificationAttributeGroup, entity => entity.Name, languageId, false, false);
                };
            }

            //prepare localized models
            if (!excludeProperties)
            {
                model.Locales = _localizedModelFactory.PrepareLocalizedModels(localizedModelConfiguration);
            }

            return(model);
        }
 protected virtual void UpdateAttributeGroupLocales(SpecificationAttributeGroup specificationAttributeGroup, SpecificationAttributeGroupModel model)
 {
     foreach (var localized in model.Locales)
     {
         _localizedEntityService.SaveLocalizedValue(specificationAttributeGroup,
                                                    x => x.Name,
                                                    localized.Name,
                                                    localized.LanguageId);
     }
 }