private void AssignRecentTrends()
        {
            if (GroupData.Areas != null)
            {
                var trendCalculator = new TrendMarkerCalculator();
                var trendReader = ReaderFactory.GetTrendDataReader();
                var trendMarkersProvider = new TrendMarkersProvider(trendReader, trendCalculator);

                var areas = GroupData.Areas.ToList();
                AddParentAreas(areas);

                var metadataCollection = new IndicatorMetadataCollection(GroupData.IndicatorMetadata);
                foreach (var groupRoot in GroupData.GroupRoots)
                {
                    var grouping = groupRoot.Grouping.FirstOrDefault();

                    var indicatorMetaData = metadataCollection.GetIndicatorMetadataById(groupRoot.IndicatorId);

                    var recentTrends = indicatorMetaData == null
                        ? new Dictionary<string, TrendMarkerResult>()
                        : trendMarkersProvider.GetTrendResults(areas, indicatorMetaData, grouping);

                    groupRoot.RecentTrends = recentTrends;
                }
            }
        }
 public void Init()
 {
     _trendMarkerCalculator = new TrendMarkerCalculator();
 }
 public TrendMarkersProvider(ITrendDataReader trendReader, TrendMarkerCalculator trendCalculator)
 {
     _trendReader = trendReader;
     _trendCalculator = trendCalculator;
 }