Exemplo n.º 1
0
        public async Task AcceptInvitationAsync(AcceptInviteViewModel acceptInviteViewModel, String acceptedUserId)
        {
            var invite = await _inviteUserRepo.GetInvitationAsync(acceptInviteViewModel.InviteId);

            invite.Accepted     = true;
            invite.Status       = Invitation.StatusTypes.Accepted;
            invite.DateAccepted = DateTime.Now.ToJSONString();
            await _inviteUserRepo.UpdateInvitationAsync(invite);

            var acceptedUser = await _appUserRepo.FindByIdAsync(acceptedUserId);

            var invitingUser = EntityHeader.Create(invite.InvitedById, invite.InvitedByName);
            var orgHeader    = EntityHeader.Create(invite.OrganizationId, invite.OrganizationName);

            await AddAccountToOrgAsync(acceptedUser.ToEntityHeader(), orgHeader, invitingUser);

            if (acceptedUser.CurrentOrganization == null || acceptedUser.CurrentOrganization.IsEmpty())
            {
                acceptedUser.CurrentOrganization = orgHeader;
            }

            acceptedUser.Organizations.Add(orgHeader);

            await _appUserRepo.UpdateAsync(acceptedUser);
        }
Exemplo n.º 2
0
        public async Task <InvokeResult> AcceptInvitationAsync(string inviteId, string acceptedUserId)
        {
            var invite = await _inviteUserRepo.GetInvitationAsync(inviteId);

            if (!invite.IsActive())
            {
                return(InvokeResult.FromErrors(Resources.UserAdminErrorCodes.AuthInviteNotActive.ToErrorMessage()));
            }

            invite.Accepted     = true;
            invite.Status       = Invitation.StatusTypes.Accepted;
            invite.DateAccepted = DateTime.UtcNow.ToJSONString();
            await _inviteUserRepo.UpdateInvitationAsync(invite);

            var acceptedUser = await _appUserRepo.FindByIdAsync(acceptedUserId);

            var invitingUser = EntityHeader.Create(invite.InvitedById, invite.InvitedByName);
            var orgHeader    = EntityHeader.Create(invite.OrganizationId, invite.OrganizationName);

            await LogEntityActionAsync(acceptedUserId, typeof(AppUser).Name, "Accepted Invitation to: " + invite.OrganizationName, orgHeader, acceptedUser.ToEntityHeader());
            await LogEntityActionAsync(invite.InvitedById, typeof(AppUser).Name, "Accepted Invitation to: " + invite.OrganizationName, orgHeader, acceptedUser.ToEntityHeader());
            await LogEntityActionAsync(invite.OrganizationId, typeof(AppUser).Name, $"User {acceptedUser.FirstName} {acceptedUser.LastName} accepted invitation to organization", orgHeader, acceptedUser.ToEntityHeader());

            var result = await AddUserToOrgAsync(acceptedUser.ToEntityHeader(), orgHeader, invitingUser);

            if (!result.Successful)
            {
                return(result);
            }

            if (acceptedUser.CurrentOrganization == null || acceptedUser.CurrentOrganization.IsEmpty())
            {
                acceptedUser.CurrentOrganization = orgHeader;
            }

            acceptedUser.Organizations.Add(orgHeader);

            await _appUserRepo.UpdateAsync(acceptedUser);

            return(InvokeResult.Success);
        }