Files
Ai/TrafagSalesExporter/Services/DataSources/DataSourceCredentials.cs
Claude 82ac7df0ec DataSourceAdapter-Pattern + SiteExportService schlanker + Page-Services Scoped
- IDataSourceAdapter mit 3 Implementierungen (HANA, SAP_GATEWAY, MANUAL_EXCEL)
  und DataSourceAdapterResolver ersetzen das if/else auf ConnectionKind.
- SiteExportService von 338 auf 187 Zeilen reduziert: Pipeline
  Resolve -> Fetch -> Transform -> Excel -> Central -> SharePoint.
- Page-Services auf Scoped (per Blazor-Circuit); Orchestrator bleibt Singleton
  fuer geteilten Export-Status.
2026-04-17 12:11:35 +00:00

25 lines
851 B
C#

using TrafagSalesExporter.Models;
namespace TrafagSalesExporter.Services.DataSources;
internal static class DataSourceCredentials
{
public static (string Username, string Password) Resolve(Site site, SourceSystemDefinition sourceDefinition)
=> (FirstNonEmpty(site.UsernameOverride, sourceDefinition.CentralUsername),
FirstNonEmpty(site.PasswordOverride, sourceDefinition.CentralPassword));
public static string ResolveSapServiceUrl(Site site, SourceSystemDefinition sourceDefinition)
=> FirstNonEmpty(site.SapServiceUrl, sourceDefinition.CentralServiceUrl);
public static string FirstNonEmpty(params string[] values)
{
foreach (var value in values)
{
if (!string.IsNullOrWhiteSpace(value))
return value.Trim();
}
return string.Empty;
}
}