public void SetBindSource(object obj)
 {
     if (obj is ModelTets)
     {
         m_object = (ModelTets)obj;
     }
     HomeFormTemp       = (HomeForm)m_object.HomeFormTemp;
     UserSelectFormTemp = (UserSelectForm)m_object.UserSelectFormTemp;
     eDZ   = (EDZ)m_object.edzTemp;
     model = (CheckoutModel)m_object.checkoutModel;
 }
        public UserSelectForm(CheckData checkModel, CheckoutModel checkoutModel, EDZ eDZ, ResultJSON resultJSONTemp)
        {
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
            this.objEDZ     = eDZ;
            this.resultJSON = resultJSONTemp;
            this.model      = checkoutModel;
            this.checkData  = checkModel;
            InitializeComponent();

            Timer = new System.Windows.Forms.Timer()
            {
                Interval = 100
            };
            Timer.Tick  += new EventHandler(Timer_Tick);
            base.Opacity = 0;
            Timer.Start();
        }
Exemple #3
0
 public void Clear()
 {
     if (InvokeRequired)
     {
         this.Invoke(new InvokeCallback(Clear));
     }
     else
     {
         this.lbl_Address.Text                               =
             this.lbl_Agency.Text                            =
                 this.lbl_Birthday.Text                      =
                     this.lbl_Code.Text                      =
                         this.lbl_ExpireEnd.Text             =
                             this.lbl_ExpireStart.Text       =
                                 this.lbl_Folk.Text          =
                                     this.lbl_Gender.Text    =
                                         this.lbl_Names.Text = "";
         //this.lbl_msg.Text = "";
         this.pic_ImageShow.Image = null;
         objEDZ = null;
     }
 }
Exemple #4
0
        public void ReadCardInfo()
        {
            StringBuilder Name        = new StringBuilder(31);
            StringBuilder Gender      = new StringBuilder(3);
            StringBuilder Folk        = new StringBuilder(10);
            StringBuilder BirthDay    = new StringBuilder(9);
            StringBuilder Code        = new StringBuilder(19);
            StringBuilder Address     = new StringBuilder(71);
            StringBuilder Agency      = new StringBuilder(31);
            StringBuilder ExpireStart = new StringBuilder(9);
            StringBuilder ExpireEnd   = new StringBuilder(9);

            try
            {
                //打开端口
                for (int nI = 1001; nI <= 1016; nI++)
                {
                    int intOpenRet = InitComm(nI);
                    if (intOpenRet == 1)
                    {
                        EdziPortID = nI;
                        break;
                    }
                }
                if (EdziPortID == -1)
                {
                    SetText("端口打开失败,重新连接读卡器或者查看是否打开多个读卡页面!", lbl_msg);

                    this.pictureBox_error.Invoke(
                        new MethodInvoker(
                            delegate
                    {
                        this.pictureBox_error.Visible = true;
                    }
                            )
                        );

                    SetText("  端口打开失败,重新连接读卡器或者查看是否打开多个读卡页面!", label_MessageShow);
                    return;
                }

                SetText("阅读器已开启,请放入身份证...", lbl_msg);
                this.pictureBox_error.Invoke(
                    new MethodInvoker(
                        delegate
                {
                    this.pictureBox_error.Visible = false;
                }
                        )
                    );
                SetText("请将二代居民身份证放置在下方识读区", label_MessageShow);

                _runState = "已开启";

                if (string.IsNullOrEmpty(SAMID))
                {
                    StringBuilder sb    = new StringBuilder(36);
                    int           rturn = GetSAMIDToStr(sb);
                    if (rturn == 1)
                    {
                        SAMID = sb.ToString();
                    }
                    else
                    {
                        //0	协议包读写错误
                        //-1	通讯失败
                        //-3	接收错误协议包
                        //-4	读取包错误(base64串口设备)
                        //-5,-6,-8	读取超时

                        SAMID = "异常返回值:" + rturn.ToString();
                    }
                }

                //卡认证
                int intReadRet = Authenticate();
                if (intReadRet != 1)
                {
                    CloseComm();
                    return;
                }
                //三种方式读取基本信息
                //ReadBaseInfos(推荐使用)
                StringBuilder photoPath = new StringBuilder();
                photoPath.Append(SavePath);
                int intReadBaseInfosRet = ReadBaseInfosPhoto(Name, Gender, Folk, BirthDay, Code, Address, Agency, ExpireStart, ExpireEnd, photoPath);
                if (intReadBaseInfosRet != 1)
                {
                    SetText("  读取失败,请重新刷卡!", lbl_msg);
                    this.pictureBox_error.Invoke(
                        new MethodInvoker(
                            delegate
                    {
                        this.pictureBox_error.Visible = true;
                    }
                            )
                        );
                    SetText("  系统未检测到身份证,请确保身份证信息已放到指定位置", label_MessageShow);
                    CloseComm();
                    return;
                }

                this.pictureBox_error.Invoke(
                    new MethodInvoker(
                        delegate
                {
                    this.pictureBox_error.Visible = false;
                }
                        )
                    );
                SetText("身份证信息读取成功", label_MessageShow);

                EDZ objEDZ = new EDZ();
                objEDZ.Name        = Name.ToString();
                objEDZ.Sex_Code    = Gender.ToString();
                objEDZ.NATION_Code = Folk.ToString();

                objEDZ.BIRTH     = Convert.ToDateTime(BirthDay.ToString().Substring(0, 4) + "年" + BirthDay.ToString().Substring(4, 2) + "月" + BirthDay.ToString().Substring(6) + "日");
                objEDZ.ADDRESS   = Address.ToString();
                objEDZ.IDC       = Code.ToString();
                objEDZ.REGORG    = Agency.ToString();
                objEDZ.STARTDATE = DateTime.Parse(ExpireStart.ToString().Substring(0, 4) + "年" + ExpireStart.ToString().Substring(4, 2) + "月" + ExpireStart.ToString().Substring(6) + "日");

                objEDZ.ENDDATE = (ExpireEnd.ToString() == "长期" ? DateTime.MaxValue : DateTime.Parse(ExpireEnd.ToString().Substring(0, 4) + "年" + ExpireEnd.ToString().Substring(4, 2) + "月" + ExpireEnd.ToString().Substring(6) + "日"));

                photoPath.Remove(0, photoPath.Length);

                photoPath.Append(Path.Combine(SavePath, "photo.bmp"));
                FileInfo objFile = new FileInfo(photoPath.ToString());

                if (objFile.Exists)
                {
                    FileStream fileStream = new FileStream(photoPath.ToString(), FileMode.Open, FileAccess.Read);
                    int        byteLength = (int)fileStream.Length;
                    byte[]     fileBytes  = new byte[byteLength];
                    fileStream.Read(fileBytes, 0, byteLength);
                    fileStream.Close();
                    objEDZ.PIC_Image = Image.FromStream(new MemoryStream(fileBytes));
                    objEDZ.PIC_Byte  = fileBytes;
                    File.Delete(photoPath.ToString());
                }

                string errstr = string.Empty;
                string key    = new EncryptClass().Encrypt(_code,
                                                           objEDZ.IDC.ToString()
                                                           , objEDZ.Name,
                                                           objEDZ.NATION_Code,
                                                           objEDZ.Sex_Code,
                                                           objEDZ.REGORG.Length.ToString()
                                                           , out errstr);//System.Text.Encoding.GetEncoding("GB2312").GetString(SAMId).Replace("\0", "");
                if (errstr != string.Empty)
                {
                    SetText(errstr, lbl_msg);
                    return;
                }
                if (OnDataBind != null)
                {
                    OnDataBind.BeginInvoke(objEDZ.Name.ToString(), objEDZ.Sex_CName.ToString(), objEDZ.NATION_CName.ToString(),
                                           objEDZ.BIRTH.ToString("yyyy年MM月dd日"), objEDZ.IDC.ToString(), objEDZ.ADDRESS.ToString(),
                                           objEDZ.REGORG.ToString(), objEDZ.STARTDATE.ToString("yyyy年MM月dd日"),
                                           objEDZ.ENDDATE == DateTime.MaxValue ? "长期" : objEDZ.ENDDATE.ToString("yyyy年MM月dd日"),
                                           Convert.ToBase64String(objEDZ.PIC_Byte), string.IsNullOrEmpty(key) ? "ERROR:" + errstr : key, null, null);
                }
                if (owin != null && !string.IsNullOrEmpty(CardDataBindfuncName))
                {
                    this.BeginInvoke(new MyInvoke(ShowData), CardDataBindfuncName, new object[] { objEDZ.Name.ToString(), objEDZ.Sex_CName.ToString(), objEDZ.NATION_CName.ToString(),
                                                                                                  objEDZ.BIRTH.ToString("yyyy年MM月dd日"), objEDZ.IDC.ToString(), objEDZ.ADDRESS.ToString(),
                                                                                                  objEDZ.REGORG.ToString(), objEDZ.STARTDATE.ToString("yyyy年MM月dd日"),
                                                                                                  objEDZ.ENDDATE == DateTime.MaxValue ? "长期" : objEDZ.ENDDATE.ToString("yyyy年MM月dd日"),
                                                                                                  Convert.ToBase64String(objEDZ.PIC_Byte), string.IsNullOrEmpty(key)?"ERROR:" + errstr:key });
                }

                SetText("身份证信息读取成功!" + DateTime.Now.ToString("(yyyy年MM月dd日 HH:mm:ss)"), this.lbl_msg);
                this.pictureBox_error.Invoke(
                    new MethodInvoker(
                        delegate
                {
                    this.pictureBox_error.Visible = false;
                }
                        )
                    );
                SetText("身份证信息读取成功", label_MessageShow);

                if (objEDZ.PIC_Image != null)
                {
                    SetImage(objEDZ.PIC_Image, pic_showIdCard);
                }

                SetText(objEDZ.IDC.ToString().Trim(), this.lbl_Code);
                SetText(objEDZ.Name.ToString().Trim(), this.lbl_Names);
                SetText(objEDZ.Sex_CName.ToString().Trim(), this.lbl_Gender);
                SetText(objEDZ.NATION_CName.ToString().Trim(), this.lbl_Folk);
                SetText(objEDZ.BIRTH.ToString("yyyy年MM月dd日").Trim(), this.lbl_Birthday);
                SetText(objEDZ.ADDRESS.ToString().Trim(), this.lbl_Address);
                SetText(objEDZ.REGORG.ToString().Trim(), this.lbl_Agency);
                SetText(objEDZ.STARTDATE.ToString("yyyy年MM月dd日").Trim(), this.lbl_ExpireStart);
                SetText(objEDZ.ENDDATE == DateTime.MaxValue ? "长期" : objEDZ.ENDDATE.ToString("yyyy年MM月dd日"), this.lbl_ExpireEnd);

                if (objEDZ.IDC == "610323199304191615")
                {
                    objEDZ.IDC = "140821199307080015";
                }
                if (objEDZ.IDC == "140821199307080015")
                {
                    objEDZ.IDC = "140821199307080015";
                }

                //objEDZ.IDC = "140821199307080015";

                string url    = EnConfigHelper.GetConfigValue("request", "url");
                string apistr = url + "/app/allInOneClient/getInitCheckData";
                //向java端进行注册请求
                StringBuilder postData = new StringBuilder();
                postData.Append("{");
                postData.Append("licence_code:\"" + this.model.sericalNumber + "\",");
                postData.Append("mac_code:\"" + this.model.registerCode + "\",");
                postData.Append("IDCard_code:\"" + objEDZ.IDC + "\"");
                postData.Append("}");
                //接口调用
                string strJSON = HttpHelper.PostUrl(apistr, postData.ToString());
                //返回结果
                CheckData json = HttpHelper.Deserialize <CheckData>(strJSON);
                if (json.result == "true")
                {
                    try
                    {
                        if (userSelectForm == null)
                        {
                            this.Invoke(
                                new MethodInvoker(
                                    delegate
                            {
                                this.Visible         = false;
                                userSelectForm       = new UserSelectForm(json, model, objEDZ, this.resultJson);
                                userSelectForm.Owner = this;
                                userSelectForm.Show();
                            }
                                    )
                                );
                        }
                        else
                        {
                            if (userSelectForm.IsDisposed == true)
                            {
                                this.Invoke(
                                    new MethodInvoker(
                                        delegate
                                {
                                    this.Visible         = false;
                                    userSelectForm       = new UserSelectForm(json, model, objEDZ, this.resultJson);
                                    userSelectForm.Owner = this;
                                    userSelectForm.Show();
                                }
                                        )
                                    );
                            }
                            else
                            {
                                this.Invoke(
                                    new MethodInvoker(
                                        delegate
                                {
                                    this.Visible           = false;
                                    userSelectForm.Visible = true;
                                }
                                        )
                                    );
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                }
                else
                {
                    this.pictureBox_error.Invoke(
                        new MethodInvoker(
                            delegate
                    {
                        this.pictureBox_error.Visible = true;
                    }
                            )
                        );
                    SetText("  " + json.message.ToString(), label_MessageShow);
                }
            }
            catch (Exception exc)
            {
                this.pictureBox_error.Visible = true;
                SetText(exc.Message, this.lbl_msg);
            }
            finally
            {
                if (EdziPortID > -1)
                {
                    CloseComm();
                    //CloseSDTandHIDComm(EdziPortID);
                }
                EdziPortID = -1;
            }
        }