public override ICopySupportObject Clone() { var o = new TimeDiagram() { BeginTime = BeginTime, EndTime = EndTime, Height = Height, Memo = Memo, Name = Name, Width = Width, }; NodeList.ForEach(v => o.NodeList.Add(v.Clone() as INode)); NoteList.ForEach(v => o.NoteList.Add(v.Clone() as INote)); ConnectionList.ForEach(v => o.ConnectionList.Add(v.Clone() as IConnection)); TimeSeparateList.ForEach(v => o.TimeSeparateList.Add(new TimeSeparate() { Description = v.Description, BeginTime = v.BeginTime, EndTime = v.EndTime })); TrackList.ForEach(v => o.TrackList.Add(v.Clone() as ITrack)); return(o); }
public void AutoSetSeparate(TimeSpan minSeparate) { List <Tuple <DateTime, DateTime> > entityList = new List <Tuple <DateTime, DateTime> >(); TrackList.ForEach(v => { v.EntityList.ForEach(e => { entityList.Add(new Tuple <DateTime, DateTime>(e.BeginTime, e.EndTime)); }); }); TimeSeparateList.Clear(); TimeSeparateList.Add(new TimeSeparate() { BeginTime = BeginTime, EndTime = EndTime }); entityList.ForEach(v => { ProcessList(TimeSeparateList, v.Item1, v.Item2); }); TimeSeparateList.RemoveAll(v => v.IsValid(minSeparate) == false); }