private async Task <IList <IDateRangeBlockContext> > GetDateRangeBlocksAsync(ITaskExecutionContext taskExecutionContext) { using (var cs = taskExecutionContext.CreateCriticalSection()) { if (await cs.TryStartAsync()) { var startDate = await GetDateRangeStartDateAsync(taskExecutionContext); var endDate = DateTime.Now; return(await taskExecutionContext.GetDateRangeBlocksAsync(x => x.WithRange(startDate, endDate, TimeSpan.FromMinutes(30)))); } throw new Exception("Could not acquire a critical section, aborted task"); } }