public async Task <Result> ScheduleJobAsync(Job job) { var schedulingResult = await _scheduler.ScheduleJobAsync(job); var savingResult = await _storage.SaveJobAsync(job); return(Result.Combine(schedulingResult, savingResult) .OnFailure(async() => await UnscheduleJobAsync(job.Key)) .OnBoth(result => _logger.LogInformation($"Job {job.Key} was scheduled and saved successfully"))); }
public async Task CreateJob_KeyAlreadyExistsInSchedulerResult() { //Arrange var job = _jobMaker.CreateTestJob(); //Act await _scheduler.ScheduleJobAsync(job); var result = await _persistentScheduler.ScheduleJobAsync(job); //Assert Assert.True(result.Failure); Assert.Equal(SchedulerConsts.JobAlreadyScheduled, result.Error); }