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; } }
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); } }