public async Task <IActionResult> Register([FromBody] RegisterModel model)
        {
            var request = new RegisterUserOperationRequest
            {
                InviteId  = model.InviteId,
                Password  = model.Password,
                ImageData = model.ImageData
            };

            try
            {
                var response = await _registerUserOperation.Execute(request);
            }
            catch (EmailAlreadyUseException exception)
            {
                return(Conflict(new ErrorModel(exception.Message)));
            }
            catch (Exception exception)
            {
                return(BadRequest(new ErrorModel(exception.Message)));
            }

            return(Ok());
        }
        public async Task <RegisterUserOperationResponse> Execute(RegisterUserOperationRequest request)
        {
            var invitation = await _invitationRepository.GetWithInviterAsync(request.InviteId)
                             ?? throw new InvitationDoesNotExistException(request.InviteId);

            var response = await _createEmployeeOperation.Execute(new CreateEmployeeOperationRequest
            {
                Email        = invitation.InvitationTo,
                ManagerEmail = invitation.InvitationFrom.Email,
                FirstName    = invitation.FirstName,
                LastName     = invitation.LastName,
                Role         = invitation.Role,
                Password     = request.Password,
                ImageData    = request.ImageData
            });

            var deleteInvitationsRequest = new DeleteInvitationsForEmailOperationRequest
            {
                Email = invitation.InvitationTo
            };
            await _deleteInvitationsForEmailOperation.Execute(deleteInvitationsRequest);

            return(new RegisterUserOperationResponse());
        }