コード例 #1
0
        /// <summary>
        ///     <inheritdoc />
        /// </summary>
        /// <param name="id"></param>
        /// <param name="model"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public virtual async Task <User> ChangeUserStatus(int id, ChangeUserStatusViewModel model,
                                                          CancellationToken cancellationToken = default(CancellationToken))
        {
            #region Find user

            var loadUserCondition = new SearchUserViewModel();
            loadUserCondition.Ids = new HashSet <int> {
                id
            };

            var user = await SearchUserAsync(loadUserCondition, cancellationToken);

            if (user == null)
            {
                throw new ApiException(HttpMessages.AccountIsNotFound, HttpStatusCode.NotFound);
            }

            #endregion

            #region Update user status

            // Whether information has been changed or not.
            var bHasInformationChanged = false;

            // Status has been defined.
            if (model.Status != user.Status)
            {
                if (model.Status == UserStatus.Pending)
                {
                    user.Status            = UserStatus.Disabled;
                    bHasInformationChanged = true;
                }
                else
                {
                    user.Status            = model.Status;
                    bHasInformationChanged = true;
                }
            }

            //todo: Reason

            // Information has been changed.
            if (!bHasInformationChanged)
            {
                throw new NotModifiedException();
            }

            #endregion

            await _unitOfWork.CommitAsync(cancellationToken);

            return(user);
        }
コード例 #2
0
        public async Task <IActionResult> CgangeStatus([FromBody] ChangeUserStatusViewModel changeUserStatusViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!await _authService.UserExists(changeUserStatusViewModel.UserName))
            {
                return(NotFound(string.Format(_errorLocalizer["UserNotExist"].Value, changeUserStatusViewModel.UserName)));
            }

            if (await _userService.ChangeStatusAsync(changeUserStatusViewModel))
            {
                return(Ok());
            }

            return(BadRequest(string.Format(_errorLocalizer["FailedRoleUpdate"].Value, changeUserStatusViewModel.UserName)));
        }
コード例 #3
0
        public async Task<ActionResult> ChangeUserStatus(ChangeUserStatusViewModel model)
        {
            await mediator.SendAsync(new UpdateInternalUserStatus(model.UserId, model.Status));

            return RedirectToAction("ChangeUserStatusSuccess", new { userId = model.UserId });
        }
コード例 #4
0
        public async Task <ActionResult> ChangeUserStatus(ChangeUserStatusViewModel model)
        {
            await mediator.SendAsync(new UpdateInternalUserStatus(model.UserId, model.Status));

            return(RedirectToAction("ChangeUserStatusSuccess", new { userId = model.UserId }));
        }
コード例 #5
0
 public async Task <bool> ChangeStatusAsync(ChangeUserStatusViewModel changeUserStatusViewModel)
 {
     return(await _userRepository.ChangeStatusAsync(changeUserStatusViewModel.UserName, changeUserStatusViewModel.NewStatus));
 }