示例#1
0
        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());
        }
示例#2
0
		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();
		}