private bool _disposedValue; // Dient zur Erkennung redundanter Aufrufe. /// <summary> /// Initialisiert eine neue Instanz der <see cref="RequestClient"/> Klasse. /// </summary> /// <param name="sender">Informationen über den Absender</param> /// <param name="company">Informationen über die Firma, die die Daten abfragt</param> /// <param name="isTest">Soll das Test-System verwendet werden?</param> /// <param name="encryptionHandler">Das zu verwendende Verschlüsselungsverfahren</param> /// <param name="validatorFactory">Der zu verwendende eXTra-Verfahren-Validator</param> /// <param name="messageValidator">Der zu verwendende Prüfer für die DSVV-Meldungen</param> /// <param name="httpClientFactory">Eine Factory über die ein <see cref="HttpClient"/> erstellt werden kann</param> public RequestClient(AbsenderOnlineversand sender, Firma company, bool isTest, IExtraEncryptionHandler encryptionHandler, IDrvDsvExtra14ValidatorFactory validatorFactory, IRequestMessageValidator messageValidator, IHttpClientFactory httpClientFactory) { _encryptionHandler = encryptionHandler; _validatorFactory = validatorFactory; _messageValidator = messageValidator; _isTest = isTest; _company = company; _sender = sender; _httpClient = new Lazy <HttpClient>(httpClientFactory.CreateHttpClient); }
static CustomerData() { var configBuilder = new ConfigurationBuilder() .AddJsonFile("test-data.json", true); var testDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "DATALINE", "Test-Daten"); if (Directory.Exists(testDataPath)) { configBuilder = configBuilder.AddJsonFile(Path.Combine(testDataPath, "dsrv-komserver-vsnr-test.json"), true); } var config = configBuilder .Build(); var senderCertData = config.GetSection("sender")["certificate"]; if (string.IsNullOrEmpty(senderCertData)) { throw new Exception("Es wurde kein Absender-Zertifikat hinterlegt"); } _senderCertificate = new Lazy <X509Certificate2>(() => new X509Certificate2(Convert.FromBase64String(senderCertData), (string)null, X509KeyStorageFlags.Exportable)); var senderContact = config.GetSection("sender").GetSection("contact"); Sender = new AbsenderOnlineversand { Betriebsnummer = senderContact["betriebsnummer"], Name1 = senderContact["name1"], Name2 = senderContact["name2"], Strasse = senderContact["strasse"], PLZ = senderContact["plz"], Ort = senderContact["ort"], Ansprechpartner = senderContact["ansprechpartner"], IstFrau = senderContact.GetValue <bool>("istFrau"), Telefon = senderContact["telefon"], Fax = senderContact["fax"], Email = senderContact["email"] }; if (Sender.Betriebsnummer == null) { throw new Exception("Es wurden keine Absender-Kontaktdaten hinterlegt"); } var companyContact = config.GetSection("company").GetSection("contact"); Company = new Firma { Betriebsnummer = companyContact["betriebsnummer"], Name1 = companyContact["name1"], Strasse = companyContact["strasse"], PLZ = companyContact["plz"], Ort = companyContact["ort"], }; if (Company.Betriebsnummer == null) { throw new Exception("Es wurden keine Firmen-Kontaktdaten hinterlegt"); } }