using System.Collections.Generic; namespace Disco.Plugins.ADCompare.Models { public class UserComparisonResult { public string UserId { get; set; } public string DisplayName { get; set; } public bool UserFoundInAD { get; set; } public bool ADAccountDisabled { get; set; } public List Mismatches { get; set; } = new List(); public bool HasMismatches => Mismatches.Count > 0; } public class FieldMismatch { public string FieldName { get; set; } public string DiscoValue { get; set; } public string ADValue { get; set; } public FieldMismatch(string fieldName, string discoValue, string adValue) { FieldName = fieldName; DiscoValue = discoValue; ADValue = adValue; } } public class ComparisonSummary { public int TotalDiscoUsers { get; set; } public int UsersCompared { get; set; } public int UsersNotFoundInAD { get; set; } public int UsersWithMismatches { get; set; } public int UsersInSync { get; set; } public int ADAccountsDisabled { get; set; } public List Results { get; set; } = new List(); /// /// Filter to only show results with issues (mismatches, not found, or disabled) /// public List IssuesOnly { get { return Results.FindAll(r => r.HasMismatches || !r.UserFoundInAD || r.ADAccountDisabled); } } } }