public IEnumerable <ICurrentConditions> GetCurrentConditions(Coordinates coordinates) { var result = new List <ICurrentConditions>(); foreach (var func in this.getForecast) { ICurrentConditions currentConditions = null; try { currentConditions = func(coordinates); } catch (Exception e) { this.notifyAboutError(e); } if (currentConditions == null) { continue; } result.Add(currentConditions); } if (result.Count > 1) { try { var aggregated = this.aggregate(result); if (aggregated != null) { result.Add(aggregated); } } catch (Exception e) { this.notifyAboutError(e); } } return(result); }
private static Func <Coordinates, ICurrentConditions> ToForecastSource(ICurrentConditions currentConditions) { return(new GetForecastMock().SetupForecast(currentConditions).Object); }