using OI.Metrology.Shared.Models; using OI.Metrology.Shared.Models.Stateless; using OI.Metrology.Wafer.Counter.Models; namespace OI.Metrology.Wafer.Counter.Repository; public class AzureDevOpsRepository : IAzureDevOpsRepository { private readonly AppSettings _AppSettings; public AzureDevOpsRepository(AppSettings appSettings) => _AppSettings = appSettings; void IAzureDevOpsRepository.Save(PollValue pollValue) { ArgumentNullException.ThrowIfNull(pollValue.Id); ArgumentNullException.ThrowIfNull(pollValue.Page); string directory = Path.Combine(_AppSettings.AzureDevOpsDestinationDirectory, pollValue.Page, pollValue.Id.Value.ToString()); if (!Directory.Exists(directory)) _ = Directory.CreateDirectory(directory); File.WriteAllText(Path.Combine(directory, $"{pollValue.Time}.json"), pollValue.Json is null ? string.Empty : pollValue.Json); } }