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