public MainVM(IFolderDialog dialog, Dispatcher disp = null) { dispatcher = disp; folderDialog = dialog; openCommand = new MyCommand(_ => { return(true); }, _ => SelectDirectory()); recognizeCommand = new MyCommand(_ => { return(Images.Count() > 0); }, _ => RecognizeFunck()); stopCommand = new MyCommand(_ => { return(Images.Count() > 0); }, _ => imageRecognizer.Cancel()); selectCommand = new MyCommand(_ => { return(ClassVMs.Count() > 0); }, _ => SelectImgs()); clearCommand = new MyCommand(_ => { return(db != null); }, _ => ClearDB()); showCommand = new MyCommand(_ => { return(true); }, _ => GetStatistics()); }
public async void RecognizeFunck() { //ThreadPool.QueueUserWorkItem(new WaitCallback(_ => //{ foreach (var img in Images) { var tmpImage = new ImageInfoGet(); var client = new HttpClient(); tmpImage.Path = img.Path; tmpImage.Path = img.Name; tmpImage.JpegCover = Convert.ToBase64String(ConvertImageToByteArray(img.Path)); var s = JsonConvert.SerializeObject(tmpImage); var c = new StringContent(s); c.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); var putResult = await client.PutAsync("http://localhost:5000/api/images/", c); string body = await putResult.Content.ReadAsStringAsync(); ImageInfoGet info = JsonConvert.DeserializeObject <ImageInfoGet>(body); //MessageBox.Show(body); //ImageVM imageVM; //imageVM = new ImageVM(img.Path, img.Name, info.Confidence, info.Class); //Images.Add(imageVM); img.Confidence = info.Confidence; img.ClassName = info.Class; Progress++; this.dispatcher.BeginInvoke(new Action(() => { if (ClassVMs.Count() > 0) { bool flag = false; foreach (var imgClass in ClassVMs) { if (imgClass.Type == info.Class) { imgClass.Count++; flag = true; break; } } if (!flag) { ClassVMs.Add(new ImageClassVM(info.Class, 1)); } } else { ClassVMs.Add(new ImageClassVM(info.Class, 1)); } })); } //imageRecognizer.GetResults(); //})); }