public async Task <IActionResult> AcceptInvite(string email, Guid token) { if (email.IsNotEmail() || token.IsEmptyGuid()) { return(RedirectToAccessDenied()); } var request = new UserInviteValidateRequest(token, email); var response = await OrganizationService.ValidateUserInvitation(request); if (response.Status.IsNotSuccess) { return(RedirectToAccessDenied()); } var model = new InviteAcceptModel(); model.FirstName = response.Item.FirstName; model.LastName = response.Item.LastName; model.Token = token; model.Email = email; model.SetInputModelValues(); return(View(model)); }
public async Task <UserInviteValidateResponse> ValidateUserInvitation(UserInviteValidateRequest request) { var response = new UserInviteValidateResponse(); var user = await _userRepository.Select(x => x.InvitationToken == request.Token && x.Email == request.Email); if (user.IsExist() && 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); }