public async Task <UserResponse> Add(UserRequest userRequest)
        {
            if (userRequest == null)
            {
                AddError(ErrorMessageUserRegisterService.InvalidRequest);
                return(null);
            }

            var role = await _roleRepository.FindById(userRequest.RoleId);

            if (role is null)
            {
                AddError(ErrorMessageUserRegisterService.InvalidRoleId);
                return(null);
            }

            var user = User.Create(userRequest, role);

            if (!user.IsValid)
            {
                AddErrors(user.Error);
                return(null);
            }

            _userRegisterRepository.Add(user);
            return(await Task.FromResult(_mapper.Map <User, UserResponse>(user)));
        }