private void SetLightClone(Models.Monitor.LightProcessMonitor lightProcessMonitor) { ProcessMonitor = new TProcessMonitor(); ProcessMonitor.Processes = new ObservableCollection <TProcessDayActivity>(); Date = lightProcessMonitor.Date; var leads = new List <Tuple <TProcessDayActivity, TGroundWorkState> >(); if (lightProcessMonitor?.Processes == null) { return; } foreach (var process in lightProcessMonitor.Processes) { var tpda = new TProcessDayActivity(); tpda.Name = process.Name; tpda.Activities = new ObservableCollection <TProcessWork>(); foreach (var activity in process.Activities) { var processwork = new TProcessWork(); processwork.End = activity.End; processwork.Start = activity.Start; processwork.LeadGroundWorkStates = new ObservableCollection <TGroundWorkState>(); if (activity.LeadGroundWorkStates != null) { foreach (var lead in activity.LeadGroundWorkStates) { var lgws = new TGroundWorkState(); lgws.End = lead.End; lgws.Start = lead.Start; lgws.Title = lead.Title; leads.Add(new Tuple <TProcessDayActivity, TGroundWorkState>(tpda, lgws)); processwork.LeadGroundWorkStates.Add(lgws); } } tpda.Activities.Add(processwork); } ProcessMonitor.Processes.Add(tpda); } ProcessMonitor.UserLogActivities = new ObservableCollection <TProcessActivity>(leads.OrderBy(lead => lead.Item2.Start).Select(lead => ProcessActivityFromGroundAndLink(lead.Item2, lead.Item1))); }
public BaseMonitor(Models.Monitor.LightProcessMonitor lightProcessMonitor) { SetLightClone(lightProcessMonitor); }