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); }
private void OnReset() { SignalDictionary.Clear(); Signals.Clear(); SelectedRule = null; SelectedTemplate = null; }
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; })); }
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); } } }
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); } } }