public async Task <object> Put(UpdateUserRole request)
        {
            var response = new BaseResponse();
            Expression <Func <User, bool> > keySelector = x => x.Id == request.Id;
            var entity = await _userService.GetById(keySelector : keySelector);

            // check isValid Role
            if (!base.IsUserValidRole(request.RoleId))
            {
                throw new MethodAccessException();
            }

            request.ToEntity(entity);
            var result = await _userService.Update(entity);

            response.Success    = true;
            response.Message    = "Update user success";
            response.StatusCode = (int)HttpStatusCode.OK;
            response.Results    = result.ConvertTo <UserDto>();
            return(response);
        }