コード例 #1
0
        private static void SortDiagnostics(DiagnosticsType diagnostics)
        {
            if (diagnostics.CrashDumpSource != null)
            {
                if (diagnostics.CrashDumpSource.Destinations != null)
                {
                    diagnostics.CrashDumpSource.Destinations.AzureBlob  = SortAzureBlob(diagnostics.CrashDumpSource.Destinations.AzureBlob);
                    diagnostics.CrashDumpSource.Destinations.FileStore  = SortFileStore(diagnostics.CrashDumpSource.Destinations.FileStore);
                    diagnostics.CrashDumpSource.Destinations.LocalStore = SortLocalStore(diagnostics.CrashDumpSource.Destinations.LocalStore);
                }

                diagnostics.CrashDumpSource.Parameters = SortParameters(diagnostics.CrashDumpSource.Parameters);
            }
            if (diagnostics.ETWSource != null)
            {
                if (diagnostics.ETWSource.Destinations != null)
                {
                    diagnostics.ETWSource.Destinations.AzureBlob  = SortAzureBlob(diagnostics.ETWSource.Destinations.AzureBlob);
                    diagnostics.ETWSource.Destinations.FileStore  = SortFileStore(diagnostics.ETWSource.Destinations.FileStore);
                    diagnostics.ETWSource.Destinations.LocalStore = SortLocalStore(diagnostics.ETWSource.Destinations.LocalStore);
                }

                diagnostics.ETWSource.Parameters = SortParameters(diagnostics.ETWSource.Parameters);
            }
            if (diagnostics.FolderSource != null)
            {
                diagnostics.FolderSource = SortFolderSource(diagnostics.FolderSource);
                foreach (DiagnosticsTypeFolderSource folderSource in diagnostics.FolderSource)
                {
                    if (folderSource.Destinations != null)
                    {
                        folderSource.Destinations.AzureBlob  = SortAzureBlob(folderSource.Destinations.AzureBlob);
                        folderSource.Destinations.FileStore  = SortFileStore(folderSource.Destinations.FileStore);
                        folderSource.Destinations.LocalStore = SortLocalStore(folderSource.Destinations.LocalStore);
                    }

                    folderSource.Parameters = SortParameters(folderSource.Parameters);
                }
            }
        }
コード例 #2
0
        private void ValidateApplicationManifestDiagnostics(DiagnosticsType diagnostics)
        {
            if (diagnostics == null)
            {
                return;
            }

            if (diagnostics.CrashDumpSource != null)
            {
                ValidateType <bool>(
                    diagnostics.CrashDumpSource.IsEnabled,
                    CrashDumpSource,
                    null,
                    IsEnabled);
                if (diagnostics.CrashDumpSource.Destinations != null)
                {
                    ValidateAzureBlob(diagnostics.CrashDumpSource.Destinations.AzureBlob, CrashDumpSource);
                    ValidateFileStore(diagnostics.CrashDumpSource.Destinations.FileStore, CrashDumpSource);
                    ValidateLocalStore(diagnostics.CrashDumpSource.Destinations.LocalStore, CrashDumpSource);
                }
            }
            if (diagnostics.ETWSource != null)
            {
                ValidateType <bool>(
                    diagnostics.ETWSource.IsEnabled,
                    ETWSource,
                    null,
                    IsEnabled);
                if (diagnostics.ETWSource.Destinations != null)
                {
                    ValidateAzureBlob(diagnostics.ETWSource.Destinations.AzureBlob, ETWSource);
                    ValidateFileStore(diagnostics.ETWSource.Destinations.FileStore, ETWSource);
                    ValidateLocalStore(diagnostics.ETWSource.Destinations.LocalStore, ETWSource);
                }
            }
            if (diagnostics.FolderSource != null)
            {
                foreach (DiagnosticsTypeFolderSource folderSource in diagnostics.FolderSource)
                {
                    ValidateType <bool>(
                        folderSource.IsEnabled,
                        FolderSource,
                        null,
                        IsEnabled);
                    ValidateRelativePath(
                        folderSource.RelativeFolderPath,
                        FolderSource,
                        null,
                        RelativeFolderPath);
                    ValidatePositiveInteger(
                        folderSource.DataDeletionAgeInDays,
                        FolderSource,
                        null,
                        DataDeletionAgeInDays);
                    if (folderSource.Destinations != null)
                    {
                        ValidateAzureBlob(folderSource.Destinations.AzureBlob, FolderSource);
                        ValidateFileStore(folderSource.Destinations.FileStore, FolderSource);
                        ValidateLocalStore(folderSource.Destinations.LocalStore, FolderSource);
                    }
                }
            }
        }