using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Runtime.Serialization; using Newtonsoft.Json.Linq; using Umbraco.Core.Models; using Umbraco.Core.Models.Editors; using Umbraco.Core.Models.Validation; using Umbraco.Web.WebApi.Filters; using Umbraco.Core; namespace Umbraco.Web.Models.ContentEditing { /// public class MemberSave : ContentBaseSave { [DataMember(Name = "username", IsRequired = true)] [RequiredForPersistence(AllowEmptyStrings = false, ErrorMessage = "Required")] public string Username { get; set; } [DataMember(Name = "email", IsRequired = true)] [RequiredForPersistence(AllowEmptyStrings = false, ErrorMessage = "Required")] [EmailAddress] public string Email { get; set; } [DataMember(Name = "password")] public ChangingPasswordModel Password { get; set; } [DataMember(Name = "memberGroups")] public IEnumerable Groups { get; set; } /// /// Returns the value from the Comments property /// public string Comments => GetPropertyValue(Constants.Conventions.Member.Comments); /// /// Returns the value from the IsLockedOut property /// public bool IsLockedOut => GetPropertyValue(Constants.Conventions.Member.IsLockedOut); /// /// Returns the value from the IsApproved property /// public bool IsApproved => GetPropertyValue(Constants.Conventions.Member.IsApproved); private T GetPropertyValue(string alias) { var prop = Properties.FirstOrDefault(x => x.Alias == alias); if (prop == null) return default; var converted = prop.Value.TryConvertTo(); return converted.ResultOr(default); } } }