Esempio n. 1
0
        public List <SignalDictionary> CalculateNormal(DirectoryInfo di)
        {
            List <SignalDictionary> signalList = new List <SignalDictionary>();

            FileInfo[] fi      = di.GetFiles();
            object     lockObj = new object();

            Parallel.For(0, fi.Length, i =>
            {
                Dictionary <string, string> w = _indicatorsService.Wskazniki(15, fi[i].FullName);



                foreach (var item in w)
                {
                    SignalDictionary signal = new SignalDictionary()
                    {
                        Key   = item.Key,
                        Value = item.Value
                    };
                    lock (lockObj)
                    {
                        signalList.Add(signal);
                    }
                }
            });
            return(signalList);
        }
Esempio n. 2
0
 private void OnReset()
 {
     SignalDictionary.Clear();
     Signals.Clear();
     SelectedRule     = null;
     SelectedTemplate = null;
 }
Esempio n. 3
0
        private Task <List <SignalDictionary> > CalculatePart(FileInfo[] part)
        {
            return(Task.Run(() =>
            {
                List <SignalDictionary> signalList = new List <SignalDictionary>();
                object lockObj = new object();

                Parallel.For(0, part.Length, i =>
                {
                    Dictionary <string, string> w = _indicatorsService.Wskazniki(15, part[i].FullName);
                    foreach (var item in w)
                    {
                        //Console.WriteLine($"Data {item.Key} = {item.Value}");
                        SignalDictionary signal = new SignalDictionary()
                        {
                            Key = item.Key,
                            Value = item.Value
                        };

                        lock (lockObj)
                        {
                            signalList.Add(signal);
                        }
                    }
                });

                return signalList;
            }));
        }
Esempio n. 4
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. 5
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);
                }
            }
        }