private IEnumerable <Trendline> GetTrendlines(int assetId, int timeframeId, IEnumerable <TrendlineDto> dtos) { IEnumerable <Trendline> trendlines = dtos.Select(dto => Trendline.FromDto(dto)); IEnumerable <TrendRange> trendRanges = GetTrendRanges(assetId, timeframeId); Dictionary <int, ExtremumGroup> extremumGroupsMap = GetExtremumGroupsMap(assetId, timeframeId); Dictionary <int, Trendline> trendlinesMap = new Dictionary <int, Trendline>(); foreach (var trendline in trendlines) { ExtremumGroup baseEG; ExtremumGroup counterEG; extremumGroupsMap.TryGetValue(trendline.BaseExtremumGroupId, out baseEG); extremumGroupsMap.TryGetValue(trendline.CounterExtremumGroupId, out counterEG); trendline.BaseExtremumGroup = baseEG; trendline.CounterExtremumGroup = counterEG; trendlinesMap.Add(trendline.Id, trendline); } foreach (var trendRange in trendRanges) { Trendline trendline; trendlinesMap.TryGetValue(trendRange.TrendlineId, out trendline); if (trendline != null) { trendline.AddTrendRange(trendRange); } } return(trendlinesMap.Values); }
public Trendline GetTrendlineById(int id) { _repository = new EFTrendlineRepository(); var dto = _repository.GetTrendlineById(id); return(Trendline.FromDto(dto)); }