示例#1
0
        private void ListViewContextsItems_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            if (!_sortingContexts)
            {
                _sortingContexts = true;
                _contextListSorter.SortLastColumn();

                // try to reselect the previously selected context
                if (_reselectContextId != UserSettings.InvalidContextId)
                {
                    StackHashStatus status = this.DataContext as StackHashStatus;
                    if (status != null)
                    {
                        foreach (StackHashContextStatus contextStatus in status.ContextStatusCollection)
                        {
                            if (contextStatus.ContextId == _reselectContextId)
                            {
                                listViewContexts.SelectedItem = contextStatus;
                                break;
                            }
                        }
                    }
                }

                _sortingContexts = false;
            }
        }
示例#2
0
        private void DumpStatus(StackHashStatus status)
        {
            if (status == null)
            {
                return;
            }

            try
            {
                DiagnosticsHelper.LogMessage(DiagSeverity.Information, "Dumping Service Status...");
                DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.InvariantCulture, ". Initialization failed: {0}", status.InitializationFailed));
                DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.InvariantCulture, ". Host running in test mode: {0}", status.HostRunningInTestMode));

                foreach (StackHashContextStatus contextStatus in status.ContextStatusCollection)
                {
                    DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.InvariantCulture, ".. Active: {0}", contextStatus.IsActive));
                    DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.InvariantCulture, ".. Last synchronization logon failed: {0}", contextStatus.LastSynchronizationLogOnFailed));
                    DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.InvariantCulture, ".. Last synchronization login service error: {0}", contextStatus.LastSynchronizationLogOnServiceError));
                    DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.InvariantCulture, ".. Last synchronization logon exception: {0}", contextStatus.LastSynchronizationLogOnException));
                    DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.InvariantCulture, ".. Current error: {0}", contextStatus.CurrentError));
                    DiagnosticsHelper.LogMessage(DiagSeverity.Information, string.Format(CultureInfo.InvariantCulture, ".. Last context exception: {0}", contextStatus.LastContextException));

                    foreach (StackHashTaskStatus taskStatus in contextStatus.TaskStatusCollection)
                    {
                        DiagnosticsHelper.LogMessage(DiagSeverity.Information,
                                                     string.Format(CultureInfo.InvariantCulture,
                                                                   "... Type: {0}, State: {1}, Last Exception: {2}, Last Duration: {3}, Run Count: {4}, Success: {5}, Failure: {6}, Last Started: {7}, Last Succeeded: {8}, Last Failed: {9}",
                                                                   taskStatus.TaskType,
                                                                   taskStatus.TaskState,
                                                                   taskStatus.LastException,
                                                                   taskStatus.LastDurationInSeconds,
                                                                   taskStatus.RunCount,
                                                                   taskStatus.SuccessCount,
                                                                   taskStatus.FailedCount,
                                                                   taskStatus.LastStartedTimeUtc,
                                                                   taskStatus.LastSuccessfulRunTimeUtc,
                                                                   taskStatus.LastFailedRunTimeUtc));
                    }
                }
            }
            catch (Exception ex)
            {
                DiagnosticsHelper.LogException(DiagSeverity.Warning,
                                               "Failed to dump service status",
                                               ex);
            }
        }