public NewlyRegisteredUser AddNewUserToGamingGroup(string applicationUserId, Guid gamingGroupInvitationId)
{
var userFromDatabase = dataContext.FindById<ApplicationUser>(applicationUserId);
ValidateApplicationUser(userFromDatabase, applicationUserId);
var invitation = dataContext.FindById<GamingGroupInvitation>(gamingGroupInvitationId);
ValidateInvitation(gamingGroupInvitationId, invitation);
AssociateUserWithNewGamingGroup(invitation.GamingGroupId, userFromDatabase);
UpdateGamingGroupInvitation(invitation, userFromDatabase);
var player = AssociatePlayerWithApplicationUser(invitation, userFromDatabase);
dataContext.CommitAllChanges();
var gamingGroup = dataContext.FindById<GamingGroup>(invitation.GamingGroupId);
return new NewlyRegisteredUser
{
GamingGroupId = gamingGroup.Id,
GamingGroupName = gamingGroup.Name,
PlayerId = player.Id,
PlayerName = player.Name,
UserId = applicationUserId
};
}