public IActionResult Index() { var m = new Dashboard() { AvailableWidgets = _widgetProvider.LoadWidgets(), SupportedStations = new Dictionary <System.Guid, IEnumerable <PublicStationData> >() }; foreach (var widget in m.AvailableWidgets) { if (User.Identity.IsAuthenticated) { m.SupportedStations.Add(widget.Guid, _widgetProvider.GetSupportedStations(widget).Select(s => s.ToPublicStationData())); } else { m.SupportedStations.Add(widget.Guid, _widgetProvider.GetSupportedPublicStations(widget).Select(s => s.ToPublicStationData())); } } if (User.Identity.IsAuthenticated) { using (var db = new WeatherDb()) { LoadDashboardFromDatabase(db, ref m); } } else { LoadDashboardFromSession(ref m); } return(View(m)); }