docs: add XML documentation and ConfigManager implementation plans

Add comprehensive XML documentation (param/returns tags) across 132 source
files to improve IntelliSense and API discoverability. Include ConfigManager
design documents and implementation plans for phases 1-9.
This commit is contained in:
Joseph Doherty
2026-01-20 02:26:26 -05:00
parent c044337539
commit d49330e697
136 changed files with 9181 additions and 4 deletions
@@ -7,9 +7,15 @@ namespace JdeScoping.Core.Models.Auth;
/// </summary>
public class LoginModel
{
/// <summary>
/// Gets or sets the user's login username.
/// </summary>
[Required(ErrorMessage = "Username is required")]
public string Username { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the user's login password.
/// </summary>
[Required(ErrorMessage = "Password is required")]
public string Password { get; set; } = string.Empty;
}
@@ -6,20 +6,34 @@ namespace JdeScoping.Core.Models.Infrastructure;
/// </summary>
public class DataUpdateDto
{
/// <summary>The start time of the data update.</summary>
public DateTime StartDt { get; set; }
/// <summary>The end time of the data update.</summary>
public DateTime? EndDt { get; set; }
/// <summary>The number of branch records updated.</summary>
public int BranchRecords { get; set; }
/// <summary>The number of profit center records updated.</summary>
public int ProfitCenterRecords { get; set; }
/// <summary>The number of work center records updated.</summary>
public int WorkCenterRecords { get; set; }
/// <summary>The number of organizational hierarchy records updated.</summary>
public int OrgHierarchyRecords { get; set; }
/// <summary>The number of status code records updated.</summary>
public int StatusCodeRecords { get; set; }
/// <summary>The number of user records updated.</summary>
public int UserRecords { get; set; }
/// <summary>The number of item records updated.</summary>
public int ItemRecords { get; set; }
/// <summary>The number of lot records updated.</summary>
public int LotRecords { get; set; }
/// <summary>The number of work order records updated.</summary>
public int WorkOrderRecords { get; set; }
/// <summary>The number of work order step records updated.</summary>
public int WorkOrderStepRecords { get; set; }
/// <summary>The number of work order component records updated.</summary>
public int WorkOrderComponentRecords { get; set; }
/// <summary>Whether the data update was successful.</summary>
public bool WasSuccessful { get; set; }
}
@@ -5,16 +5,28 @@ namespace JdeScoping.Core.Models.SearchResults;
/// </summary>
public sealed class MisNonMatchSearchResult
{
/// <summary>The work center code.</summary>
public string WorkCenterCode { get; init; } = string.Empty;
/// <summary>The work order number.</summary>
public long WorkOrderNumber { get; init; }
/// <summary>The work order start date.</summary>
public DateTime WorkOrderStartDate { get; init; }
/// <summary>The job step number.</summary>
public decimal JobStepNumber { get; init; }
/// <summary>The job step description.</summary>
public string JobStepDescription { get; init; } = string.Empty;
/// <summary>The job step end date.</summary>
public DateTime? JobStepEndDate { get; init; }
/// <summary>The function code.</summary>
public string FunctionCode { get; init; } = string.Empty;
/// <summary>Indicates whether the job step was added.</summary>
public bool WasJobStepAdded { get; init; }
/// <summary>The matched job step number, if any.</summary>
public decimal? MatchedJobStepNumber { get; init; }
/// <summary>The item number.</summary>
public string ItemNumber { get; init; } = string.Empty;
/// <summary>The item description.</summary>
public string ItemDescription { get; init; } = string.Empty;
/// <summary>The routing type.</summary>
public string RoutingType { get; init; } = string.Empty;
}
@@ -5,23 +5,42 @@ namespace JdeScoping.Core.Models.SearchResults;
/// </summary>
public sealed class MisSearchResult
{
/// <summary>The item number.</summary>
public string ItemNumber { get; init; } = string.Empty;
/// <summary>The item description.</summary>
public string ItemDescription { get; init; } = string.Empty;
/// <summary>The sequence number.</summary>
public string SequenceNumber { get; init; } = string.Empty;
/// <summary>The MIS (Manufacturing Instruction Sheet) number.</summary>
public string MisNumber { get; init; } = string.Empty;
/// <summary>The revision ID.</summary>
public string RevId { get; init; } = string.Empty;
/// <summary>The status.</summary>
public string Status { get; init; } = string.Empty;
/// <summary>The release date.</summary>
public DateTime? ReleaseDate { get; init; }
/// <summary>The branch code.</summary>
public string BranchCode { get; init; } = string.Empty;
/// <summary>The job step sequence number.</summary>
public decimal JobStepSequenceNumber { get; init; }
/// <summary>The matched sequence number.</summary>
public decimal? MatchedSequenceNumber { get; init; }
/// <summary>Whether the routing matches.</summary>
public bool RoutingMatch { get; init; }
/// <summary>Whether the master matches.</summary>
public bool MasterMatch { get; init; }
/// <summary>The function operation description.</summary>
public string FunctionOperationDescription { get; init; } = string.Empty;
/// <summary>The character number.</summary>
public string CharNumber { get; init; } = string.Empty;
/// <summary>The test description.</summary>
public string TestDescription { get; init; } = string.Empty;
/// <summary>The sampling type.</summary>
public string SamplingType { get; init; } = string.Empty;
/// <summary>The sampling value.</summary>
public string SamplingValue { get; init; } = string.Empty;
/// <summary>The tools and gauges required.</summary>
public string ToolsGauges { get; init; } = string.Empty;
/// <summary>The work instructions.</summary>
public string WorkInstructions { get; init; } = string.Empty;
}
@@ -5,15 +5,25 @@ namespace JdeScoping.Core.Models.SearchResults;
/// </summary>
public class SearchModel
{
/// <summary>The unique identifier for the search.</summary>
public int Id { get; set; }
/// <summary>The username of the user who submitted the search.</summary>
public string UserName { get; set; } = string.Empty;
/// <summary>The name of the search.</summary>
public string Name { get; set; } = string.Empty;
/// <summary>The date and time the search was submitted.</summary>
public DateTime? SubmitDt { get; set; }
/// <summary>The date and time when search execution started.</summary>
public DateTime? StartDt { get; set; }
/// <summary>The date and time when search execution ended.</summary>
public DateTime? EndDt { get; set; }
/// <summary>Indicates whether MIS data extraction is enabled for this search.</summary>
public bool ExtractMisData { get; set; }
/// <summary>The main search results.</summary>
public List<SearchResult> Results { get; set; } = [];
/// <summary>The MIS-specific search results.</summary>
public List<MisSearchResult> MisResults { get; set; } = [];
/// <summary>The MIS non-match investigation results.</summary>
public List<MisNonMatchSearchResult> MisNonMatchResults { get; set; } = [];
}
@@ -5,30 +5,119 @@ namespace JdeScoping.Core.Models.SearchResults;
/// </summary>
public sealed class SearchResult
{
/// <summary>
/// Work order number.
/// </summary>
public long WorkOrderNumber { get; init; }
/// <summary>
/// Branch code for the work order.
/// </summary>
public string WorkOrderBranchCode { get; init; } = string.Empty;
/// <summary>
/// Lot number.
/// </summary>
public string LotNumber { get; init; } = string.Empty;
/// <summary>
/// Item number.
/// </summary>
public string ItemNumber { get; init; } = string.Empty;
/// <summary>
/// Planning family.
/// </summary>
public string PlanningFamily { get; init; } = string.Empty;
/// <summary>
/// Stocking type.
/// </summary>
public string StockingType { get; init; } = string.Empty;
/// <summary>
/// Order quantity.
/// </summary>
public decimal OrderQuantity { get; init; }
/// <summary>
/// Held quantity.
/// </summary>
public decimal HeldQuantity { get; init; }
/// <summary>
/// Scrapped quantity.
/// </summary>
public decimal ScrappedQuantity { get; init; }
/// <summary>
/// Shipped quantity.
/// </summary>
public decimal ShippedQuantity { get; init; }
/// <summary>
/// Branch code for the step.
/// </summary>
public string StepBranchCode { get; init; } = string.Empty;
/// <summary>
/// Step number.
/// </summary>
public decimal StepNumber { get; init; }
/// <summary>
/// Description of the step.
/// </summary>
public string StepDescription { get; init; } = string.Empty;
/// <summary>
/// Function operation description.
/// </summary>
public string FunctionOperationDescription { get; init; } = string.Empty;
/// <summary>
/// Step update date and time.
/// </summary>
public DateTime StepUpdateDt { get; init; }
/// <summary>
/// Status code.
/// </summary>
public string StatusCode { get; init; } = string.Empty;
/// <summary>
/// Status description.
/// </summary>
public string StatusDescription { get; init; } = string.Empty;
/// <summary>
/// Status update date and time.
/// </summary>
public DateTime? StatusUpdateDt { get; init; }
// Inclusion flags
/// <summary>
/// Indicates if manually specified in search criteria.
/// </summary>
public bool ManuallySpecified { get; init; }
/// <summary>
/// Indicates if part of a split order.
/// </summary>
public bool SplitOrder { get; init; }
/// <summary>
/// Indicates if flagged for cardex inclusion.
/// </summary>
public bool Cardex { get; init; }
/// <summary>
/// Indicates if included via parts list.
/// </summary>
public bool PartsList { get; init; }
/// <summary>
/// Indicates if flagged for inclusion.
/// </summary>
public bool Flagged { get; init; }
/// <summary>