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.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace MECF.Framework.Common.Aitex.Core.RT.EMS { /// /// 帮助Maintainer管理 维护项 /// [DataContract] public class MaintainerItemCollection { #region Variables [DataMember] Dictionary> _itemsdic = new(); int _unmaintaincount = 0; public int Count { get { int count = 0; foreach (var item in _itemsdic.Values) { count += item.Count; } return count; } } public int UnMaintainCount => _unmaintaincount; #endregion #region Functions public void CheckAllItemMaintained(DateTime date) { int count = 0; foreach (var item in _itemsdic.Values) { foreach (var i in item) { if (!i.CheckMaintained(date) && i.Enable) { count++; } } } _unmaintaincount = count; } public bool SetMaintain(string parentname, string name, int itemid, DateTime date) { if (_itemsdic.ContainsKey(parentname)) { int index = _itemsdic[parentname].FindIndex(i => i.Name == name && i.Id == itemid); if (index == -1) { return false; } return _itemsdic[parentname][index].Maintained(date); } else { return false; } } public bool SetMaintainerItemEnable(string parentname, string name, int itemid, bool enable) { if (_itemsdic.ContainsKey(parentname)) { int index = _itemsdic[parentname].FindIndex(i => i.Name == name && i.Id == itemid); if (index == -1) { return false; } _itemsdic[parentname][index].Enable = enable; return true; } else { return false; } } public void AddMaintainerItem(string parentname, MaintainerItem item) { if (_itemsdic.ContainsKey(parentname)) { _itemsdic[parentname].Add(item); //顺序不用添加 } else { _itemsdic.Add(parentname, new List() { item }); } } public void RemoveMaintainerItem(string parentname, string itemname,int id) { if (_itemsdic.ContainsKey(parentname)) { var item = _itemsdic[parentname].Find(i=>i.Name == itemname && i.Id == id); if (item != null) { _itemsdic[parentname].RemoveIfContains(item); if (_itemsdic[parentname].Count == 0) { _itemsdic.Remove(parentname); } } } } public void AddMaintainerItemList(string parentname, List items) { if (_itemsdic.ContainsKey(parentname)) { //判断重复性 items.ForEach(i => { int index = _itemsdic[parentname].FindIndex(j => j.Name == i.Name && j.Id == i.Id); if (index == -1) { _itemsdic[parentname].Add(i); } }); } else { _itemsdic.Add(parentname, items); } } public Dictionary> GetAllItemsDic() { return _itemsdic; } #endregion } }