示例#1
0
        public async Task UpdateUserAsync(NaheulbookExecutionContext executionContext, int userId, UpdateUserRequest request)
        {
            using (var uow = _unitOfWorkFactory.CreateUnitOfWork())
            {
                var user = await uow.Users.GetAsync(userId);

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

                _authorizationUtil.EnsureCanEditUser(executionContext, user);

                if (!string.IsNullOrEmpty(request.DisplayName))
                {
                    user.DisplayName = request.DisplayName;
                }
                if (request.ShowInSearchFor.HasValue)
                {
                    if (request.ShowInSearchFor.Value == 0)
                    {
                        user.ShowInSearchUntil = null;
                    }
                    else
                    {
                        user.ShowInSearchUntil = DateTime.UtcNow.AddSeconds(request.ShowInSearchFor.Value);
                    }
                }


                await uow.SaveChangesAsync();
            }
        }