using System.CommandLine; using Gpulse.WCT.DataAnalyzer.Core.Application; namespace Gpulse.WCT.DataAnalyzer.Commands; /// /// 从本地解析库生成正式发布库。 /// public class AggregateCommand : Command { public AggregateCommand(AggregationService aggregationService) : base("aggregate", "Aggregate local log data into the release database") { var rebuildOption = new Option( "--rebuild", () => true, "Rebuild the release table before inserting aggregated records"); AddOption(rebuildOption); this.SetHandler(async rebuild => { try { var report = await aggregationService.AggregateAsync(rebuild); Console.WriteLine($"Aggregated {report.LocalRecordCount} local Ploss records into {report.ReleaseRecordCount} release records."); } catch (Exception ex) { Console.WriteLine($"Aggregation failed: {ex.Message}"); } }, rebuildOption); } }