Exemple #1
0
        public async Task <SuspendUserResponse> SuspendUserAsync(SuspendUserRequest model,
                                                                 [FromServices] ICommandBus commandBus,
                                                                 CancellationToken token)
        {
            foreach (var id in model.Ids)
            {
                DateTimeOffset lockout;
                switch (model.SuspendTime)
                {
                case SuspendTime.Day:

                    lockout = DateTimeOffset.Now.AddSeconds(TimeConst.Day);
                    break;

                case SuspendTime.Week:
                    lockout = DateTimeOffset.Now.AddSeconds(TimeConst.Day * 7);
                    break;

                case SuspendTime.Undecided:
                    lockout = DateTimeOffset.MaxValue;
                    break;

                case null:
                    lockout = DateTimeOffset.MaxValue;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                var command = new SuspendUserCommand(id, lockout, model.Reason);
                await commandBus.DispatchAsync(command, token);
            }
            return(new SuspendUserResponse());
        }
Exemple #2
0
        public void Arrange()
        {
            _user = new User()
            {
                Id    = UserId,
                Email = "*****@*****.**"
            };

            _userRepository = new Mock <IUserRepository>();
            _userRepository.Setup(x => x.Suspend(It.Is <User>(u => u.Id == UserId))).Returns(Task.CompletedTask);
            _auditService = new Mock <IAuditService>();
            _logger       = new Mock <ILogger>();
            _handler      = new SuspendUserCommandHandler(_userRepository.Object, _auditService.Object);

            _command = new SuspendUserCommand
            {
                User = _user
            };
        }