public virtual UserStateMergePatchedDto ToUserStateMergePatchedDto(IUserStateMergePatched e) { var dto = new UserStateMergePatchedDto(); dto.StateEventId = new UserStateEventIdDtoWrapper(e.StateEventId); dto.CreatedAt = e.CreatedAt; dto.CreatedBy = e.CreatedBy; dto.CommandId = e.CommandId; dto.UserName = e.UserName; dto.AccessFailedCount = e.AccessFailedCount; dto.Email = e.Email; dto.EmailConfirmed = e.EmailConfirmed; dto.LockoutEnabled = e.LockoutEnabled; dto.LockoutEndDateUtc = e.LockoutEndDateUtc; dto.PasswordHash = e.PasswordHash; dto.PhoneNumber = e.PhoneNumber; dto.PhoneNumberConfirmed = e.PhoneNumberConfirmed; dto.TwoFactorEnabled = e.TwoFactorEnabled; dto.SecurityStamp = e.SecurityStamp; dto.Active = e.Active; dto.IsPropertyUserNameRemoved = e.IsPropertyUserNameRemoved; dto.IsPropertyAccessFailedCountRemoved = e.IsPropertyAccessFailedCountRemoved; dto.IsPropertyEmailRemoved = e.IsPropertyEmailRemoved; dto.IsPropertyEmailConfirmedRemoved = e.IsPropertyEmailConfirmedRemoved; dto.IsPropertyLockoutEnabledRemoved = e.IsPropertyLockoutEnabledRemoved; dto.IsPropertyLockoutEndDateUtcRemoved = e.IsPropertyLockoutEndDateUtcRemoved; dto.IsPropertyPasswordHashRemoved = e.IsPropertyPasswordHashRemoved; dto.IsPropertyPhoneNumberRemoved = e.IsPropertyPhoneNumberRemoved; dto.IsPropertyPhoneNumberConfirmedRemoved = e.IsPropertyPhoneNumberConfirmedRemoved; dto.IsPropertyTwoFactorEnabledRemoved = e.IsPropertyTwoFactorEnabledRemoved; dto.IsPropertySecurityStampRemoved = e.IsPropertySecurityStampRemoved; dto.IsPropertyActiveRemoved = e.IsPropertyActiveRemoved; var userRoleEvents = new List <UserRoleStateCreatedOrMergePatchedOrRemovedDto>(); foreach (var ee in e.UserRoleEvents) { UserRoleStateCreatedOrMergePatchedOrRemovedDto eeDto = UserRoleStateEventDtoConverter.ToUserRoleStateEventDto(ee); userRoleEvents.Add(eeDto); } dto.UserRoleEvents = userRoleEvents.ToArray(); var userClaimEvents = new List <UserClaimStateCreatedOrMergePatchedOrRemovedDto>(); foreach (var ee in e.UserClaimEvents) { UserClaimStateCreatedOrMergePatchedOrRemovedDto eeDto = UserClaimStateEventDtoConverter.ToUserClaimStateEventDto(ee); userClaimEvents.Add(eeDto); } dto.UserClaimEvents = userClaimEvents.ToArray(); var userPermissionEvents = new List <UserPermissionStateCreatedOrMergePatchedOrRemovedDto>(); foreach (var ee in e.UserPermissionEvents) { UserPermissionStateCreatedOrMergePatchedOrRemovedDto eeDto = UserPermissionStateEventDtoConverter.ToUserPermissionStateEventDto(ee); userPermissionEvents.Add(eeDto); } dto.UserPermissionEvents = userPermissionEvents.ToArray(); var userLoginEvents = new List <UserLoginStateCreatedOrMergePatchedOrRemovedDto>(); foreach (var ee in e.UserLoginEvents) { UserLoginStateCreatedOrMergePatchedOrRemovedDto eeDto = UserLoginStateEventDtoConverter.ToUserLoginStateEventDto(ee); userLoginEvents.Add(eeDto); } dto.UserLoginEvents = userLoginEvents.ToArray(); return(dto); }
public virtual void MergePatch(IMergePatchUser c) { IUserStateMergePatched e = Map(c); Apply(e); }
void IUserState.When(IUserStateMergePatched e) { throw new NotSupportedException(); }
protected virtual IUserStateMergePatched Map(IMergePatchUser c) { var stateEventId = new UserEventId(c.UserId, c.Version); IUserStateMergePatched e = NewUserStateMergePatched(stateEventId); e.UserName = c.UserName; e.AccessFailedCount = c.AccessFailedCount; e.Email = c.Email; e.EmailConfirmed = c.EmailConfirmed; e.LockoutEnabled = c.LockoutEnabled; e.LockoutEndDateUtc = c.LockoutEndDateUtc; e.PasswordHash = c.PasswordHash; e.PhoneNumber = c.PhoneNumber; e.PhoneNumberConfirmed = c.PhoneNumberConfirmed; e.TwoFactorEnabled = c.TwoFactorEnabled; e.SecurityStamp = c.SecurityStamp; e.Active = c.Active; e.IsPropertyUserNameRemoved = c.IsPropertyUserNameRemoved; e.IsPropertyAccessFailedCountRemoved = c.IsPropertyAccessFailedCountRemoved; e.IsPropertyEmailRemoved = c.IsPropertyEmailRemoved; e.IsPropertyEmailConfirmedRemoved = c.IsPropertyEmailConfirmedRemoved; e.IsPropertyLockoutEnabledRemoved = c.IsPropertyLockoutEnabledRemoved; e.IsPropertyLockoutEndDateUtcRemoved = c.IsPropertyLockoutEndDateUtcRemoved; e.IsPropertyPasswordHashRemoved = c.IsPropertyPasswordHashRemoved; e.IsPropertyPhoneNumberRemoved = c.IsPropertyPhoneNumberRemoved; e.IsPropertyPhoneNumberConfirmedRemoved = c.IsPropertyPhoneNumberConfirmedRemoved; e.IsPropertyTwoFactorEnabledRemoved = c.IsPropertyTwoFactorEnabledRemoved; e.IsPropertySecurityStampRemoved = c.IsPropertySecurityStampRemoved; e.IsPropertyActiveRemoved = c.IsPropertyActiveRemoved; e.CommandId = c.CommandId; e.CreatedBy = (string)c.RequesterId; e.CreatedAt = ApplicationContext.Current.TimestampService.Now <DateTime>(); var version = c.Version; foreach (IUserRoleCommand innerCommand in c.UserRoleCommands) { ThrowOnInconsistentCommands(c, innerCommand); IUserRoleEvent innerEvent = Map(innerCommand, c, version, _state); e.AddUserRoleEvent(innerEvent); } foreach (IUserClaimCommand innerCommand in c.UserClaimCommands) { ThrowOnInconsistentCommands(c, innerCommand); IUserClaimEvent innerEvent = Map(innerCommand, c, version, _state); e.AddUserClaimEvent(innerEvent); } foreach (IUserPermissionCommand innerCommand in c.UserPermissionCommands) { ThrowOnInconsistentCommands(c, innerCommand); IUserPermissionEvent innerEvent = Map(innerCommand, c, version, _state); e.AddUserPermissionEvent(innerEvent); } foreach (IUserLoginCommand innerCommand in c.UserLoginCommands) { ThrowOnInconsistentCommands(c, innerCommand); IUserLoginEvent innerEvent = Map(innerCommand, c, version, _state); e.AddUserLoginEvent(innerEvent); } return(e); }
public virtual void When(IUserStateMergePatched e) { ThrowOnWrongEvent(e); if (e.UserName == null) { if (e.IsPropertyUserNameRemoved) { this.UserName = default(string); } } else { this.UserName = e.UserName; } if (e.AccessFailedCount == null) { if (e.IsPropertyAccessFailedCountRemoved) { this.AccessFailedCount = default(int); } } else { this.AccessFailedCount = (e.AccessFailedCount != null && e.AccessFailedCount.HasValue) ? e.AccessFailedCount.Value : default(int); } if (e.Email == null) { if (e.IsPropertyEmailRemoved) { this.Email = default(string); } } else { this.Email = e.Email; } if (e.EmailConfirmed == null) { if (e.IsPropertyEmailConfirmedRemoved) { this.EmailConfirmed = default(bool); } } else { this.EmailConfirmed = (e.EmailConfirmed != null && e.EmailConfirmed.HasValue) ? e.EmailConfirmed.Value : default(bool); } if (e.LockoutEnabled == null) { if (e.IsPropertyLockoutEnabledRemoved) { this.LockoutEnabled = default(bool); } } else { this.LockoutEnabled = (e.LockoutEnabled != null && e.LockoutEnabled.HasValue) ? e.LockoutEnabled.Value : default(bool); } if (e.LockoutEndDateUtc == null) { if (e.IsPropertyLockoutEndDateUtcRemoved) { this.LockoutEndDateUtc = default(DateTime?); } } else { this.LockoutEndDateUtc = e.LockoutEndDateUtc; } if (e.PasswordHash == null) { if (e.IsPropertyPasswordHashRemoved) { this.PasswordHash = default(string); } } else { this.PasswordHash = e.PasswordHash; } if (e.PhoneNumber == null) { if (e.IsPropertyPhoneNumberRemoved) { this.PhoneNumber = default(string); } } else { this.PhoneNumber = e.PhoneNumber; } if (e.PhoneNumberConfirmed == null) { if (e.IsPropertyPhoneNumberConfirmedRemoved) { this.PhoneNumberConfirmed = default(bool); } } else { this.PhoneNumberConfirmed = (e.PhoneNumberConfirmed != null && e.PhoneNumberConfirmed.HasValue) ? e.PhoneNumberConfirmed.Value : default(bool); } if (e.TwoFactorEnabled == null) { if (e.IsPropertyTwoFactorEnabledRemoved) { this.TwoFactorEnabled = default(bool); } } else { this.TwoFactorEnabled = (e.TwoFactorEnabled != null && e.TwoFactorEnabled.HasValue) ? e.TwoFactorEnabled.Value : default(bool); } if (e.SecurityStamp == null) { if (e.IsPropertySecurityStampRemoved) { this.SecurityStamp = default(string); } } else { this.SecurityStamp = e.SecurityStamp; } if (e.Active == null) { if (e.IsPropertyActiveRemoved) { this.Active = default(bool); } } else { this.Active = (e.Active != null && e.Active.HasValue) ? e.Active.Value : default(bool); } this.UpdatedBy = e.CreatedBy; this.UpdatedAt = e.CreatedAt; foreach (IUserRoleStateEvent innerEvent in e.UserRoleEvents) { IUserRoleState innerState = this.UserRoles.Get(innerEvent.GlobalId.RoleId); innerState.Mutate(innerEvent); var removed = innerEvent as IUserRoleStateRemoved; if (removed != null) { this.UserRoles.Remove(innerState); } } foreach (IUserClaimStateEvent innerEvent in e.UserClaimEvents) { IUserClaimState innerState = this.UserClaims.Get(innerEvent.GlobalId.ClaimId); innerState.Mutate(innerEvent); var removed = innerEvent as IUserClaimStateRemoved; if (removed != null) { this.UserClaims.Remove(innerState); } } foreach (IUserPermissionStateEvent innerEvent in e.UserPermissionEvents) { IUserPermissionState innerState = this.UserPermissions.Get(innerEvent.GlobalId.PermissionId); innerState.Mutate(innerEvent); var removed = innerEvent as IUserPermissionStateRemoved; if (removed != null) { this.UserPermissions.Remove(innerState); } } foreach (IUserLoginStateEvent innerEvent in e.UserLoginEvents) { IUserLoginState innerState = this.UserLogins.Get(innerEvent.GlobalId.LoginKey); innerState.Mutate(innerEvent); var removed = innerEvent as IUserLoginStateRemoved; if (removed != null) { this.UserLogins.Remove(innerState); } } }