public void GetHistory(IDataFeed dataFeed, Selection p, HistoryAnswerHandler callback) { if (p.From == DateTime.MinValue && p.BarCount < 1) //use bar count (and end date if specified) { callback(p, new List <Bar>()); return; } var cached = GetFromtCache(p); if (cached.Count > 0 && p.IsEnoughData(cached)) { cached = p.TrimBars(cached); callback(p, cached); return; } _dataCacheManager.GetHistory(p, dataFeed, (@params, data) => { Add2Cache(p, data); cached = p.TrimBars(data); callback(p, cached); }); }