26ff8d9b4f
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
4.9 KiB
4.9 KiB
Tasks: Setup Solution Foundation
Phase 1: Options Classes
-
Create DataAccessOptions class
- Location:
NEW/src/JdeScoping.Core/Options/DataAccessOptions.cs - Properties: CommandTimeoutSeconds, EnableDetailedLogging
- Validation: Verify binds from appsettings.json
- Location:
-
Create DataSyncOptions class
- Location:
NEW/src/JdeScoping.Core/Options/DataSyncOptions.cs - Properties: MassRefreshCronSchedule, DailyRefreshCronSchedule, HourlyRefreshCronSchedule, MaxConcurrentUpdates
- Validation: Verify binds from appsettings.json
- Location:
-
Create AuthOptions class
- Location:
NEW/src/JdeScoping.Core/Options/AuthOptions.cs - Properties: LdapUrl, LdapGroup, CookieExpirationMinutes
- Validation: Verify binds from appsettings.json
- Location:
-
Create ExcelExportOptions class
- Location:
NEW/src/JdeScoping.Core/Options/ExcelExportOptions.cs - Properties: TempDirectory, MaxRowsPerSheet, DefaultDateFormat
- Validation: Verify binds from appsettings.json
- Location:
-
Create SearchProcessingOptions class
- Location:
NEW/src/JdeScoping.Core/Options/SearchProcessingOptions.cs - Properties: PollingIntervalSeconds, MaxConcurrentSearches, SearchTimeoutMinutes
- Validation: Verify binds from appsettings.json
- Location:
Phase 2: Extension Methods
-
Create DataAccessServiceExtensions class
- Location:
NEW/src/JdeScoping.Core/Extensions/DataAccessServiceExtensions.cs - Method: AddDataAccess(IServiceCollection, IConfiguration)
- Registers: DataAccessOptions, placeholder ILotFinderRepository
- Validation: Services resolve without error
- Location:
-
Create DataSyncServiceExtensions class
- Location:
NEW/src/JdeScoping.Core/Extensions/DataSyncServiceExtensions.cs - Method: AddDataSync(IServiceCollection, IConfiguration)
- Registers: DataSyncOptions, placeholder IUpdateProcessor
- Validation: Services resolve without error
- Location:
-
Create AuthServiceExtensions class
- Location:
NEW/src/JdeScoping.Core/Extensions/AuthServiceExtensions.cs - Method: AddAuth(IServiceCollection, IConfiguration)
- Registers: AuthOptions, authentication services
- Validation: Services resolve without error
- Location:
-
Create ExcelExportServiceExtensions class
- Location:
NEW/src/JdeScoping.Core/Extensions/ExcelExportServiceExtensions.cs - Method: AddExcelExport(IServiceCollection, IConfiguration)
- Registers: ExcelExportOptions, placeholder IExcelWriter
- Validation: Services resolve without error
- Location:
-
Create SearchProcessingServiceExtensions class
- Location:
NEW/src/JdeScoping.Core/Extensions/SearchProcessingServiceExtensions.cs - Method: AddSearchProcessing(IServiceCollection, IConfiguration)
- Registers: SearchProcessingOptions, placeholder ISearchProcessor
- Validation: Services resolve without error
- Location:
Phase 3: Configuration Files
-
Update appsettings.json with all configuration sections
- Location:
NEW/src/JdeScoping.Host/appsettings.json - Sections: ConnectionStrings, DataAccess, DataSync, Auth, ExcelExport, SearchProcessing
- Validation: JSON parses without error
- Location:
-
Create appsettings.Development.json with dev overrides
- Location:
NEW/src/JdeScoping.Host/appsettings.Development.json - Overrides: Local SQL Server connection, detailed logging, disabled sync schedules
- Validation: JSON parses without error
- Location:
Phase 4: Program.cs Update
-
Update Program.cs with service registration
- Location:
NEW/src/JdeScoping.Host/Program.cs - Call all AddXxx extension methods
- Add database migration at startup
- Validation: Application starts without DI errors
- Location:
-
Add startup validation for critical services
- Location:
NEW/src/JdeScoping.Host/Program.cs - Validate: GetRequiredService for IOptions classes
- Validation: Startup fails fast on misconfiguration
- Location:
Phase 5: Project References
-
Add NuGet packages to JdeScoping.Core
- Packages: Microsoft.Extensions.Options, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Extensions.Configuration.Abstractions, Microsoft.Extensions.Configuration.Binder, Microsoft.Extensions.Options.ConfigurationExtensions
- Validation:
dotnet buildsucceeds
-
Add NuGet packages to JdeScoping.Host
- Packages: Microsoft.Data.SqlClient, Dapper, EPPlus, DbUp-SqlServer, Quartz (or similar scheduler)
- Validation:
dotnet buildsucceeds
-
Add project reference from Host to Core
- Reference: JdeScoping.Host references JdeScoping.Core
- Validation:
dotnet buildsucceeds
Phase 6: Verification
-
Run full solution build
- Command:
dotnet build NEW/JdeScoping.sln - Validation: Build succeeds with no errors
- Command:
-
Verify configuration binding
- Test: Startup resolves IOptions etc.
- Validation: All options have expected default values
-
Run openspec validation
- Command:
openspec validate setup-solution-foundation --strict - Validation: No errors reported
- Command: