Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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");
            }
        }