void LoadDashboardFromDatabase(WeatherDb db, ref Dashboard dashboard) { var selectedItems = new List <SelectedDashboardItem>(); var user = _userManager.GetUserAsync(User).Result; var dashboardItems = db.DashboardItem.Where(item => item.UserId.Equals(user.Id)); foreach (var dashboardItem in dashboardItems) { var widget = dashboard.AvailableWidgets.FirstOrDefault(w => w.Guid.Equals(new Guid(dashboardItem.WidgetId))); if (widget != null) { if (_widgetProvider.ValidateStationIds(widget, dashboardItem.Filters.Select(f => f.StationId))) { selectedItems.Add(SelectedDashboardItem.Build(dashboardItem, widget)); } } } dashboard.Items = selectedItems; }