public override void OnBarcodeDataReceived(BarcodeDataReceivedEvent_ dataReceivedEvent) { foreach (BarcodeDataReceivedEvent_.BarcodeData_ barcodeData in dataReceivedEvent.BarcodeData) { string data = barcodeData.Data; new Thread(new ThreadStart(delegate { Activity.RunOnUiThread(async() => { if (data[0].ToString() != "M") { ShowDialog("エラー", "メールバッグではありません。", () => { }); Log.Debug(TAG, "MAIN BAG KAISYU INPUT_ERR1:" + data); return; } string btvTokuisaki = data.Substring(1, 4); string btvTodokesaki = data.Substring(5, 4); // スキャン済みチェック SndNohinMailHelper sendMailHelper = new SndNohinMailHelper(); List <SndNohinMail> result = sendMailHelper.Select(btvTokuisaki, btvTodokesaki, data); if (result.Count != 0) { return; } // 納品メールバッグ重複チェック MbFileHelper mbFileHelper = new MbFileHelper(); bool hasData = mbFileHelper.HasExistMailBagData(data); if (true) { var resultYn = await DialogAsync.Show(Activity, "", "回収メールバッグと納入メールバッグが同じですよろしいですか?"); if (!resultYn.Value) { return; } } string btvKey1 = btvTokuisaki + btvTodokesaki; string btvKey2 = prefs.GetString("tokuisaki_cd", "") + prefs.GetString("todokesaki_cd", ""); if (btvKey1 != btvKey2) { ShowDialog("エラー", "納入先店舗が違います。", () => { }); Log.Debug(TAG, "納入先店舗が違います btvKey1 :" + btvKey1 + " btvKey2 :" + btvKey2); return; } int idx = arrMailBag.FindIndex(x => x == data); if (idx == -1) { arrMailBag.Add(data); mail_bag++; etKaisyuMail.Text = mail_bag.ToString(); } else { ShowDialog("報告", "既にスキャン済みです。", () => { }); Log.Debug(TAG, "既にスキャン済みです。 data :" + data); return; } }); } )).Start(); } }
private bool CheckMailBagData(string data) { List <SndNohinMail> sndNohinMail = sndNohinMailHelper.Select(tokuisakiCd, todokesakiCd, data); return(sndNohinMail.Count != 0); }