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);
        }