diagnosticsModule/Private/DataTypes.ps1
#################################### # TestResult Data type #################################### Add-Type -AssemblyName System.Web; Add-Type -AssemblyName System.Collections; Add-Type -Language CSharp @" using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Management.Automation; public class TestResult { public string Name; public string ComputerName; public ResultType Result; public string Detail; public Hashtable Output; public string ExceptionMessage; public string Exception; public TestResult(string name) { Name = name; Result = ResultType.Pass; } } public class TestResultsContainer { public List<TestResult> AllTests { get; set; } public List<string> ReachableServers { get; set; } public List<string> UnreachableServers { get; set; } public TestResultsContainer() { AllTests = new List<TestResult>(); } public TestResultsContainer(TestResult[] newResults, string[] reachableServers, string[] unreachableServers) { AllTests = new List<TestResult>(); AllTests.AddRange(newResults); ReachableServers = new List<string>(); ReachableServers.AddRange(reachableServers); UnreachableServers = new List<string>(); UnreachableServers.AddRange(unreachableServers); } public void Add(TestResult newResult) { AllTests.Add(newResult); } public void Add(TestResult[] newResults) { AllTests.AddRange(newResults); } public IEnumerable<TestResult> this[string testName] { get { return AllTests.Where(m => m.Name == testName).ToList(); } } public IEnumerable<TestResult> GetTestsByComputer(string computerName) { return AllTests.Where(m => m.ComputerName == computerName).ToList(); } public IEnumerable<TestResult> PassedTests { get { return AllTests.Where(m => m.Result == ResultType.Pass).ToList(); } } public IEnumerable<TestResult> WarningTests { get { return AllTests.Where(m => m.Result == ResultType.Warning).ToList(); } } public IEnumerable<TestResult> FailedTests { get { return AllTests.Where(m => m.Result == ResultType.Fail).ToList(); } } public IEnumerable<TestResult> ErrorTests { get { return AllTests.Where(m => m.Result == ResultType.Error).ToList(); } } public IEnumerable<TestResult> NotRunTests { get { return AllTests.Where(m => m.Result == ResultType.NotRun).ToList(); } } } public enum ResultType { Pass, NotRun, Fail, Error, Warning } public enum OSVersion { WS2012, WS2012R2, WS2016, Unknown } "@; #################################### # AdHealthAgentInformation Data type #################################### Add-Type -Language CSharp @" public class AdHealthAgentInformation { public string Version; public string UpdateState; public string LastUpdateAttemptVersion; public System.DateTime LastUpdateAttemptTime; public int NumberOfFailedAttempts; public string InstallerExitCode; } "@; |