You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

267 lines
8.3 KiB
C#

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<bool, string> SaveChanged(List<Config> 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<bool, string>(isSuccess, message);
}
public override List<Config> NewChanged()
{
var result = new List<Config>();
//收银小票参数
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<bool, string>(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)
{
}
}
}