public async Task <IActionResult> AcceptInvite(Guid token, string email) { if (email.IsNotEmail() || token.IsEmptyGuid()) { return(RedirectToAccessDenied()); } var request = new AdminInviteValidateRequest(token, email); var response = await _adminService.ValidateSuperAdminUserInvitation(request); if (response.Status.IsNotSuccess) { return(RedirectToAccessDenied()); } var model = AdminMapper.MapAdminAcceptInviteModel(response.Item, token, email); return(View(model)); }
public async Task <AdminInviteValidateResponse> ValidateSuperAdminUserInvitation(AdminInviteValidateRequest request) { var response = new AdminInviteValidateResponse(); var user = await _userRepository.Select(x => x.InvitationToken == request.Token && x.Email == request.Email); if (user.IsNotExist()) { response.SetInvalidBecauseNotFound("user"); return(response); } if (await _organizationRepository.Any(x => x.Id == user.OrganizationId && !x.IsActive)) { response.SetInvalidBecauseNotFound("organization"); return(response); } if (user.InvitedAt.HasValue && user.InvitedAt.Value.AddDays(2) > DateTime.UtcNow) { response.Item.FirstName = user.FirstName; response.Item.LastName = user.LastName; response.Item.Email = user.Email; response.Status = ResponseStatus.Success; return(response); } response.SetFailed(); return(response); }
public static AdminInviteValidateRequest GetAdminInviteValidateRequest() { var request = new AdminInviteValidateRequest(UidOne, EmailOne); return(request); }