52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
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<FieldMismatch> Mismatches { get; set; } = new List<FieldMismatch>();
|
|
|
|
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<UserComparisonResult> Results { get; set; } = new List<UserComparisonResult>();
|
|
|
|
/// <summary>
|
|
/// Filter to only show results with issues (mismatches, not found, or disabled)
|
|
/// </summary>
|
|
public List<UserComparisonResult> IssuesOnly
|
|
{
|
|
get
|
|
{
|
|
return Results.FindAll(r => r.HasMismatches || !r.UserFoundInAD || r.ADAccountDisabled);
|
|
}
|
|
}
|
|
}
|
|
}
|