private void ProcessBlock(IDateRangeBlockContext blockContext)
        {
            try
            {
                blockContext.Start();

                var journeys = _travelDataService.GetJourneys(blockContext.DateRangeBlock.StartDate, blockContext.DateRangeBlock.EndDate);
                var travelInsights = new List<TravelInsight>();

                foreach (var journey in journeys)
                {
                    var insight = new TravelInsight()
                    {
                        InsightDate = journey.TravelDate.Date,
                        InsightText = "Some useful insight",
                        PassengerName = journey.PassengerName
                    };

                    travelInsights.Add(insight);
                }

                _travelInsightsService.Add(travelInsights);

                int itemCountProcessed = travelInsights.Count;
                blockContext.Complete(itemCountProcessed);
            }
            catch (Exception ex)
            {
                blockContext.Failed(ex.ToString());
            }
        }
        private async Task ProcessBlockAsync(IDateRangeBlockContext blockContext)
        {
            try
            {
                await blockContext.StartAsync();

                var journeys = await _travelDataService.GetJourneysAsync(blockContext.DateRangeBlock.StartDate, blockContext.DateRangeBlock.EndDate);

                var travelInsights = new List <TravelInsight>();

                foreach (var journey in journeys)
                {
                    var insight = new TravelInsight()
                    {
                        InsightDate   = journey.TravelDate.Date,
                        InsightText   = "Some useful insight",
                        PassengerName = journey.PassengerName
                    };

                    travelInsights.Add(insight);
                }

                await _travelInsightsService.AddAsync(travelInsights);

                int itemCountProcessed = travelInsights.Count;
                await blockContext.CompleteAsync(itemCountProcessed);
            }
            catch (Exception ex)
            {
                await blockContext.FailedAsync(ex.ToString());
            }
        }