private static void AssertForecastDocument(WeatherForecastDocument forecast) { Assert.IsTrue(forecast.Items.Any(), "There should be any forecasts!"); var item = forecast.Items.First(); Assert.IsFalse(string.IsNullOrEmpty(item.Description), "Forecast item should have a description!"); Assert.IsFalse(string.IsNullOrEmpty(item.Icon), "Forecast item should have an icon!"); }
private static IEnumerable <ForecastDayViewModel> CreateDayViewModels(WeatherForecastDocument doc) { var groups = doc.Items.GroupBy(i => i.TimeUtc.ToLocalTime().Date).Select(x => x); foreach (var group in groups.Take(5)) { var items = group.Select(i => new ForecastDayItemViewModel(i)); yield return(new ForecastDayViewModel(group.Key, items)); } }
private void Publish(WeatherForecastDocument doc) { var days = CreateDayViewModels(doc); Days.Clear(); foreach (var d in days) { Days.Add(d); } }