public ActionResult GenericAttributeUpdate(GenericAttributeModel model, GridCommand command) { if (!_services.Permissions.Authorize(StandardPermissionProvider.AccessAdminPanel)) return AccessDeniedView(); model.Key = model.Key.TrimSafe(); model.Value = model.Value.TrimSafe(); if (!ModelState.IsValid) { // display the first model error var modelStateErrorMessages = this.ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage); return Content(modelStateErrorMessages.FirstOrDefault()); } var storeId = _services.StoreContext.CurrentStore.Id; var attr = _genericAttributeService.GetAttributeById(model.Id); // if the key changed, ensure it isn't being used by another attribute if (!attr.Key.IsCaseInsensitiveEqual(model.Key)) { var attr2 = _genericAttributeService.GetAttributesForEntity(model.EntityId, model.EntityName) .Where(x => x.StoreId == storeId && x.Key.Equals(model.Key, StringComparison.InvariantCultureIgnoreCase)) .FirstOrDefault(); if (attr2 != null && attr2.Id != attr.Id) { return Content(string.Format(_localizationService.GetResource("Admin.Common.GenericAttributes.NameAlreadyExists"), model.Key)); } } attr.Key = model.Key; attr.Value = model.Value; _genericAttributeService.UpdateAttribute(attr); return GenericAttributesSelect(model.EntityName, model.EntityId, command); }
public ActionResult GenericAttributeAdd(GenericAttributeModel model, GridCommand command) { if (!_services.Permissions.Authorize(StandardPermissionProvider.AccessAdminPanel)) return AccessDeniedView(); model.Key = model.Key.TrimSafe(); model.Value = model.Value.TrimSafe(); if (!ModelState.IsValid) { // display the first model error var modelStateErrorMessages = this.ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage); return Content(modelStateErrorMessages.FirstOrDefault()); } var storeId = _services.StoreContext.CurrentStore.Id; var attr = _genericAttributeService.GetAttribute<string>(model.EntityName, model.EntityId, model.Key, storeId); if (attr == null) { var ga = new GenericAttribute { StoreId = storeId, KeyGroup = model.EntityName, EntityId = model.EntityId, Key = model.Key, Value = model.Value }; _genericAttributeService.InsertAttribute(ga); } else { return Content(string.Format(_localizationService.GetResource("Admin.Common.GenericAttributes.NameAlreadyExists"), model.Key)); } return GenericAttributesSelect(model.EntityName, model.EntityId, command); }