コード例 #1
0
        public DiagnoseOutputViewModel(IDiagnoseOutputEntry diagnoseOutputEntry, long extraGap)
        {
            _diagnoseOutputViewModels = new ReactiveCollection <IDiagnoseOutputViewModel>();

            StartTimeStamp  = diagnoseOutputEntry.TimeStamp;
            Gap             = diagnoseOutputEntry.Gap;
            Duration        = diagnoseOutputEntry.Duration;
            ProcessId       = diagnoseOutputEntry.ProcessId;
            ThreadNumber    = diagnoseOutputEntry.ThreadNumber;
            Type            = diagnoseOutputEntry.Type;
            Domain          = diagnoseOutputEntry.Domain;
            Application     = diagnoseOutputEntry.Application;
            Component       = diagnoseOutputEntry.Component;
            Module          = diagnoseOutputEntry.Module;
            Code            = diagnoseOutputEntry.Code;
            Text            = diagnoseOutputEntry.Text;
            MetaInformation = diagnoseOutputEntry.MetaInformation;

            ExtraGap      = extraGap;
            TotalDuration = diagnoseOutputEntry.Duration;
            _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel = diagnoseOutputEntry.Duration;

            if (diagnoseOutputEntry.Type == DiagnoseType.StartBracketOutput)
            {
                IsBracketOpen = true;
            }
        }
コード例 #2
0
        public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry entry, long extraGap)
        {
            var output = DiagnoseOutputViewModels.SingleOrDefault(x => x.IsBracketOpen);

            if (output == null)
            {
                output = new DiagnoseOutputViewModel(entry, extraGap);
                if (entry.Type == DiagnoseType.EndBracketOutput)
                {
                    IsBracketOpen = false;
                    EndTimeStamp  = entry.TimeStamp;
                }
                else
                {
                    DiagnoseOutputViewModels.Add(output);
                }
            }
            else
            {
                output.ProcessNewDiagnoseOutputEntry(entry, extraGap);
            }
            if (output.IsBracketOpen)
            {
                TotalDuration = _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel +
                                output.GapExtraGapAndTotalDuration;
            }
            else
            {
                _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel += output.GapExtraGapAndTotalDuration;
                TotalDuration = _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel;
            }
        }
コード例 #3
0
        public DiagnoseOutputViewModel(IDiagnoseOutputEntry diagnoseOutputEntry, long extraGap)
        {
            _diagnoseOutputViewModels = new ReactiveCollection<IDiagnoseOutputViewModel>();

            StartTimeStamp = diagnoseOutputEntry.TimeStamp;
            Gap = diagnoseOutputEntry.Gap;
            Duration = diagnoseOutputEntry.Duration;
            ProcessId = diagnoseOutputEntry.ProcessId;
            ThreadNumber = diagnoseOutputEntry.ThreadNumber;
            Type = diagnoseOutputEntry.Type;
            Domain = diagnoseOutputEntry.Domain;
            Application = diagnoseOutputEntry.Application;
            Component = diagnoseOutputEntry.Component;
            Module = diagnoseOutputEntry.Module;
            Code = diagnoseOutputEntry.Code;
            Text = diagnoseOutputEntry.Text;
            MetaInformation = diagnoseOutputEntry.MetaInformation;

            ExtraGap = extraGap;
            TotalDuration = diagnoseOutputEntry.Duration;
            _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel = diagnoseOutputEntry.Duration;

            if (diagnoseOutputEntry.Type == DiagnoseType.StartBracketOutput)
            {
                IsBracketOpen = true;
            }
        }
コード例 #4
0
        public ProcessViewModel(IDiagnoseOutputEntry entry, long totalDuration)
        {
            Threads       = new ReactiveCollection <IThreadViewModel>();
            ProcessId     = entry.ProcessId;
            TotalDuration = totalDuration;

            ProcessNewDiagnoseOutputEntry(entry);
        }
コード例 #5
0
        public ProcessViewModel(IDiagnoseOutputEntry entry, long totalDuration)
        {
            Threads = new ReactiveCollection<IThreadViewModel>();
            ProcessId = entry.ProcessId;
            TotalDuration = totalDuration;

            ProcessNewDiagnoseOutputEntry(entry);
        }
コード例 #6
0
        public ThreadViewModel(IDiagnoseOutputEntry diagnoseOutputEntry, long totalDuration)
        {
            DiagnoseOutputViewModels = new ReactiveCollection<IDiagnoseOutputViewModel>();
            ThreadNumber = diagnoseOutputEntry.ThreadNumber;
            TotalDuration = totalDuration;
            _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel = 0;
            _totalDurationWithoutExtraGap = 0;

            ProcessNewDiagnoseOutputEntry(diagnoseOutputEntry);
        }
コード例 #7
0
        public ThreadViewModel(IDiagnoseOutputEntry diagnoseOutputEntry, long totalDuration)
        {
            DiagnoseOutputViewModels = new ReactiveCollection <IDiagnoseOutputViewModel>();
            ThreadNumber             = diagnoseOutputEntry.ThreadNumber;
            TotalDuration            = totalDuration;
            _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel = 0;
            _totalDurationWithoutExtraGap = 0;

            ProcessNewDiagnoseOutputEntry(diagnoseOutputEntry);
        }
コード例 #8
0
 /// <summary>
 ///     Processes a new <see cref="IDiagnoseOutputEntry" />.
 /// </summary>
 /// <param name="diagnoseOutputEntry">
 ///     An <see cref="IDiagnoseOutputEntry" /> which should be processed by the <see cref="IInformationEngine" />.
 /// </param>
 /// <param name="sessionId">
 ///     The id of the <see cref="ISession" />.
 /// </param>
 public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry diagnoseOutputEntry, Guid sessionId)
 {
     if (Application.Current.Dispatcher.CheckAccess())
     {
         Sessions.Single(x => x.Id == sessionId).DiagnoseOutputEntries.Add(diagnoseOutputEntry);
     }
     else
     {
         Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                                                    new Action(
                                                        () => Sessions.Single(x => x.Id == sessionId)
                                                        .DiagnoseOutputEntries.Add(
                                                            diagnoseOutputEntry)));
     }
 }
コード例 #9
0
 /// <summary>
 ///     Processes a new <see cref="IDiagnoseOutputEntry" />.
 /// </summary>
 /// <param name="diagnoseOutputEntry">
 ///     An <see cref="IDiagnoseOutputEntry" /> which should be processed by the <see cref="IInformationEngine" />.
 /// </param>
 /// <param name="sessionId">
 ///     The id of the <see cref="ISession" />.
 /// </param>
 public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry diagnoseOutputEntry, Guid sessionId)
 {
     if (Application.Current.Dispatcher.CheckAccess())
     {
         Sessions.Single(x => x.Id == sessionId).DiagnoseOutputEntries.Add(diagnoseOutputEntry);
     }
     else
     {
         Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                                                    new Action(
                                                        () => Sessions.Single(x => x.Id == sessionId)
                                                                      .DiagnoseOutputEntries.Add(
                                                                          diagnoseOutputEntry)));
     }
 }
コード例 #10
0
        public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry diagnoseOutputEntry)
        {
            var thread = Threads.SingleOrDefault(x => x.ThreadNumber == diagnoseOutputEntry.ThreadNumber);

            if (thread == null)
            {
                thread = new ThreadViewModel(diagnoseOutputEntry, TotalDuration);
                Threads.Add(thread);
            }
            else
            {
                thread.ProcessNewDiagnoseOutputEntry(diagnoseOutputEntry);
            }

            TotalDuration = thread.TotalDuration;
        }
コード例 #11
0
        public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry diagnoseOutputEntry)
        {
            var thread = Threads.SingleOrDefault(x => x.ThreadNumber == diagnoseOutputEntry.ThreadNumber);

            if (thread == null)
            {
                thread = new ThreadViewModel(diagnoseOutputEntry, TotalDuration);
                Threads.Add(thread);
            }
            else
            {
                thread.ProcessNewDiagnoseOutputEntry(diagnoseOutputEntry);
            }

            TotalDuration = thread.TotalDuration;
        }
コード例 #12
0
        public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry diagnoseOutputEntry)
        {
            var process = Processes.SingleOrDefault(x => x.ProcessId == diagnoseOutputEntry.ProcessId);

            if (process == null)
            {
                process = new ProcessViewModel(diagnoseOutputEntry, TotalDuration);
                Processes.Add(process);
                ProcessIsShownChanged(process);
            }
            else
            {
                process.ProcessNewDiagnoseOutputEntry(diagnoseOutputEntry);
            }

            TotalDuration = process.TotalDuration;
            foreach (ProcessViewModel p in Processes)
            {
                p.UpdateTotalDuration(TotalDuration);
            }
        }
コード例 #13
0
        public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry entry)
        {
            var output = DiagnoseOutputViewModels.SingleOrDefault(x => x.IsBracketOpen);

            if (output == null)
            {
                output = new DiagnoseOutputViewModel(entry, TotalDuration - TotalDurationWithoutExtraGap);
                DiagnoseOutputViewModels.Add(output);
            }
            else
            {
                output.ProcessNewDiagnoseOutputEntry(entry, TotalDuration - TotalDurationWithoutExtraGap);
            }

            if (output.IsBracketOpen)
            {
                TotalDurationWithoutExtraGap = TotalDuration = _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel + output.GapExtraGapAndTotalDuration;
            }
            else
            {
                _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel += output.GapExtraGapAndTotalDuration;
                TotalDurationWithoutExtraGap = TotalDuration = _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel;
            }
        }
コード例 #14
0
 public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry diagnoseOutputEntry)
 {
     ((SequenceDiagram)View).ViewModel.ProcessNewDiagnoseOutputEntry(diagnoseOutputEntry);
 }
コード例 #15
0
        public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry diagnoseOutputEntry)
        {
            var process = Processes.SingleOrDefault(x => x.ProcessId == diagnoseOutputEntry.ProcessId);

            if (process == null)
            {
                process = new ProcessViewModel(diagnoseOutputEntry, TotalDuration);
                Processes.Add(process);
                ProcessIsShownChanged(process);
            }
            else
            {
                process.ProcessNewDiagnoseOutputEntry(diagnoseOutputEntry);
            }

            TotalDuration = process.TotalDuration;
            foreach (ProcessViewModel p in Processes)
            {
                p.UpdateTotalDuration(TotalDuration);
            }
        }
コード例 #16
0
 public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry diagnoseOutputEntry)
 {
     ((SequenceDiagram) View).ViewModel.ProcessNewDiagnoseOutputEntry(diagnoseOutputEntry);
 }
コード例 #17
0
        public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry entry, long extraGap)
        {
            var output = DiagnoseOutputViewModels.SingleOrDefault(x => x.IsBracketOpen);

            if (output == null)
            {
                output = new DiagnoseOutputViewModel(entry, extraGap);
                if (entry.Type == DiagnoseType.EndBracketOutput)
                {
                    IsBracketOpen = false;
                    EndTimeStamp = entry.TimeStamp;
                }
                else
                {
                    DiagnoseOutputViewModels.Add(output);
                }
            }
            else
            {
                output.ProcessNewDiagnoseOutputEntry(entry, extraGap);
            }
            if (output.IsBracketOpen)
            {
                TotalDuration = _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel +
                                output.GapExtraGapAndTotalDuration;
            }
            else
            {
                _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel += output.GapExtraGapAndTotalDuration;
                TotalDuration = _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel;
            }
        }
コード例 #18
0
        public void ProcessNewDiagnoseOutputEntry(IDiagnoseOutputEntry entry)
        {
            var output = DiagnoseOutputViewModels.SingleOrDefault(x => x.IsBracketOpen);

            if (output == null)
            {
                output = new DiagnoseOutputViewModel(entry, TotalDuration - TotalDurationWithoutExtraGap);
                DiagnoseOutputViewModels.Add(output);
            }
            else
            {
                output.ProcessNewDiagnoseOutputEntry(entry, TotalDuration - TotalDurationWithoutExtraGap);
            }

            if(output.IsBracketOpen)
            {
                TotalDurationWithoutExtraGap = TotalDuration = _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel + output.GapExtraGapAndTotalDuration;
            }
            else
            {
                _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel += output.GapExtraGapAndTotalDuration;
                TotalDurationWithoutExtraGap = TotalDuration = _totalDurationWithoutLastOpenBracketDiagnoseOutputViewModel;
            }
        }