public async Task <IActionResult> Complete([FromBody] DTOs.InviteCompletion completionRequest) { ActionResponse actionResponse = new ActionResponse() { State = false }; //check if inviation is active Mdls.Invite invite = await inviteRepository.Get(completionRequest.InvitationId); if (invite.InviteStatus == Mdls.InviteStatus.Pending) { string encryptedPassword = encryptionProvider.Encrypt(completionRequest.User.Password); string encryptionKey = encryptionProvider.EncryiptionKey; completionRequest.User.Password = encryptedPassword; completionRequest.User.EncryptionKey = encryptionKey; string userId = await userRepository.Add(completionRequest.User); #region Image if (completionRequest.User.Image != null && completionRequest.User.Image.StartsWith("data:image/png;base64,")) { string path = await amazonS3ImageProvider.Add($"users/{userId}/profile.png", completionRequest.User.Image); bool saved = await userRepository.UpdateImage(userId, path); } #endregion if (!String.IsNullOrEmpty(userId)) { bool updated = await inviteRepository.CompleteInvite(completionRequest.InvitationId); actionResponse.State = updated; } } else if (invite.InviteStatus == Mdls.InviteStatus.Completed) { return(BadRequest(new DTOs.Error(ErrorResponses.INVITE_COMPLETED_EXIST))); } return(Ok(actionResponse)); }