175 lines
4.5 KiB
C#
175 lines
4.5 KiB
C#
using DocumentFormat.OpenXml.Office2010.Excel;
|
|
using DocumentFormat.OpenXml.Office2013.PowerPoint;
|
|
using DocumentFormat.OpenXml.Spreadsheet;
|
|
using DocumentFormat.OpenXml.Wordprocessing;
|
|
using SciChart.Core.Extensions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Runtime.InteropServices.ComTypes;
|
|
using System.Runtime.Serialization;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace MECF.Framework.Common.Aitex.Core.RT.EMS
|
|
{
|
|
|
|
/// <summary>
|
|
/// 帮助Maintainer管理 维护项
|
|
/// </summary>
|
|
public class MaintainerItemCollection
|
|
{
|
|
#region Variables
|
|
|
|
List<MaintainerItem> _items = new List<MaintainerItem>();
|
|
|
|
ObservableCollection<MaintainerItemInfo> _itemInfos = new ObservableCollection<MaintainerItemInfo>();
|
|
|
|
public delegate void ListChanged();
|
|
public event ListChanged OnListChanged;
|
|
|
|
int _unmaintainCount = 0;
|
|
|
|
public int Count
|
|
{
|
|
get
|
|
{
|
|
int count = 0;
|
|
foreach (var i in _items)
|
|
{
|
|
if (i.Enable)
|
|
{
|
|
count++;
|
|
}
|
|
}
|
|
return count;
|
|
}
|
|
}
|
|
|
|
public int UnMaintainCount => _unmaintainCount;
|
|
|
|
#endregion
|
|
|
|
#region Constructors
|
|
public MaintainerItemCollection()
|
|
{
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Functions
|
|
|
|
public void SortInfo()
|
|
{
|
|
var list =_itemInfos.ToList().OrderBy(i=>i.Config.Index);
|
|
_itemInfos.Clear();
|
|
list.ForEachDo(i=>_itemInfos.Add(i));
|
|
}
|
|
|
|
public void CheckAllItemMaintained(DateTime date)
|
|
{
|
|
int count = 0;
|
|
foreach (var i in _items)
|
|
{
|
|
if (!i.CheckMaintained(date) && i.Enable)
|
|
{
|
|
count++;
|
|
}
|
|
}
|
|
_unmaintainCount = count;
|
|
}
|
|
|
|
public bool SetMaintain(string itemid, DateTime date)
|
|
{
|
|
var item = _items.Find(i => i.UID == itemid);
|
|
if (item != null)
|
|
{
|
|
item.Maintained(date);
|
|
var item2 = _itemInfos.ToList().Find(i => i.UID == itemid);
|
|
if (item2!= null)
|
|
{
|
|
item2.MaintainedDate = date;
|
|
}
|
|
return true;
|
|
}
|
|
else return false;
|
|
}
|
|
|
|
public bool SetMaintainerItemEnable(string itemid, bool enable)
|
|
{
|
|
var item = _items.Find(i => i.UID == itemid);
|
|
if (item != null)
|
|
{
|
|
item.SetEnable(enable);
|
|
var iteminfo = _itemInfos.ToList().Find(i => i.UID == itemid);
|
|
if (item.Enable && iteminfo == null)
|
|
{
|
|
_itemInfos.Add(item.GetInfo());
|
|
SortInfo();
|
|
}
|
|
else if (!item.Enable && iteminfo != null)
|
|
{
|
|
_itemInfos.Remove(iteminfo);
|
|
}
|
|
return true;
|
|
}
|
|
else return false;
|
|
}
|
|
|
|
public void AddMaintainerItem(MaintainerItem item)
|
|
{
|
|
_items.Add(item);
|
|
if (item.Enable)
|
|
{
|
|
_itemInfos.Add(item.GetInfo());
|
|
}
|
|
}
|
|
|
|
public bool RemoveMaintainerItem(string uid)
|
|
{
|
|
var item1 = _itemInfos.ToList().Find(i => i.UID == uid);
|
|
if (item1 != null)
|
|
{
|
|
_itemInfos.Remove(item1);
|
|
var item3 = _items.Find(i => i.UID == uid);
|
|
if (item3 != null)
|
|
{
|
|
_items.Remove(item3);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public void AddMaintainerItemList(List<MaintainerItem> items)
|
|
{
|
|
_items.AddRange(items);
|
|
foreach (var item in items)
|
|
{
|
|
if (item.Enable)
|
|
{
|
|
_itemInfos.Add(item.GetInfo());
|
|
}
|
|
}
|
|
}
|
|
|
|
public List<MaintainerItem> GetAllItems()
|
|
{
|
|
return _items;
|
|
}
|
|
|
|
public ObservableCollection<MaintainerItemInfo> GetAllItemInfos()
|
|
{
|
|
return _itemInfos;
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|