Пример #1
0
        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)));
        }
Пример #2
0
 public BaseMonitor(Models.Monitor.LightProcessMonitor lightProcessMonitor)
 {
     SetLightClone(lightProcessMonitor);
 }