Esempio n. 1
0
        protected ObjectColor GetColor(IMetricTypeCacheReadObject metricType, IMetricCacheReadObject metric, double?value)
        {
            var conditionRed    = metric.ConditionRed ?? metricType.ConditionRed;
            var conditionYellow = metric.ConditionYellow ?? metricType.ConditionYellow;
            var conditionGreen  = metric.ConditionGreen ?? metricType.ConditionGreen;

            var color = metric.ElseColor ?? metricType.ElseColor ?? ObjectColor.Gray;

            var parameters = new[] { new KeyValuePair <string, double?>("value", value) };

            if (ConditionChecker.Check(parameters, conditionRed))
            {
                color = ObjectColor.Red;
            }
            else if (ConditionChecker.Check(parameters, conditionYellow))
            {
                color = ObjectColor.Yellow;
            }
            else if (ConditionChecker.Check(parameters, conditionGreen))
            {
                color = ObjectColor.Green;
            }

            return(color);
        }
        public void EmptyConditionTest()
        {
            var parameters = new[]
            {
                new KeyValuePair <string, double?>("HDD", null)
            };
            var condition = @"";
            var result    = ConditionChecker.Check(parameters, condition);

            Assert.False(result);
        }
        public void IsNullConditionTest()
        {
            var parameters = new[]
            {
                new KeyValuePair <string, double?>("HDD", null)
            };
            var condition = @"HDD == null";
            var result    = ConditionChecker.Check(parameters, condition);

            Assert.True(result);
        }
        public void NullAndZero2Test()
        {
            var parameters = new[]
            {
                new KeyValuePair <string, double?>("value", null),
            };
            var condition = @"value > 10";
            var result    = ConditionChecker.Check(parameters, condition);

            Assert.False(result);
        }
        public void UnSatisfiedConditionTest()
        {
            var parameters = new[]
            {
                new KeyValuePair <string, double?>("HDD", 100),
                new KeyValuePair <string, double?>("MEM", 500),
            };
            var condition = @"HDD <= 100 && MEM <= 100";
            var result    = ConditionChecker.Check(parameters, condition);

            Assert.False(result);
        }
        public void PerformanceTest()
        {
            var startDate = DateTime.Now;

            for (var i = 0; i < 10000; i++)
            {
                var parameters = new[]
                {
                    new KeyValuePair <string, double?>("HDD", 1)
                };
                var condition = @"HDD > 100";
                var result    = ConditionChecker.Check(parameters, condition);
            }
            var endDate  = DateTime.Now;
            var duration = (int)(endDate - startDate).TotalMilliseconds;

            Console.WriteLine(duration + " ms");
        }
        public void NoFilesAccessTest()
        {
            bool exceptionFlag = false;
            var  parameters    = new[]
            {
                new KeyValuePair <string, double?>("HDD", null)
            };
            var condition = @"(new ActiveXObject('Scripting.FileSystemObject').CreateTextFile('C:\\test.txt', true).WriteLine('TEST') == 0)";

            try
            {
                var result = ConditionChecker.Check(parameters, condition);
            }
            catch (Exception)
            {
                exceptionFlag = true;
            }
            Assert.True(exceptionFlag);
        }
        public void NoCLRAccessTest()
        {
            bool exceptionFlag = false;
            var  parameters    = new[]
            {
                new KeyValuePair <string, double?>("HDD", null)
            };
            var condition = @"(new System.Text.StringBuilder()).Count == 0";

            try
            {
                var result = ConditionChecker.Check(parameters, condition);
            }
            catch (Exception)
            {
                exceptionFlag = true;
            }
            Assert.True(exceptionFlag);
        }
Esempio n. 9
0
        /// <summary>
        /// Получить этапы программирования в зависимости от программатора
        /// (бутлоадер например, не может записать самого себя)
        /// </summary>
        /// <param name="E"></param>
        /// <returns></returns>
        public Action[] GetActions(State S)
        {
            var Acts = new List <Action>();

            var SE = new ScriptExec();

            foreach (var A in Actions)
            {
                if (A.Cond == null)
                {
                    Acts.Add(A);
                }
                else
                {
                    if (ConditionChecker.Check(A.Cond, S))
                    {
                        Acts.Add(A);
                    }
                }
            }

            return(Acts.ToArray());
        }