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);
}
}