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 POS.Language.Language; namespace POSV.Component { [ToolboxItem(true)] public partial class PeripheralSettings : AbstractSettings { public PeripheralSettings() { InitializeComponent(); this.superTabControl.SelectedTabChanging += OnSelectedTabChanging; this.superTabControl.SelectedTabChanged += OnSelectedTabChanged; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.BackColor = Color.Transparent; } private void OnSelectedTabChanged(object sender, DevComponents.DotNetBar.SuperTabStripSelectedTabChangedEventArgs e) { } private void OnSelectedTabChanging(object sender, DevComponents.DotNetBar.SuperTabStripSelectedTabChangingEventArgs e) { if (e.OldValue == null) { return; } //服务中心 if (this.serviceCenterParameter1 is AbstractParameter) { var newValue = this.serviceCenterParameter1.NewChanged(); if (newValue.Count > 0) { this.serviceCenterParameter1.SaveChanged(newValue); } } //厨显参数 if (this.kitchenDisplay1 is AbstractParameter) { var newValue = this.kitchenDisplay1.NewChanged(); if (newValue.Count > 0) { this.kitchenDisplay1.SaveChanged(newValue); } } //副屏 if(this.viceParameter1 is AbstractParameter) { var newValue = this.viceParameter1.NewChanged(); if(newValue.Count > 0) { this.viceParameter1.SaveChanged(newValue); } } //客显 if(this.guestShowParameter1 is AbstractParameter) { var newValue = this.guestShowParameter1.NewChanged(); if(newValue.Count > 0) { this.guestShowParameter1.SaveChanged(newValue); } } //来电 if (this.telephoneParameter1 is AbstractParameter) { var newValue = this.telephoneParameter1.NewChanged(); if (newValue.Count > 0) { this.telephoneParameter1.SaveChanged(newValue); } } //钱箱 if (this.cashBoxParameter1 is AbstractParameter) { this.cashBoxParameter1.Initialize(); } //钱箱 if (this.slotCardAuthorization1 is AbstractParameter) { this.slotCardAuthorization1.GetAuthorizationData(); } } public override Tuple SaveChanged(List data) { bool isSuccess = true; string message = "参数更新成功"; try { lock (Global.Instance.SyncLock) { using (var db = Global.Instance.OpenDataBase) { using (var trans = db.GetTransaction()) { foreach (var config in data) { db.Save(poco: config); } trans.Complete(); } } } } catch (Exception ex) { isSuccess = false; message = "参数更新异常"; LOGGER.Error(ex, message); } finally { if (isSuccess) { //更新控件UI UpdatePeripheralUi(); } } return new Tuple(isSuccess, message); } public override List NewChanged() { var result = new List(); //收银小票参数 var serviceValue = this.serviceCenterParameter1.NewChanged(); result.AddRange(serviceValue); return result; } private void UpdatePeripheralUi() { Global.Instance.ReloadConfig(ConfigConstant.DEVICE_GROUP); } private void OnButtonOKClick(object sender, EventArgs e) { var selected = this.superTabControl.SelectedTabIndex; var result = new Tuple(true, "没有任何更新"); switch (selected) { case 0: { var newValue = this.serviceCenterParameter1.NewChanged(); if (newValue.Count > 0) { result = this.serviceCenterParameter1.SaveChanged(newValue); } } break; case 1: { var newValue = this.kitchenDisplay1.NewChanged(); if (newValue.Count > 0) { result = this.kitchenDisplay1.SaveChanged(newValue); } } break; case 2: { var newValue = this.viceParameter1.NewChanged(); if (newValue.Count > 0) { result = this.viceParameter1.SaveChanged(newValue); } } break; case 3: { var newValue = this.guestShowParameter1.NewChanged(); if(newValue.Count > 0) { result = this.guestShowParameter1.SaveChanged(newValue); } } break; case 4: { var newValue = this.telephoneParameter1.NewChanged(); if (newValue.Count > 0) { result = this.telephoneParameter1.SaveChanged(newValue); } } break; case 5: { var newValue = this.cashBoxParameter1.NewChanged(); if (newValue.Count > 0) { result = this.cashBoxParameter1.SaveChanged(newValue); } } break; case 6: { result = this.slotCardAuthorization1.SaveConfig(); } break; } if (result.Item1) { string message = "[" + LangProxy.ToLang(this.Tag.ToString() ) + LangProxy.ToLang("]的参数修改成功"); DialogForm dialog = new DialogForm(LangProxy.ToLang("参数更新成功"), message, MessageBoxIcon.Information, MessageBoxButtons.OK); dialog.ShowDialog(); } else { string message = "[" + LangProxy.ToLang(this.Tag.ToString()) + LangProxy.ToLang("]的参数修改失败"); DialogForm dialog = new DialogForm(LangProxy.ToLang("参数更新失败"), message, MessageBoxIcon.Error, MessageBoxButtons.OK); dialog.ShowDialog(); } } private void OnButtonCloseClick(object sender , EventArgs e) { var parent = this.FindForm(); if (parent != null && parent is SettingsForm) { var settings = parent as SettingsForm; settings.FormClose(); } } private void guestShowParameter1_Load(object sender, EventArgs e) { } } }