コード例 #1
0
 public ValueContainer(
     ICalculator <TValue> calculator,
     ITriggerSettings triggerSettings,
     IHistorySettings historySettings)
     : this(calculator, triggerSettings, historySettings, null)
 {
 }
コード例 #2
0
        internal static Trigger DetermineTrigger(
            this ITriggerSettings triggerSettings,
            DateTimeOffset referenceDate,
            DateTimeOffset nextCalculationDate,
            long count)
        {
            if (triggerSettings.ApplyInitialCountTrigger)
            {
                if (count >= triggerSettings.InitialCountTrigger)
                {
                    triggerSettings.SetInitialTriggerUsed();
                    return(Trigger.Count);
                }
            }
            else if (triggerSettings.ApplyCountTrigger && count >= triggerSettings.CountTrigger)
            {
                return(Trigger.Count);
            }

            if (triggerSettings.ApplyTimeSpanTrigger && referenceDate >= nextCalculationDate)
            {
                return(Trigger.Time);
            }

            return(Trigger.None);
        }
コード例 #3
0
 public ValueContainer(
     ICalculator <TValue> calculator,
     ITriggerSettings triggerSettings,
     IDetectionRange <TValue> range)
     : this(calculator, triggerSettings, null, range)
 {
 }
コード例 #4
0
        internal static Trigger DetermineAnomalyTrigger(
            this ITriggerSettings triggerSettings,
            long anomalyCount)
        {
            if (triggerSettings.ApplyAnomalyCountTrigger && anomalyCount >= triggerSettings.AnomalyCountTrigger)
            {
                return(Trigger.Anomaly);
            }

            return(Trigger.None);
        }
コード例 #5
0
 public ValueContainer(
     ICalculator <TValue> calculator,
     ITriggerSettings triggerSettings,
     IHistorySettings historySettings,
     IDetectionRange <TValue> range)
 {
     Calculator      = calculator;
     TriggerSettings = triggerSettings;
     HistorySettings = historySettings ?? new HistorySettings(0);
     Range           = range;
     SetCalculationDate(DateTimeOffset.Now);
 }