private void OnPredictionCome(PredictionResult pr, EventArgs e, bool isInBase = false) { Dispatcherr.BeginInvoke(DispatcherPriority.Background, new Action(() => { Observ.Add(new RecognitionModel(pr.Path, pr.ClassLabel)); int index = -1; foreach (var tmp in ClassObserv) { if (tmp.Item1.Equals(pr.ClassLabel)) { index = ClassObserv.IndexOf(tmp); break; } } if (index != -1) { ClassObserv[index] = new Tuple <string, int>(ClassObserv[index].Item1, ClassObserv[index].Item2 + 1); } else { ClassObserv.Add(new Tuple <string, int>(pr.ClassLabel, 1)); } if (!isInBase) { var newElem = new RecognitionModel(pr.Path, pr.ClassLabel); DataBaseContext.DataBaseInfo.Add(newElem); DataBaseContext.SaveChanges(); if (DataBaseContext.ClassLabelsInfo.Find(newElem.ClassLabel) == null) { DataBaseContext.ClassLabelsInfo.Add(new ClassInfo(newElem.ClassLabel, newElem)); } else { DataBaseContext.ClassLabelsInfo.Find(newElem.ClassLabel).RecogModel.Add(newElem); } DataBaseContext.SaveChanges(); } })); }
public ClassInfo(string name = "", RecognitionModel rec = null) { this.Name = name; this.RecogModel = new List <RecognitionModel>(); this.RecogModel.Add(rec); }