Esempio n. 1
0
        private void LoadTemplateData()
        {
            var getResult = new List <SignalDetail>();

            string fileName = TemplatePath + "\\" + selectedTemplate;

            using (StreamReader fileReader = new StreamReader(fileName))
            {
                InputRecord = fileReader.ReadToEnd();
            }

            getResult = JsonConvert.DeserializeObject <List <SignalDetail> >(InputRecord);


            foreach (var item in getResult)
            {
                if (!SignalDictionary.ContainsKey(item.Signal))
                {
                    SignalDictionary.Add(item.Signal, item);
                }
            }
        }
Esempio n. 2
0
        private void ProcessRule()
        {
            foreach (var item in RuleList)
            {
                if (!string.IsNullOrWhiteSpace(item.Rule))
                {
                    var value = item.Rule.Split(' ');
                    var last  = value.LastOrDefault();

                    if (SignalDictionary.ContainsKey(item.Signal) && SignalDictionary[item.Signal] != null)
                    {
                        if (string.Compare(SignalDictionary[item.Signal].ValueType, "integer") == 0)
                        {
                            var itemValue = Convert.ToInt32(SignalDictionary[item.Signal].Value);
                            var ruleValue = Convert.ToInt32(last);

                            if ((item.Rule.Contains("greater than") && itemValue > ruleValue) ||
                                (item.Rule.Contains("less than") && itemValue < ruleValue) ||
                                item.Rule.Contains("equal to") && itemValue == ruleValue)
                            {
                                SignalDictionary[item.Signal].IsTrue = true;
                            }
                        }

                        if (string.Compare(SignalDictionary[item.Signal].ValueType, "string") == 0)
                        {
                            var itemValue = SignalDictionary[item.Signal].Value;
                            var ruleValue = last;

                            if (item.Rule.Contains("not be"))
                            {
                                if (!string.Equals(itemValue, ruleValue))
                                {
                                    SignalDictionary[item.Signal].IsTrue = true;
                                }
                            }
                            else
                            {
                                SignalDictionary[item.Signal].IsTrue = true;
                            }
                        }

                        if (string.Compare(SignalDictionary[item.Signal].ValueType, "Datetime") == 0)
                        {
                            var itemValue = Convert.ToDateTime(SignalDictionary[item.Signal].Value);
                            var now       = DateTime.Now;
                            var result    = DateTime.Compare(itemValue, now);

                            if (item.Rule.Contains("future") && result == 1 ||
                                item.Rule.Contains("past") && result == -1 ||
                                item.Rule.Contains("present") && result == 0)
                            {
                                SignalDictionary[item.Signal].IsTrue = true;
                            }
                        }
                    }
                }
            }
            foreach (var dictionaryValue in SignalDictionary)
            {
                if (dictionaryValue.Value.IsTrue)
                {
                    Signals.Add(dictionaryValue.Value);
                }
            }
        }