using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Xml; using System.IO; using AForge.Video; using AForge.Video.DirectShow; namespace WinFormTest { public partial class frmCheckIn : Form { blwws.blwwsSoapClient blwwsClient = new blwws.blwwsSoapClient(); syncstatus.syncstatusSoapClient syncstatusClient = new syncstatus.syncstatusSoapClient(); //ServiceReference2.ThirdpartyServiceClient client1 = new ServiceReference2.ThirdpartyServiceClient(); private FilterInfoCollection videoDevices; private VideoCaptureDevice videoSource = null; public frmCheckIn(string hotelCode, string roomNumber) { InitializeComponent(); txtHotelCode.Text = hotelCode; //txtRoomNumber.Text = roomNumber; cmbSex.SelectedIndex = 0; //btnFaceCheckIn.Visible = false; rbtnPhoto1.CheckedChanged += new EventHandler(rbtnPhoto1_CheckedChanged); btnPhoto.Click += new EventHandler(btnPhoto_Click); this.Load += new EventHandler(frmCheckIn_Load); this.FormClosing += new FormClosingEventHandler(frmCheckIn_FormClosing); } void frmCheckIn_FormClosing(object sender, FormClosingEventArgs e) { if (videoSource != null && videoSource.IsRunning) { videoSource.Stop(); } } private bool isPhoto = false; void btnPhoto_Click(object sender, EventArgs e) { if (videoSource == null || !videoSource.IsRunning) { MessageBox.Show("没有找到摄像头!"); return; } picPhoto.Image = picWebcam.Image; isPhoto = true; } void frmCheckIn_Load(object sender, EventArgs e) { videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (videoDevices.Count > 0) { videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString); videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame); videoSource.DesiredFrameSize = new Size(picWebcam.Size.Width, picWebcam.Size.Height); videoSource.Start(); } } void video_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap img = (Bitmap)eventArgs.Frame.Clone(); picWebcam.Image = img; } void rbtnPhoto1_CheckedChanged(object sender, EventArgs e) { if (rbtnPhoto1.Checked) { txtPhotoUrl.ReadOnly = false; btnPhoto.Enabled = false; } else { txtPhotoUrl.ReadOnly = true; btnPhoto.Enabled = true; } } private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim())) { MessageBox.Show("房号不能为空"); txtRoomNumber.Focus(); return; } string errorMsg = ""; string xmlString = ""; if (blwwsClient.CheckIn("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), DateTime.Now, xmlString, ref errorMsg, txtPhoneNumber.Text.Trim(), txtIDNumber.Text.Trim())) { MessageBox.Show("开房成功!"); } else { MessageBox.Show(errorMsg); } } private void button2_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim())) { MessageBox.Show("房号不能为空"); txtRoomNumber.Focus(); return; } string errorMsg = ""; if (blwwsClient.CheckOut("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), DateTime.Now, ref errorMsg)) { MessageBox.Show("退房成功!"); } else { MessageBox.Show(errorMsg); } } private void button3_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim())) { MessageBox.Show("房号不能为空"); txtRoomNumber.Focus(); return; } string errorMsg = ""; if (blwwsClient.RentRoom("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), DateTime.Now, ref errorMsg)) { MessageBox.Show("变更待租成功!"); } else { MessageBox.Show(errorMsg); } } private void button4_Click(object sender, EventArgs e) { //=============将插卡信息上报给PMS======================================= //XmlDocument xmlDoc = new XmlDocument(); //xmlDoc.LoadXml(client1.GethHotelcode("宝来客控对接酒店")); //XmlElement element = xmlDoc.DocumentElement; //string hotelCode = element.GetElementsByTagName("Body")[0].ChildNodes[0].ChildNodes[0].InnerText;//"HOTEL1489374686"; //xmlDoc = new XmlDocument(); //XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");//创建类型声明节点 //xmlDoc.AppendChild(node); //XmlNode root = xmlDoc.CreateElement("request"); //xmlDoc.AppendChild(root); //XmlNode card = xmlDoc.CreateElement("cardIdentificatioinrq"); //root.AppendChild(card); //XmlNode data = xmlDoc.CreateNode(XmlNodeType.Element, "hotelCode", null); //data.InnerText = hotelCode;//酒店代码 //card.AppendChild(data); //data = xmlDoc.CreateNode(XmlNodeType.Element, "roomno", null); //data.InnerText = textBox1.Text.Trim();//房间号 //card.AppendChild(data); //data = xmlDoc.CreateNode(XmlNodeType.Element, "remark", null); //data.InnerText = "";//备注 //card.AppendChild(data); //data = xmlDoc.CreateNode(XmlNodeType.Element, "guestinfo", null); //if (string.IsNullOrEmpty(textBox2.Text.Trim())) //{ // data.InnerText = "无人"; //} //else //{ // data.InnerText = textBox2.Text.Trim();//插卡人身份信息 //} //card.AppendChild(data); //data = xmlDoc.CreateNode(XmlNodeType.Element, "key", null); //data.InnerText = "Wide_Third";//授权码 //card.AppendChild(data); ////logger.Error(xmlDoc.InnerXml); //textBox3.Text = xmlDoc.InnerXml; //string result = client1.SendIdentificatioinByCard(xmlDoc.InnerXml); //string result = TestBLL.Class1.Test(textBox1.Text.Trim(), textBox2.Text.Trim()); //MessageBox.Show("发送成功" + Environment.NewLine + result); } private void button5_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim())) { MessageBox.Show("房号不能为空"); txtRoomNumber.Focus(); return; } if (string.IsNullOrEmpty(txtPhoneNumber.Text.Trim())) { MessageBox.Show("手机号不能为空"); txtPhoneNumber.Focus(); return; } string errorMsg = ""; if (blwwsClient.ChangePhoneNumber("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), txtPhoneNumber.Text.Trim(), txtIDNumber.Text.Trim(), ref errorMsg)) { MessageBox.Show("变更手机号成功!"); } else { MessageBox.Show(errorMsg); } } private void btnWXLogin_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim())) { MessageBox.Show("房号不能为空"); txtRoomNumber.Focus(); return; } if (string.IsNullOrEmpty(txtValidateCode.Text.Trim())) { MessageBox.Show("验证码不能为空"); txtValidateCode.Focus(); return; } if (syncstatusClient.ValidateNumberByCode(txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), txtValidateCode.Text.Trim())) { MessageBox.Show("验证成功!"); } else { MessageBox.Show("验证失败!"); } } private void btnClose_Click(object sender, EventArgs e) { this.Close(); } private void btnFaceCheckIn_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtRoomNumber.Text.Trim())) { MessageBox.Show("房号不能为空"); txtRoomNumber.Focus(); return; } if (string.IsNullOrEmpty(txtName.Text.Trim())) { MessageBox.Show("姓名不能为空"); txtName.Focus(); return; } if (string.IsNullOrEmpty(txtIDNumber.Text.Trim())) { MessageBox.Show("身份证号不能为空"); txtIDNumber.Focus(); return; } string errorMsg = ""; long checkInID = 0; string photoUrl = txtPhotoUrl.Text.Trim(); byte[] photo = null; if (rbtnPhoto2.Checked) { if (!isPhoto) { MessageBox.Show("请先拍照"); btnPhoto.Focus(); return; } photoUrl = ""; photo = GetBytePictureBox(picPhoto); } else if(string.IsNullOrEmpty(photoUrl)) { MessageBox.Show("云端图片地址不能为空"); txtPhotoUrl.Focus(); return; } string xmlString = ""; if (blwwsClient.CheckIn2("blw_ws@2015", txtHotelCode.Text.Trim(), txtRoomNumber.Text.Trim(), DateTime.Now, xmlString, ref errorMsg, ref checkInID, txtPhoneNumber.Text.Trim(), txtIDNumber.Text.Trim())) { if (blwwsClient.UploadPhoto("blw_ws@2015", txtHotelCode.Text.Trim(), checkInID, 0, txtIDNumber.Text.Trim(), txtName.Text.Trim(), cmbSex.SelectedIndex, dtBirthday.Value.ToString("yyyy-MM-dd"), photoUrl, photo, ref errorMsg)) { MessageBox.Show("开房成功!CheckInID:" + checkInID.ToString()); } else { MessageBox.Show(errorMsg); } } else { MessageBox.Show(errorMsg); } } private byte[] GetBytePictureBox(System.Windows.Forms.PictureBox pb) { byte[] bt = null; if (!pb.Equals(null)) { using (MemoryStream ms = new MemoryStream()) { Bitmap bm = new Bitmap(pb.Size.Width, pb.Size.Height); pb.DrawToBitmap(bm, pb.ClientRectangle); bm.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); bt = ms.GetBuffer(); } } return bt; } } }