public async Task <IActionResult> OnGetAsync() { ViewData["HideNavigation"] = !signInManager.IsSignedIn(User); if (signInManager.IsSignedIn(User)) { Employee = await userManager.GetUserAsync(User).ConfigureAwait(false); Role = await roleManager.FindByIdAsync(Employee.RoleId.ToString()).ConfigureAwait(false); var companyResult = await companies.FetchCompany(Employee.CompanyId) .Ensure(c => c.HasValue, "Company found") .OnSuccess(c => c.Value) .ConfigureAwait(false); // We intentionally let this throw on failure as this is the index page, so we have nowhere safe to redirect to. Company = companyResult.Value; Feed = await feeds.GetFeed().ConfigureAwait(false); var averageOrderResult = await analytics.GetAverageOrderAmount(Company.CompanyId) .Ensure(r => r.HasValue, "Results found") .OnSuccess(r => r.Value) .ConfigureAwait(false); if (averageOrderResult.IsSuccess) { var data = new BarChartData { Labels = new List <string>(), Series = new List <List <double> > { new List <double>() } }; averageOrderResult.Value.ForEach(result => { data.Labels.Add(result.VenueId.ToString()); data.Series[0].Add((double)result.Average); }); AverageOrderPerVenue = JsonConvert.SerializeObject(data, jsonSerializerSettings); } var companyOrderStatuses = await analytics.GetCompanyOrderStatuses(Company.CompanyId) .Ensure(r => r.HasValue, "Results found") .OnSuccess(r => r.Value) .ConfigureAwait(false); if (companyOrderStatuses.IsSuccess) { var data = new BarChartDescriptiveData { Labels = new List <string>(), Series = new List <List <BarChartDesciptiveElem> >() }; for (var i = 0; i < 3; i++) { data.Series.Add(new List <BarChartDesciptiveElem>()); } companyOrderStatuses.Value.ForEach(result => { data.Labels.Add(result.VenueId.ToString()); data.Series[0].Add(new BarChartDesciptiveElem { Meta = "Incomplete", Value = result.Incomplete }); data.Series[1].Add(new BarChartDesciptiveElem { Meta = "Complete", Value = result.Complete }); data.Series[2].Add(new BarChartDesciptiveElem { Meta = "Failed", Value = result.Failed }); }); CompanyOrderStatuses = JsonConvert.SerializeObject(data, jsonSerializerSettings); } } return(Page()); }