public Task <UserActivationUiModel> UpdateUserActivationΑsync(Guid userIdToBeActivated, Guid accountIdToActivateThisUser, AccountForActivationModification activationAccount) { var response = new UserActivationUiModel() { Message = "START_ACTIVATION" }; if (userIdToBeActivated == Guid.Empty || activationAccount?.ActivationKey == Guid.Empty) { response.Message = "ERROR_INVALID_ACTIVATION_MODEL"; return(Task.Run(() => response)); } try { var userToBeActivated = ThrowExceptionIfUserDoesNotExist(userIdToBeActivated, activationAccount.ActivationKey); ThrowExcIfUserCanNotBeUpdated(userToBeActivated); userToBeActivated.Activate(); userToBeActivated.InjectWithAudit(accountIdToActivateThisUser); Log.Debug( $"Activate User: {userIdToBeActivated}" + "--ActivateUser-- @NotComplete@ [ActivateUserProcessor]. " + "Message: Just Before MakeItPersistence"); MakeUserPersistent(userToBeActivated); Log.Debug( $"Activate User: {userIdToBeActivated}" + "--ActivateUser-- @Complete@ [ActivateUserProcessor]. " + "Message: Just After MakeItPersistence"); response = ThrowExcIfUserWasNotBeActivateAfterPersistent(userIdToBeActivated); response.Message = "SUCCESS_ACTIVATION"; } catch (InvalidUserException e) { response.Message = "ERROR_INVALID_USER_MODEL"; Log.Error( $"Activate User: {userIdToBeActivated}" + $"Error Message:{response.Message}" + "--ActivateUser-- @NotComplete@ [ActivateUserProcessor]. " + $"Broken rules: {e.BrokenRules}"); } catch (UserDoesNotExistException ex) { response.Message = "ERROR_USER_DOES_NOT_EXISTS"; Log.Error( $"Activate User: {userIdToBeActivated}" + $"Error Message:{response.Message}" + "--ActivateUser-- @fail@ [ActivateUserProcessor]. " + $"@innerfault:{ex?.Message} and {ex?.InnerException}"); } catch (UserDoesNotActivatedAfterMadePersistentException exx) { response.Message = "ERROR_USER_NOT_ACTIVATE_PERSISTENT"; Log.Error( $"Activate User: {userIdToBeActivated}" + $"Error Message:{response.Message}" + "--ActivateUser-- @fail@ [ActivateUserProcessor]." + $" @innerfault:{exx?.Message} and {exx?.InnerException}"); } catch (Exception exxx) { response.Message = "UNKNOWN_ERROR"; Log.Error( $"Activate User: {userIdToBeActivated}" + $"Error Message:{response.Message}" + $"--ActivateUser-- @fail@ [ActivateUserProcessor]. " + $"@innerfault:{exxx.Message} and {exxx.InnerException}"); } return(Task.Run(() => response)); }
public async Task <IActionResult> PutAccountActivateAsync(Guid userIdToBeActivated, [FromBody] AccountForActivationModification accountForActivation) { if (userIdToBeActivated == Guid.Empty || accountForActivation.ActivationKey == Guid.Empty) { return(BadRequest()); } var userAudit = await _inquiryUserProcessor.GetUserByLoginAsync(GetEmailFromClaims()); if (userAudit == null) { return(BadRequest(new { errorMessage = "USER_ACTION_NOT_EXISTS" })); } if (!userAudit.IsActivated) { return(BadRequest(new { errorMessage = "USER_ACTION_NOT_ALLOWED" })); } await _activateUserProcessor.UpdateUserActivationΑsync(userIdToBeActivated, userAudit.Id, accountForActivation); return(Ok(await _inquiryUserProcessor.GetUserByIdAsync(userIdToBeActivated))); }