public async Task Reset_Password_Updates_Admin_Credentials()
        {
            // act

            await _service.ResetPasswordAsync(Login, Password, ResetPasswordIdentifier);

            // assert

            _adminCredentialsRepositoryMock.Verify(o => o.UpdateAsync(It.IsAny <AdminCredentials>()), Times.Once);
        }
        public async Task <PasswordResetErrorResponse> ResetPasswordAsync([FromBody] AdminPasswordResetRequest request)
        {
            try
            {
                await _adminCredentialsService.ResetPasswordAsync(request.Login, request.Password,
                                                                  request.ResetIdentifier);
            }
            catch (AdminCredentialsNotFoundException)
            {
                return(new PasswordResetErrorResponse {
                    Error = PasswordResetError.LoginDoesNotExist
                });
            }
            catch (IdentifierDoesNotExistException)
            {
                return(new PasswordResetErrorResponse {
                    Error = PasswordResetError.IdentifierDoesNotExist
                });
            }
            catch (IdentifierHasExpiredException)
            {
                return(new PasswordResetErrorResponse {
                    Error = PasswordResetError.ProvidedIdentifierHasExpired
                });
            }
            catch (IdentifierMismatchException)
            {
                return(new PasswordResetErrorResponse {
                    Error = PasswordResetError.IdentifierMismatch
                });
            }

            return(new PasswordResetErrorResponse {
                Error = PasswordResetError.None
            });
        }