예제 #1
0
        public async Task Update(AdminUserUpdateModel m, int modifier)
        {
            if (m == null)
            {
                throw new ArgumentNullException(nameof(m));
            }
            if (string.IsNullOrWhiteSpace(m.UserName))
            {
                throw new HopexException(_localizer["用户名不能为空"]);
            }

            var user = _adminUserRepository.Get(m.Id);

            if (user == null)
            {
                throw new HopexException(_localizer["用户不存在"]);
            }

            if ((await _adminUserRepository.CountAsync(x => x.UserName == m.UserName && x.IsValid && x.IsDeleted == false && x.Id != m.Id)) != 0)
            {
                throw new HopexException(_localizer["用户名已存在"]);
            }

            user.UserName         = m.UserName;
            user.IsAdmin          = m.IsAdmin;
            user.LastModifiedTime = DateTime.Now;
            user.LastModifier     = modifier;

            await _adminUserRepository.UpdateAsync(user);
        }
예제 #2
0
        public async Task <ActionResult> UpdateUser(AdminUserUpdateModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("UpdateUserModal", model));
            }

            var result = await AdminUserWriter.UpdateUser(model);

            if (!ModelState.IsWriterResultValid(result))
            {
                return(View("UpdateUserModal", model));
            }

            return(CloseModalSuccess(result.Message));
        }
예제 #3
0
        public async Task <ActionResult> UpdateUser(AdminUserUpdateModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("UpdateUserModal", model));
            }

            var result = await AdminUserWriter.UpdateUser(model).ConfigureAwait(false);

            if (!ModelState.IsWriterResultValid(result))
            {
                return(View("UpdateUserModal", model));
            }

            await ChatHub.InvalidateUserCache(model.UserId);

            return(CloseModalSuccess(result.Message));
        }
예제 #4
0
        public async Task <IWriterResult> UpdateUser(AdminUserUpdateModel model)
        {
            using (var context = DataContextFactory.CreateContext())
            {
                var user = await context.Users.FirstOrDefaultNoLockAsync(x => x.Id == model.Id);

                if (user == null)
                {
                    return(new WriterResult(false, $"User '{model.UserName}' not found"));
                }

                user.UserName       = model.UserName;
                user.EmailConfirmed = model.EmailConfirmed;
                user.RoleCss        = model.RoleCss;
                user.ShareCount     = model.ShareCount;
                await context.SaveChangesAsync();

                model.UserId = user.Id;
                return(new WriterResult(true, "Successfully updated user."));
            }
        }