public void Read() { lock (lockObject) { List <SingleSheBei> tmpAllSheBei = new List <SingleSheBei>(); using (DataTable dt = frmMain.mMain.AllDataBase.ReadData.Read("select * from SetSheBei order by id")) { if (dt != null && dt.Rows.Count > 0) { SingleSheBei tmpSheBei; for (int i = 0; i < dt.Rows.Count; i++) { tmpSheBei = new SingleSheBei(); tmpSheBei.SheBei = All.Class.Num.ToString(dt.Rows[i]["SheBei"]); tmpSheBei.Last = All.Class.Num.ToDateTime(dt.Rows[i]["Last"]); tmpSheBei.ZhouQi = All.Class.Num.ToInt(dt.Rows[i]["ZhouQi"]); tmpSheBei.DanWei = All.Class.Num.ToString(dt.Rows[i]["DanWei"]); tmpSheBei.Video = All.Class.Num.ToString(dt.Rows[i]["Video"]); tmpAllSheBei.Add(tmpSheBei); } } } this.AllSheBei = tmpAllSheBei; } }
public override void Flush() { lock (lockObject) { List <SingleSheBei> tmpNeedWeiHu = new List <SingleSheBei>(); List <SingleSheBei> tmpNextWeiHu = new List <SingleSheBei>(); List <int> maxTime = new List <int>(); int tmpShiJian = 0; SingleSheBei tmpSheBei; bool insert = false; if (this.AllSheBei != null && this.AllSheBei.Count > 0) { AllSheBei.ForEach( sheBei => { //统一单位 tmpShiJian = sheBei.ZhouQi; switch (sheBei.DanWei) { case "年": tmpShiJian = tmpShiJian * 24 * 60 * 365; break; case "月": tmpShiJian = tmpShiJian * 24 * 60 * 30; break; case "周": tmpShiJian = tmpShiJian * 24 * 60 * 7; break; case "日": tmpShiJian = tmpShiJian * 24 * 60 * 1; break; case "时": tmpShiJian = tmpShiJian * 60 * 1; break; } tmpSheBei = new SingleSheBei(); tmpSheBei.Next = sheBei.Last.AddMinutes(tmpShiJian); tmpSheBei.SheBei = sheBei.SheBei; tmpSheBei.Last = sheBei.Last; tmpSheBei.ZhouQi = sheBei.ZhouQi; tmpSheBei.DanWei = sheBei.DanWei; tmpSheBei.Video = sheBei.Video; if (tmpSheBei.Next < DateTime.Now) //马上维护 { tmpNeedWeiHu.Add(tmpSheBei); } else //不用马上维护 { if (maxTime.Count < NextCount) //个数不足 { insert = false; for (int i = 0; i < tmpNextWeiHu.Count; i++) { if (tmpNextWeiHu[i].Next > tmpSheBei.Next) { tmpNextWeiHu.Insert(i, tmpSheBei); //插入适当位置 insert = true; break; } } if (!insert) //添加到末尾 { tmpNextWeiHu.Add(tmpSheBei); } } else { insert = false; if (tmpSheBei.Next < tmpNextWeiHu[NextCount - 1].Next) { tmpNextWeiHu.RemoveAt(NextCount - 1); for (int i = 0; i < tmpNextWeiHu.Count; i++) { if (tmpNextWeiHu[i].Next > tmpSheBei.Next) { tmpNextWeiHu.Insert(i, tmpSheBei); insert = true; break; } } if (!insert) { tmpNextWeiHu.Add(tmpSheBei); } } } } }); } this.NeedWeiHu = tmpNeedWeiHu; this.NextWeiHu = tmpNextWeiHu; } }