BusinessLogic.Logic.Players.PlayerInviter.InvitePlayer C# (CSharp) Method

InvitePlayer() public method

public InvitePlayer ( PlayerInvitation playerInvitation, ApplicationUser currentUser ) : void
playerInvitation BusinessLogic.Models.Players.PlayerInvitation
currentUser ApplicationUser
return void
        public void InvitePlayer(PlayerInvitation playerInvitation, ApplicationUser currentUser)
        {
            GamingGroup gamingGroup = dataContext.FindById<GamingGroup>(currentUser.CurrentGamingGroupId);

            string existingUserId = (from ApplicationUser user in dataContext.GetQueryable<ApplicationUser>()
                                     where user.Email == playerInvitation.InvitedPlayerEmail
                                     select user.Id).FirstOrDefault();       
            
            GamingGroupInvitation gamingGroupInvitation = new GamingGroupInvitation
            {
                DateSent = DateTime.UtcNow,
                GamingGroupId = currentUser.CurrentGamingGroupId,
                InviteeEmail = playerInvitation.InvitedPlayerEmail,
                InvitingUserId = currentUser.Id,
                PlayerId = playerInvitation.InvitedPlayerId,
                RegisteredUserId = existingUserId
            };

            GamingGroupInvitation savedGamingGroupInvitation = dataContext.Save<GamingGroupInvitation>(gamingGroupInvitation, currentUser);
            //commit so we can get the Id back
            dataContext.CommitAllChanges();

            string urlRoot = configurationManager.AppSettings[APP_SETTING_URL_ROOT];

            string messageBody = string.Format(PlayerInviter.EMAIL_MESSAGE_INVITE_PLAYER,
                                                currentUser.UserName,
                                                gamingGroup.Name,
                                                urlRoot,
                                                playerInvitation.CustomEmailMessage,
                                                savedGamingGroupInvitation.Id,
                                                "<br/><br/>");
            var message = new IdentityMessage
            {
                Body = messageBody,
                Destination = playerInvitation.InvitedPlayerEmail,
                Subject = playerInvitation.EmailSubject
            };
            
            emailService.SendAsync(message);
        }
    }