// IntegrateList takes a list of machine events and merges them into the machine event list. // Note: This method assumes that the methods being merged into the new list // are machine events only, and do not include custom events. private void IntegrateList(IProductionEvents source, IProductionEvents target) { if (source.Count() == 0) { return; } if (source.Count() > 1) { source.Sort(); } target.CopyEventsFrom(source); target.Collate(_targetLists); }
public bool IsNextEventSuitable(int stamp, DateTime _time) { if (Stamp != stamp || Index < 0) { return(false); } int EventListCount = EventList.Count(); int NewIndex = Index + 1; if (NewIndex < EventListCount) { DateTime NewEndDate; T NewNextEvent; int NewNextEventIndex = NewIndex + 1; if (NewNextEventIndex < EventListCount) { EventList.GetStateAtIndex(NewNextEventIndex, out NewEndDate, out NewNextEvent); } else { NewNextEvent = default; NewEndDate = Consts.MAX_DATETIME_AS_UTC; } if (_time < NewEndDate) { Index = NewIndex; StartDate = EndDate; EndDate = NewEndDate; ThisEvent = NextEvent; NextEvent = NewNextEvent; return(true); } } return(false); }