2025-08-15 15:38:37 +08:00

419 lines
12 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows.Input;
using Prism.Services.Dialogs;
using Prism.Ioc;
using SWS.Commons;
using SWS.Model;
using SWS.Service;
using SWS.WPF.Views;
using Telerik.Windows.Controls;
using Unity;
using DialogParameters = Prism.Services.Dialogs.DialogParameters;
namespace SWS.WPF.ViewModels
{
public class DialogSignalNoticeViewModel : DialogBase, IDialogAware
{
#region
private ObservableCollection<SignalNotice> _MySignalNotices = new ObservableCollection<SignalNotice>();
/// <summary>
/// 表格数据源
/// </summary>
public ObservableCollection<SignalNotice> MySignalNotices
{
get { return _MySignalNotices; }
set { _MySignalNotices = value; RaisePropertyChanged(nameof(MySignalNotices)); }
}
private SignalNotice _SelectedSignalNotice;
/// <summary>
/// 选中行
/// </summary>
public SignalNotice SelectedSignalNotice
{
get { return _SelectedSignalNotice; }
set { _SelectedSignalNotice = value; RaisePropertyChanged(nameof(SelectedSignalNotice)); }
}
/// <summary>
/// 信号接口服务
/// </summary>
WireGroupService _wireGroupService;
public DialogSignalNotice SignalNoticeView { get; set; }
#endregion
public DialogSignalNoticeViewModel()
{
title = "通知信息";
_wireGroupService = GlobalObject.container.Resolve<WireGroupService>();
}
public string Title => "";
public event Action<IDialogResult> RequestClose;
public bool CanCloseDialog()
{
return true;
}
public void OnDialogClosed()
{
}
private List<ec_wire_group_notice> SignalNotices;
public async void OnDialogOpened(IDialogParameters parameters)
{
SignalNotices = await _wireGroupService.GetNotification();
int index = 0;
foreach (var item in SignalNotices)
{
index++;
SignalNotice s = new SignalNotice(item);
s.ID = index;
MySignalNotices.Add(s);
}
}
public override void ExecuteOKCommandAsync(object para)
{
DialogResult result = new DialogResult(ButtonResult.Yes);
RequestClose.Invoke(result);
}
public override void ExecuteCloseCommand(object parameter)
{
if (parameter as string == "ClickNo")
{
DialogResult result = new DialogResult(ButtonResult.No);
RequestClose.Invoke(result);
}
else
{
DialogResult result = new DialogResult(ButtonResult.Cancel);
RequestClose.Invoke(result);
}
this.Dispose();
}
#region
public ICommand StatusButtonCmd => new DelegateCommand(StatusButton_Click);
/// <summary>
/// 显示状态按钮
/// </summary>
/// <param name="parameter"></param>
public virtual async void StatusButton_Click(object parameter)
{
MySignalNotices = new ObservableCollection<SignalNotice>();
SignalNotices = await _wireGroupService.GetNotification();
if (!parameter.Equals("All"))
{
SignalNotices = SignalNotices.Where(s => s.CheckFLG.ToString().Equals(parameter)).ToList();
}
int index = 0;
foreach (var item in SignalNotices)
{
index++;
SignalNotice s = new SignalNotice(item);
s.ID = index;
MySignalNotices.Add(s);
}
}
#endregion
#region
public ICommand ButtonCmd => new DelegateCommand(Button_Click);
/// <summary>
/// 页面右侧按钮
/// </summary>
/// <param name="parameter"></param>
public virtual async void Button_Click(object parameter)
{
#region
if (parameter.Equals("确定"))
{
List<string> noticeIds = new List<string>();
foreach (var item in MySignalNotices)
{
noticeIds = MySignalNotices.Where(e => e.IsModified == true).Select(e => e.WireGroupNoticeID).ToList();
}
List<ec_wire_group_notice> ReNotices = await _wireGroupService.ReadNotification(noticeIds);
foreach (var item in ReNotices)
{
var ent = MySignalNotices.FirstOrDefault(x => x.WireGroupNoticeID == item.WireGroupNoticeID);
if (ent != null)
{
ent.UpdateTime = item.UpdateTime;
}
}
DialogResult result = new DialogResult(ButtonResult.Cancel);
RequestClose.Invoke(result);
this.Dispose();
}
#endregion
#region
if (parameter.Equals("取消"))
{
DialogResult result = new DialogResult(ButtonResult.Cancel);
RequestClose.Invoke(result);
this.Dispose();
}
#endregion
#region
if (parameter.Equals("已阅"))
{
if (SelectedSignalNotice == null)
{
return;
}
else
{
if (!SelectedSignalNotice.CheckFLG)
{
SelectedSignalNotice.CheckFLG = true;
SelectedSignalNotice.IsModified = true;
}
}
}
#endregion
#region
if (parameter.Equals("全部已阅"))
{
foreach (var item in MySignalNotices)
{
if (!item.CheckFLG)
{
item.CheckFLG = true;
item.IsModified = true;
}
}
}
#endregion
}
#endregion
}
//public class SignalNotice: DialogBase
//{
// #region 属性
// private int _ID;
// /// <summary>
// /// 序号
// /// </summary>
// public int ID
// {
// get { return _ID; }
// set { _ID = value; }
// }
// private string _WireGroupNoticeID;
// /// <summary>
// /// 信号通知ID
// /// </summary>
// public string WireGroupNoticeID
// {
// get { return _WireGroupNoticeID; }
// set { _WireGroupNoticeID = value; }
// }
// private string _Group_Name;
// /// <summary>
// /// CH.NO
// /// </summary>
// public string Group_Name
// {
// get { return _Group_Name; }
// set { _Group_Name = value; }
// }
// private string _Group_Desc;
// /// <summary>
// /// z中文描述
// /// </summary>
// public string Group_Desc
// {
// get { return _Group_Desc; }
// set { _Group_Desc = value; }
// }
// private string _Group_Desc_EN;
// /// <summary>
// /// 英文描述
// /// </summary>
// public string Group_Desc_EN
// {
// get { return _Group_Desc_EN; }
// set { _Group_Desc_EN = value; }
// }
// private string _IO_Type;
// /// <summary>
// /// 信号类型
// /// </summary>
// public string IO_Type
// {
// get { return _IO_Type; }
// set { _IO_Type = value; }
// }
// private Model.Action _ActionID;
// /// <summary>
// /// 操作ID
// /// </summary>
// public Model.Action ActionID
// {
// get { return _ActionID; }
// set { _ActionID = value; }
// }
// private string _Action;
// /// <summary>
// /// 操作
// /// </summary>
// public string Action
// {
// get { return _Action; }
// set { _Action = value; }
// }
// private string _CreateUserName;
// /// <summary>
// /// 发出者
// /// </summary>
// public string CreateUserName
// {
// get { return _CreateUserName; }
// set { _CreateUserName = value; }
// }
// private DateTime? _CreateTime;
// /// <summary>
// /// 操作时间
// /// </summary>
// public DateTime? CreateTime
// {
// get { return _CreateTime; }
// set { _CreateTime = value; }
// }
// private string _UpdateUserName;
// /// <summary>
// /// 已阅人
// /// </summary>
// public string UpdateUserName
// {
// get { return _UpdateUserName; }
// set { _UpdateUserName = value; }
// }
// private DateTime? _UpdateTime;
// /// <summary>
// /// 已阅时间
// /// </summary>
// public DateTime? UpdateTime
// {
// get { return _UpdateTime; }
// set { _UpdateTime = value; }
// }
// private string _Message;
// /// <summary>
// /// 操作信息
// /// </summary>
// public string Message
// {
// get { return _Message; }
// set { _Message = value; }
// }
// private bool _CheckFLG;
// /// <summary>
// /// 是否已读
// /// </summary>
// public bool CheckFLG
// {
// get { return _CheckFLG; }
// set { _CheckFLG = value; }
// }
// private bool _IsModified;
// /// <summary>
// /// 是否修改
// /// </summary>
// public bool IsModified
// {
// get { return _IsModified; }
// set { _IsModified = value; RaisePropertyChanged(nameof(IsModified)); }
// }
// private bool _IsReadOnly;
// /// <summary>
// /// 是否可编辑
// /// </summary>
// public bool IsReadOnly
// {
// get { return _IsReadOnly; }
// set { _IsReadOnly = value; RaisePropertyChanged(nameof(IsReadOnly)); }
// }
// #endregion
// #region 方法
// public SignalNotice()
// {
// }
// public SignalNotice(ec_wire_group_notice ec_Notice)
// {
// #region 前端表格对应列
// this.Group_Name = ec_Notice.Group_Name;
// this.Group_Desc = ec_Notice.Group_Desc;
// this.Group_Desc_EN = ec_Notice.Group_Desc_EN;
// this.IO_Type = ec_Notice.IO_Type;
// this.Action = ec_Notice.Action;
// this.CreateUserName = ec_Notice.CreateUserName;
// this.CreateTime = ec_Notice.CreateTime;
// this.UpdateUserName = ec_Notice.UpdateUserName;
// this.UpdateTime = ec_Notice.UpdateTime;
// this.Message = ec_Notice.Message;
// #endregion
// this.WireGroupNoticeID = ec_Notice.WireGroupNoticeID;
// this.CheckFLG = ec_Notice.CheckFLG;
// this.IsReadOnly = ec_Notice.CheckFLG;
// }
// /// <summary>
// /// 设置数据
// /// </summary>
// public void setData()
// {
// }
// #endregion
//}
}