private static Dictionary <IAbstractDataSource, IEnumerable <ParameterTimeSeries> > GetSeriesBySourceDictionary( ForecastViewerRequest request, Dictionary <IAbstractDataSource, IEnumerable <Forecast> > loadedForecasts, string parameterType) { var result = new Dictionary <IAbstractDataSource, IEnumerable <ParameterTimeSeries> >(); try { result = (from source in request.Sources where source.Parameters.Contains(parameterType) let allSeries = from f in loadedForecasts[source] group f by GetForecastGroupingTime(f, request.GivenTime) into fByTime where IsSuitableDateTime(fByTime.Key, request.DateTime, request.TimeDeterminateness) select GetSeries(fByTime.ToList(), request.GivenTime, parameterType, fByTime.Key) select new { Key = source, Value = allSeries }).ToDictionary(item => item.Key, item => item.Value); } catch (Exception e) { OnSelectingFailed(e.Message); } return(result); }
public static Dictionary <string, PlotData> GetGroupedByParameterForecastPlots(ForecastViewerRequest request) { var result = new Dictionary <string, PlotData>(); var loadedForecasts = new Dictionary <IAbstractDataSource, IEnumerable <Forecast> >(); foreach (var source in request.Sources) { loadedForecasts.Add( source, ForecastsDatabase.Load( request.Station, source, GetValidTimeDates(request.DateTime, request.GivenTime, source))); } int plotsKey = GeneratePlotGroupKey(); foreach (var parameterType in request.ParameterTypes) { var sourceSeriesDict = GetSeriesBySourceDictionary(request, loadedForecasts, parameterType); result.Add(parameterType, new PlotData(plotsKey, parameterType, sourceSeriesDict)); } return(result); }