/// <summary> /// Prepare user attribute value model /// </summary> /// <param name="model">User attribute value model</param> /// <param name="userAttribute">User attribute</param> /// <param name="userAttributeValue">User attribute value</param> /// <param name="excludeProperties">Whether to exclude populating of some properties of model</param> /// <returns>User attribute value model</returns> public virtual UserAttributeValueModel PrepareUserAttributeValueModel(UserAttributeValueModel model, UserAttribute userAttribute, UserAttributeValue userAttributeValue, bool excludeProperties = false) { if (userAttribute == null) { throw new ArgumentNullException(nameof(userAttribute)); } Action <UserAttributeValueLocalizedModel, int> localizedModelConfiguration = null; if (userAttributeValue != null) { //fill in model values from the entity model = model ?? userAttributeValue.ToModel <UserAttributeValueModel>(); //define localized model configuration action localizedModelConfiguration = (locale, languageId) => { locale.Name = _localizationService.GetLocalized(userAttributeValue, entity => entity.Name, languageId, false, false); }; } model.UserAttributeId = userAttribute.Id; //prepare localized models if (!excludeProperties) { model.Locales = _localizedModelFactory.PrepareLocalizedModels(localizedModelConfiguration); } return(model); }
public virtual IActionResult ValueEditPopup(UserAttributeValueModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings)) { return(AccessDeniedView()); } //try to get a user attribute value with the specified id var userAttributeValue = _userAttributeService.GetUserAttributeValueById(model.Id); if (userAttributeValue == null) { return(RedirectToAction("List")); } //try to get a user attribute with the specified id var userAttribute = _userAttributeService.GetUserAttributeById(userAttributeValue.UserAttributeId); if (userAttribute == null) { return(RedirectToAction("List")); } if (ModelState.IsValid) { userAttributeValue = model.ToEntity(userAttributeValue); _userAttributeService.UpdateUserAttributeValue(userAttributeValue); //activity log _userActivityService.InsertActivity("EditUserAttributeValue", string.Format(_localizationService.GetResource("ActivityLog.EditUserAttributeValue"), userAttributeValue.Id), userAttributeValue); UpdateValueLocales(userAttributeValue, model); ViewBag.RefreshPage = true; return(View(model)); } //prepare model model = _userAttributeModelFactory.PrepareUserAttributeValueModel(model, userAttribute, userAttributeValue, true); //if we got this far, something failed, redisplay form return(View(model)); }
/// <summary> /// Prepare the custom user attribute models /// </summary> /// <param name="user">User</param> /// <param name="overrideAttributesXml">Overridden user attributes in XML format; pass null to use CustomUserAttributes of user</param> /// <returns>List of the user attribute model</returns> public virtual IList <UserAttributeModel> PrepareCustomUserAttributes(User user, string overrideAttributesXml = "") { if (user == null) { throw new ArgumentNullException(nameof(user)); } var result = new List <UserAttributeModel>(); var userAttributes = _userAttributeService.GetAllUserAttributes(); foreach (var attribute in userAttributes) { var attributeModel = new UserAttributeModel { Id = attribute.Id, Name = _localizationService.GetLocalized(attribute, x => x.Name), IsRequired = attribute.IsRequired, }; if (attribute.ShouldHaveValues()) { //values var attributeValues = _userAttributeService.GetUserAttributeValues(attribute.Id); foreach (var attributeValue in attributeValues) { var valueModel = new UserAttributeValueModel { Id = attributeValue.Id, Name = _localizationService.GetLocalized(attributeValue, x => x.Name), IsPreSelected = attributeValue.IsPreSelected }; attributeModel.Values.Add(valueModel); } } //set already selected attributes var selectedAttributesXml = !string.IsNullOrEmpty(overrideAttributesXml) ? overrideAttributesXml : _genericAttributeService.GetAttribute <string>(user, NopUserDefaults.CustomUserAttributes); result.Add(attributeModel); } return(result); }
protected virtual void UpdateValueLocales(UserAttributeValue userAttributeValue, UserAttributeValueModel model) { foreach (var localized in model.Locales) { _localizedEntityService.SaveLocalizedValue(userAttributeValue, x => x.Name, localized.Name, localized.LanguageId); } }