protected override TimeSpan OnProcess() { // если фильтр по инструментам выключен (выбран инструмент все инструменты) if (this.GetAllSecurity() != null) { //throw new InvalidOperationException("Источник не поддерживает закачку данных по всем инструментам."); this.AddWarningLog(LocalizedStrings.Str2292); return(TimeSpan.MaxValue); } var hasSecurities = false; foreach (var secGroup in GetWorkingSecurities().Batch(20)) { hasSecurities = true; if (!CanProcess()) { break; } var source = new FinVizHistorySource(); var changes = source.LoadChanges(secGroup.Select(s => s.Security)); foreach (var pair in changes) { if (!CanProcess()) { break; } SaveLevel1Changes(pair.Key, new[] { pair.Value }); } } if (!hasSecurities) { this.AddWarningLog(LocalizedStrings.Str2292); return(TimeSpan.MaxValue); } if (CanProcess()) { this.AddInfoLog(LocalizedStrings.Str2300); } return(base.OnProcess()); }
protected override TimeSpan OnProcess() { // если фильтр по инструментам выключен (выбран инструмент все инструменты) if (this.GetAllSecurity() != null) { //throw new InvalidOperationException("Источник не поддерживает закачку данных по всем инструментам."); this.AddWarningLog(LocalizedStrings.Str2292); return TimeSpan.MaxValue; } var hasSecurities = false; foreach (var secGroup in GetWorkingSecurities().Batch(20)) { hasSecurities = true; if (!CanProcess()) break; var source = new FinVizHistorySource(); var changes = source.LoadChanges(secGroup.Select(s => s.Security)); foreach (var pair in changes) { if (!CanProcess()) break; SaveLevel1Changes(pair.Key, new[] { pair.Value }); } } if (!hasSecurities) { this.AddWarningLog(LocalizedStrings.Str2292); return TimeSpan.MaxValue; } if (CanProcess()) this.AddInfoLog(LocalizedStrings.Str2300); return base.OnProcess(); }