public void DefineMaps(IUmbracoMapper mapper) { mapper.Define <IUser, BackOfficeIdentityUser>( (source, context) => { var target = new BackOfficeIdentityUser(_globalSettings, source.Id, source.Groups); target.DisableChangeTracking(); return(target); }, (source, target, context) => { Map(source, target); target.ResetDirtyProperties(true); target.EnableChangeTracking(); }); mapper.Define <IMember, MemberIdentityUser>( (source, context) => { var target = new MemberIdentityUser(source.Id); target.DisableChangeTracking(); return(target); }, (source, target, context) => { Map(source, target); target.ResetDirtyProperties(true); target.EnableChangeTracking(); }); }
/// <summary> /// Used to construct a new instance without an identity /// </summary> /// <param name="email">This is allowed to be null (but would need to be filled in if trying to persist this instance)</param> public static BackOfficeIdentityUser CreateNew(GlobalSettings globalSettings, string?username, string email, string culture, string?name = null) { if (string.IsNullOrWhiteSpace(username)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(username)); } if (string.IsNullOrWhiteSpace(culture)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(culture)); } var user = new BackOfficeIdentityUser(globalSettings, Array.Empty <IReadOnlyUserGroup>()); user.DisableChangeTracking(); user.UserName = username; user.Email = email; user.Id = string.Empty; user.HasIdentity = false; user._culture = culture; user.Name = name; user.EnableChangeTracking(); return(user); }