Restructure solution layout by module

This commit is contained in:
master
2025-10-28 15:10:40 +02:00
parent 95daa159c4
commit d870da18ce
4103 changed files with 192899 additions and 187024 deletions

View File

@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
namespace StellaOps.Concelier.Connector.Vndr.Adobe.Configuration;
public sealed class AdobeOptions
{
public const string HttpClientName = "source-vndr-adobe";
public Uri IndexUri { get; set; } = new("https://helpx.adobe.com/security/security-bulletin.html");
public List<Uri> AdditionalIndexUris { get; } = new();
public TimeSpan InitialBackfill { get; set; } = TimeSpan.FromDays(90);
public TimeSpan WindowOverlap { get; set; } = TimeSpan.FromDays(3);
public int MaxEntriesPerFetch { get; set; } = 100;
public void Validate()
{
if (IndexUri is null || !IndexUri.IsAbsoluteUri)
{
throw new ArgumentException("IndexUri must be an absolute URI.", nameof(IndexUri));
}
foreach (var uri in AdditionalIndexUris)
{
if (uri is null || !uri.IsAbsoluteUri)
{
throw new ArgumentException("Additional index URIs must be absolute.", nameof(AdditionalIndexUris));
}
}
if (InitialBackfill <= TimeSpan.Zero)
{
throw new ArgumentException("InitialBackfill must be positive.", nameof(InitialBackfill));
}
if (WindowOverlap < TimeSpan.Zero)
{
throw new ArgumentException("WindowOverlap cannot be negative.", nameof(WindowOverlap));
}
if (MaxEntriesPerFetch <= 0)
{
throw new ArgumentException("MaxEntriesPerFetch must be positive.", nameof(MaxEntriesPerFetch));
}
}
}