/// <summary>
        /// Update current user model
        /// </summary>
        /// <param name="model"></param>
        /// <returns>ApiResponse</returns>
        public async Task <UserDisplayModel> Update(UserUpdateModel model)
        {
            var user = await GetCurrentUser();

            if (user == null)
            {
                throw new MRException();
            }

            if (user.Status == UserStatus.Blocked)
            {
                throw new MRException(-1, "User blocked");
            }

            user.FirstName  = model.FirstName;
            user.LastName   = model.LastName;
            user.UpdateTime = DateTime.UtcNow;

            var updateResult = await _appUserRepository.Replace(user);

            if (updateResult == null)
            {
                throw new MRException();
            }

            user = await _appUserRepository.FindByIdAsync(user.Id, new System.Threading.CancellationToken());

            return(_mapper.Map <UserDisplayModel>(user));
        }