using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using POSV.Entity; using POSV.Common.Util; using POSV.Utils; using DevComponents.DotNetBar.SuperGrid; using System.Reflection; namespace POSV.Component { public partial class SlotCardAuthorization : AbstractParameter { public SlotCardAuthorization() { InitializeComponent(); DefaultGridStyle.setSmallGridStyle(this.salesListTable); } public DevComponents.DotNetBar.LabelX lblInfo = null; private void btnAdd_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.lblCardNo.Text) || this.lblCardNo.Text.Equals("授权卡号...")) { this.ShowMessage(this.lblInfo, "请使用读卡器读取卡信息!"); return; } if (string.IsNullOrEmpty(this.txtAccount.Text)) { this.ShowMessage(this.lblInfo, "请输入账号!"); this.txtAccount.Focus(); return; } if (string.IsNullOrEmpty(this.txtPassword.Text)) { this.ShowMessage(this.lblInfo, "请输入密码!"); this.txtPassword.Focus(); return; } var _data = JSON.Deserialize>(Global.Instance.GlobalConfigStringValue(ConfigConstant.DEVICE_SWIPING_CARD_DATA, "[]")); if (_data.Where(f => f.CardNo == this.lblCardNo.Text).Count() > 0) { this.ShowMessage(this.lblInfo, "此卡已绑定了其他账号,请确认!"); return; } SlotCardAuthorizationData cardAuthorizationData = new SlotCardAuthorizationData() { CardNo = this.lblCardNo.Text, Account = this.txtAccount.Text, Password = this.txtPassword.Text }; _data.Add(cardAuthorizationData); SetAuthorizationData(_data); } private void btnDele_Click(object sender, EventArgs e) { var panel = salesListTable.PrimaryGrid; if (panel.ActiveRow == null) { this.ShowMessage(this.lblInfo, "请选择一条数据操作"); return; } //提示 var row = panel.ActiveRow as GridRow; var _card = row.Cells[0].Value.ToString(); var _data = JSON.Deserialize>(Global.Instance.GlobalConfigStringValue(ConfigConstant.DEVICE_SWIPING_CARD_DATA, "[]")); this.SetAuthorizationData(_data.Where(f => f.CardNo != _card).ToList()); } private void txtInput_ButtonCustomClick(object sender, EventArgs e) { } private void buttonX1_Click(object sender, EventArgs e) { var result = Utils.CardOperateUtils.Instance.ReadCardNo(); if (result.Item1) { this.lblCardNo.Text = result.Item2; } else { result = Utils.CardOperateUtilsOther.Instance.ReadCardNo(); if (result.Item1) { this.lblCardNo.Text = result.Item2; } else { this.ShowMessage(lblInfo, result.Item2); } } } public Tuple SaveConfig() { Tuple tuple = new Tuple(false, ""); var config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.DEVICE_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = ConfigConstant.DEVICE_SWIPING_CARD_ENABLED; config.Values = string.Format("{0}", enableServiceCenter.Value); try { using (var db = Global.Instance.OpenDataBase) { db.Save(config); } Global.Instance.ReloadConfig(ConfigConstant.DEVICE_GROUP); return new Tuple(true, "保存成功"); } catch (Exception ex) { LOGGER.Error(ex); } return tuple; } private void SetAuthorizationData(List slotCardAuthorizations) { salesListTable.PrimaryGrid.DataSource = slotCardAuthorizations; var config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.DEVICE_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = ConfigConstant.DEVICE_SWIPING_CARD_DATA; config.Values = string.Format("{0}", JsonUtils.Serialize(slotCardAuthorizations)); try { using (var db = Global.Instance.OpenDataBase) { db.Save(config); } Global.Instance.ReloadConfig(ConfigConstant.DEVICE_GROUP); } catch (Exception ex) { LOGGER.Error(ex); } } public void GetAuthorizationData() { var _data = JSON.Deserialize>(Global.Instance.GlobalConfigStringValue(ConfigConstant.DEVICE_SWIPING_CARD_DATA, "[]")); var _enabled = Global.Instance.GlobalConfigStringValue(ConfigConstant.DEVICE_SWIPING_CARD_ENABLED, "false"); if (_enabled.ToLower().Equals("true")) { this.enableServiceCenter.Value = true; } salesListTable.PrimaryGrid.DataSource = _data; } private void SlotCardAuthorization_Load(object sender, EventArgs e) { } private void txtAccount_ButtonCustomClick(object sender, EventArgs e) { try { KeyboardType keyboardType = KeyboardType.数字; Type type = this.ActiveControl.GetType(); PropertyInfo pinfo = type.GetProperty("Keyboard"); if (pinfo != null) { keyboardType = (KeyboardType)pinfo.GetValue(this.ActiveControl, null); } var keyboard = Application.OpenForms["VirtualKeyboard"]; if (keyboard == null) { keyboard = new VirtualKeyboard(keyboardType); } ((VirtualKeyboard)keyboard).ShowVirtualKeyboard(this, keyboardType); } catch (Exception ex) { LOGGER.Error(ex, "打开屏幕键盘异常"); } } private void txtPassword_ButtonCustomClick(object sender, EventArgs e) { try { KeyboardType keyboardType = KeyboardType.数字; Type type = this.ActiveControl.GetType(); PropertyInfo pinfo = type.GetProperty("Keyboard"); if (pinfo != null) { keyboardType = (KeyboardType)pinfo.GetValue(this.ActiveControl, null); } var keyboard = Application.OpenForms["VirtualKeyboard"]; if (keyboard == null) { keyboard = new VirtualKeyboard(keyboardType); } ((VirtualKeyboard)keyboard).ShowVirtualKeyboard(this, keyboardType); } catch (Exception ex) { LOGGER.Error(ex, "打开屏幕键盘异常"); } } } }