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()); }
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 }; }