public async Task <User> UpdateAsync(User modifiedEntity, User originalEntity)
        {
            try
            {
                var userToUpdate = await userRepository.GetByConditionAsync(s => s.Nickname == originalEntity.Nickname).ConfigureAwait(false);

                await userValidator.ValidateUpdateAsync(modifiedEntity, userToUpdate).ConfigureAwait(false);

                userToUpdate.Nickname = modifiedEntity.Nickname;
                userToUpdate.Email    = modifiedEntity.Email;
                userToUpdate.Birthday = modifiedEntity.Birthday;
                userToUpdate.FullName = modifiedEntity.FullName;
                userToUpdate.Password = modifiedEntity.Password;

                userRepository.Update(userToUpdate);
                await userRepository.SaveChangesAsync().ConfigureAwait(false);

                return(modifiedEntity);
            }
            catch (Exception e)
            {
                throw new BusinessLogicException(e.Message);
            }
        }