private async void BtnScan_Click(object sender, EventArgs e) { //var options = new ZXing.Mobile.MobileBarcodeScanningOptions(); var scanner = new ZXing.Mobile.MobileBarcodeScanner(); ApiFunctions apiGet = new ApiFunctions(); //options.PossibleFormats = new List<ZXing.BarcodeFormat>() { // ZXing.BarcodeFormat.CODE_93, ZXing.BarcodeFormat.CODE_39 //}; var options = new ZXing.Mobile.MobileBarcodeScanningOptions() { TryHarder = true, PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.CODE_39 } }; var result = await scanner.Scan(options); if (result != null) { string id; id = result.Text; id = id.Remove(0, 2); id = id.Remove(id.Length - 1); //Toast.MakeText(this, id, ToastLength.Long).Show(); string url = "http://theblackcat102.nctu.me:5000/NCTU/api/v1.1/students/" + id.ToString(); JsonValue pay = await apiGet.FetchStudentAsync(url); if (apiGet.GotPay(pay)) { Toast.MakeText(this, id + ",有繳學聯會費喔", ToastLength.Long).Show(); } else { Toast.MakeText(this, id + ",沒有繳學聯會費!!", ToastLength.Long).Show(); } } }
private async void testBtn_Click(object sender, EventArgs e) { var sqlLiteFilePath = GetFileStreamPath("") + "/db_user.db"; string TARGETURL = "http://theblackcat102.nctu.me:5000/NCTU/api/v1.1/payOnly"; string result = null; DatabaseFunctions dbFunc = new DatabaseFunctions(); ApiFunctions apiGet = new ApiFunctions(); if (File.Exists(sqlLiteFilePath)) { File.Delete(sqlLiteFilePath); } dbFunc.createDB(sqlLiteFilePath); Console.WriteLine("Database created"); result = await apiGet.parseData(TARGETURL); //must be used in threading pool otherwise add async to function ProgressDialog progress; progress = ProgressDialog.Show(this, "Loading", "Please Wait...", true); await Task.Factory.StartNew( () => { if (result != null && result.Length >= 50) { dbFunc.buildDB(result, sqlLiteFilePath); } }).ContinueWith( t => { if (progress != null) { progress.Hide(); } }, TaskScheduler.FromCurrentSynchronizationContext() ); }