using OrpaonVision.Core.Configuration; using OrpaonVision.Core.Configuration.Contracts; using OrpaonVision.Core.Results; namespace OrpaonVision.ConfigApp.Configuration.Services; /// /// 规则配置应用服务。 /// public sealed class RuleConfigurationAppService : IRuleConfigurationAppService { private readonly IRuleConfigurationStore _ruleConfigurationStore; /// /// 构造函数。 /// public RuleConfigurationAppService(IRuleConfigurationStore ruleConfigurationStore) { _ruleConfigurationStore = ruleConfigurationStore; } /// public Task SaveDraftAsync(RuleConfigurationDraftDto draft, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Task.FromResult(_ruleConfigurationStore.SaveDraft(draft)); } /// public Task> PublishAsync(string productTypeCode, string publishedBy, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Task.FromResult(_ruleConfigurationStore.Publish(productTypeCode, publishedBy)); } /// public Task> GetLatestPublishedVersionAsync(string productTypeCode, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Task.FromResult(_ruleConfigurationStore.GetLatestPublishedVersion(productTypeCode)); } /// public Task> CompareVersionsAsync(string productTypeCode, string sourceVersionNo, string targetVersionNo, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Task.FromResult(_ruleConfigurationStore.CompareVersions(productTypeCode, sourceVersionNo, targetVersionNo)); } /// public Task> RollbackToVersionAsync(string productTypeCode, string targetVersionNo, string rolledBackBy, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Task.FromResult(_ruleConfigurationStore.RollbackToVersion(productTypeCode, targetVersionNo, rolledBackBy)); } /// public Task DisableVersionAsync(string productTypeCode, string versionNo, string disabledBy, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Task.FromResult(_ruleConfigurationStore.DisableVersion(productTypeCode, versionNo, disabledBy)); } /// public Task> GetVersionDetailAsync(string productTypeCode, string versionNo, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Task.FromResult(_ruleConfigurationStore.GetVersionDetail(productTypeCode, versionNo)); } /// public Task>> GetVersionPagedListAsync(string productTypeCode, int pageIndex = 1, int pageSize = 20, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Task.FromResult(_ruleConfigurationStore.GetVersionPagedList(productTypeCode, pageIndex, pageSize)); } /// public Task>> GetRecentAuditsAsync(string productTypeCode, int take = 20, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return Task.FromResult(_ruleConfigurationStore.GetRecentAudits(productTypeCode, take)); } }