| | |
| | | using HMI.AlarmInfoManage.Entity; |
| | | using HMI.Core.Entity; |
| | | using HMI.Core.Util; |
| | | using HMI.UI.Util; |
| | | using HMI.Util; |
| | | using HMI.Util.Alarm; |
| | | using log4net; |
| | | using Microsoft.Win32; |
| | | using NPOI.SS.Formula.Functions; |
| | | using Panuon.WPF.UI; |
| | | using System; |
| | | using System.Collections.ObjectModel; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | |
| | | public partial class AlarmSettingList : WindowX |
| | | { |
| | | private ILog log; |
| | | public AlarmSettingList(string blockFile, string markFile, ObservableCollection<AlarmSetting> datasource, |
| | | ObservableCollection<AlarmSetting> markDatasource, |
| | | ILog log) |
| | | public AlarmSettingList(ILog log) |
| | | { |
| | | this.blockFile = blockFile; |
| | | this.markFile = markFile; |
| | | Datasource = datasource; |
| | | MarkDatasource = markDatasource; |
| | | BlockDatasource = AlarmUtil.BlockSettings; |
| | | MarkDatasource = AlarmUtil.MarkSettings; |
| | | this.log = log; |
| | | DataContext = this; |
| | | InitializeComponent(); |
| | | } |
| | | |
| | | private readonly string blockFile; |
| | | private readonly string markFile; |
| | | private ObservableCollection<AlarmSetting> blockDatasource; |
| | | |
| | | private ObservableCollection<AlarmSetting> datasource; |
| | | |
| | | public ObservableCollection<AlarmSetting> Datasource |
| | | public ObservableCollection<AlarmSetting> BlockDatasource |
| | | { |
| | | get => datasource; |
| | | set { Set(ref datasource, value); } |
| | | get => blockDatasource; |
| | | set { Set(ref blockDatasource, value); } |
| | | } |
| | | |
| | | private ObservableCollection<AlarmSetting> markDatasource; |
| | |
| | | DeleteBatchData(); |
| | | break; |
| | | case "editBtn": |
| | | EditData(ItemIndex == 0 ? Datasource.IndexOf(data) : MarkDatasource.IndexOf(data), data); |
| | | EditData(ItemIndex == 0 ? BlockDatasource.IndexOf(data) : MarkDatasource.IndexOf(data), data); |
| | | break; |
| | | case "exportBtn": |
| | | ExportData(); |
| | |
| | | ImportData(); |
| | | break; |
| | | case "delBtn": |
| | | DeleteData(ItemIndex == 0 ? Datasource.IndexOf(data) : MarkDatasource.IndexOf(data)); |
| | | DeleteData(ItemIndex == 0 ? BlockDatasource.IndexOf(data) : MarkDatasource.IndexOf(data)); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | |
| | | private void LoadData() |
| | | { |
| | | try |
| | | { |
| | | if (File.Exists(blockFile)) |
| | | { |
| | | Datasource = |
| | | XmlHelper.DeserializeFromXml<ObservableCollection<AlarmSetting>>(blockFile); |
| | | } |
| | | else |
| | | { |
| | | Datasource = new ObservableCollection<AlarmSetting>(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Datasource = new ObservableCollection<AlarmSetting>(); |
| | | ToastHelper.Error(this, $"{this.lang("App.LoadFailed")}: {ex.Message}"); |
| | | } |
| | | |
| | | try |
| | | { |
| | | if (File.Exists(markFile)) |
| | | { |
| | | MarkDatasource = |
| | | XmlHelper.DeserializeFromXml<ObservableCollection<AlarmSetting>>(markFile); |
| | | } |
| | | else |
| | | { |
| | | MarkDatasource = new ObservableCollection<AlarmSetting>(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MarkDatasource = new ObservableCollection<AlarmSetting>(); |
| | | ToastHelper.Error(this, $"{this.lang("App.LoadFailed")}: {ex.Message}"); |
| | | } |
| | | BlockDatasource = AlarmUtil.BlockSettings; |
| | | MarkDatasource = AlarmUtil.MarkSettings; |
| | | } |
| | | |
| | | private void AddData(AlarmSetting data) |
| | | { |
| | | try |
| | | { |
| | | var file = ItemIndex == 0 ? blockFile : markFile; |
| | | var temp = ItemIndex == 0 ? this.lang("Alm.DbBlockAlarm") : this.lang("Alm.TagAlarm"); |
| | | var modal = new AlarmSettingModal(log) |
| | | { |
| | | Title = $"{this.lang("App.Add")}{temp}", |
| | | Owner = Window.GetWindow(this), |
| | | }; |
| | | if (modal.Open(-1, data, ItemIndex == 0 ? Datasource : MarkDatasource, file, ItemIndex != 0) == true) |
| | | if (modal.Open(-1, data, ItemIndex == 0 ? BlockDatasource : MarkDatasource, ItemIndex == 0) == true) |
| | | { |
| | | LoadData(); |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | var file = ItemIndex == 0 ? blockFile : markFile; |
| | | var temp = ItemIndex == 0 ? this.lang("Alm.DbBlockAlarm") : this.lang("Alm.TagAlarm"); |
| | | var modal = new AlarmSettingModal(log) |
| | | { |
| | | Title = $"{this.lang("App.Edit")}{temp}", |
| | | Owner = Window.GetWindow(this), |
| | | }; |
| | | if (modal.Open(index, data, ItemIndex == 0 ? Datasource : MarkDatasource, file, ItemIndex != 0) == true) |
| | | if (modal.Open(index, data, ItemIndex == 0 ? BlockDatasource : MarkDatasource, ItemIndex == 0) == true) |
| | | { |
| | | LoadData(); |
| | | } |
| | |
| | | }; |
| | | if (sfd.ShowDialog() == true) |
| | | { |
| | | ExcelHelper.ExportExcel(sfd.FileName, ItemIndex == 0 ? Datasource : MarkDatasource); |
| | | ExcelHelper.ExportExcel(sfd.FileName, ItemIndex == 0 ? BlockDatasource : MarkDatasource); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | ExcelHelper.ReadFromExcel<AlarmSetting>(ofd.FileName)); |
| | | if (ItemIndex == 0) |
| | | { |
| | | Datasource = datasource; |
| | | AlarmUtil.UpdateBlockSettings(datasource); |
| | | BlockDatasource = AlarmUtil.BlockSettings; |
| | | } |
| | | else |
| | | { |
| | | MarkDatasource = datasource; |
| | | AlarmUtil.UpdateMarkSettings(datasource); |
| | | MarkDatasource = AlarmUtil.MarkSettings; |
| | | } |
| | | var file = ItemIndex == 0 ? blockFile : markFile; |
| | | var temp = ItemIndex == 0 ? Datasource : MarkDatasource; |
| | | XmlHelper.SerializeToXml(file, temp); |
| | | LoadData(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | { |
| | | if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeleteThis")) == MessageBoxResult.OK) |
| | | { |
| | | var file = ItemIndex == 0 ? blockFile : markFile; |
| | | var temp = XmlHelper.DeepClone(ItemIndex == 0 ? Datasource : MarkDatasource); |
| | | bool isBlock = ItemIndex == 0; |
| | | var temp = XmlHelper.DeepClone(isBlock ? BlockDatasource : MarkDatasource); |
| | | |
| | | temp.RemoveAt(index); |
| | | XmlHelper.SerializeToXml(file, temp); |
| | | if (isBlock) |
| | | { |
| | | AlarmUtil.UpdateBlockSettings(temp); |
| | | } |
| | | else |
| | | { |
| | | AlarmUtil.UpdateMarkSettings(temp); |
| | | } |
| | | LoadData(); |
| | | } |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | var temp = (ItemIndex == 0 ? Datasource : MarkDatasource).Where(e => e.IsSelected).ToList(); |
| | | var temp = (ItemIndex == 0 ? BlockDatasource : MarkDatasource).Where(e => e.IsSelected).ToList(); |
| | | if (temp == null || temp.Count <= 0) |
| | | { |
| | | ToastHelper.Warning(Window.GetWindow(this), this.lang("HMI.NoDeleteData")); |
| | |
| | | if (MsgBoxHelper.WarnMessage(Window.GetWindow(this), this.lang("HMI.MakeSureDeletes", temp.Count)) |
| | | == MessageBoxResult.OK) |
| | | { |
| | | var file = ItemIndex == 0 ? blockFile : markFile; |
| | | temp = (ItemIndex == 0 ? Datasource : MarkDatasource).Where(e => !e.IsSelected).ToList(); |
| | | XmlHelper.SerializeToXml(file, temp); |
| | | bool isBlock = ItemIndex == 0; |
| | | temp = (isBlock ? BlockDatasource : MarkDatasource).Where(e => !e.IsSelected).ToList(); |
| | | if (isBlock) |
| | | { |
| | | AlarmUtil.UpdateBlockSettings(temp); |
| | | } |
| | | else |
| | | { |
| | | AlarmUtil.UpdateMarkSettings(temp); |
| | | } |
| | | LoadData(); |
| | | } |
| | | } |