public UpdateStatusValidator(IStateService stateService) { RuleFor(u => u.Running).MustAsync(async (status, current, token) => await stateService.IsRunning() != current); RuleFor(u => u.Running).NotEqual(true) .WhenAsync(async (status, token) => !await stateService.CanStart()); }
public async Task <StatusVm> Handle(GetStatus request, CancellationToken cancellationToken) { var runningTask = _stateService.IsRunning(); var canStartTask = _stateService.CanStart(); await Task.WhenAll(runningTask, canStartTask); return(new StatusVm { Running = runningTask.Result, CanStart = canStartTask.Result }); }