예제 #1
0
        public async Task ExecuteAsync(BatchMapDataCommand command)
        {
            var mapperFunc = (IMapperFunc)_serviceProvider.GetService(_config.MapperFuncType);

            var keyValuePairCollection = new KeyValuePairCollection();

            foreach (var line in command.Lines)
            {
                keyValuePairCollection.AddRange(mapperFunc.Map(line));
            }

            var resultOfMap2 = new List <CompressedMostAccidentProneData>();

            foreach (var kvp in keyValuePairCollection)
            {
                var mostAccidentProneKvp = kvp as MostAccidentProneKvp;
                resultOfMap2.Add(new CompressedMostAccidentProneData
                {
                    M = mostAccidentProneKvp.Key,
                    S = new CompressedAccidentStats
                    {
                        A = mostAccidentProneKvp.Value.NoOfAccidents,
                        C = mostAccidentProneKvp.Value.NoOfCarsRegistered,
                        R = mostAccidentProneKvp.Value.RegistrationsPerAccident
                    }
                });
            }

            await _commandDispatcher.DispatchAsync(new WriteMappedDataCommand
            {
                ContextQueueMessage = command.ContextQueueMessage,
//                ResultOfMap = keyValuePairCollection,
                ResultOfMap2 = resultOfMap2
            });
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="certificates">The certificates used for encrypted communication including the CA certificate</param>
        /// <param name="sslProtocolVersion">The preferred version of SSL protocol</param>
        /// <param name="allowUntrustedCertificates">Specifies if untrusted certificates should be accepted in the process of certificate validation</param>
        /// <param name="ignoreCertificateChainErrors">Specifies if Certificate Chain errors should be validated in the process of certificate validation</param>
        /// <param name="ignoreRevocationListErrors">Specifies if Certificate Revocation List errors should be validated in the process of certificate validation</param>
        /// <param name="trustedIssuerCertificates">The trusted issuer certifficates store identifier</param>
        /// <param name="trustedPeerCertificates">The trusted peer certifficates store identifier</param>
        /// <param name="rejectedCertificateStore">The rejected certifficates store identifier</param>
        public MqttTlsOptions(MqttTlsCertificates certificates  = null,
                              SslProtocols sslProtocolVersion   = SslProtocols.Tls12,
                              bool allowUntrustedCertificates   = false,
                              bool ignoreCertificateChainErrors = false,
                              bool ignoreRevocationListErrors   = false,
                              CertificateStoreIdentifier trustedIssuerCertificates = null,
                              CertificateStoreIdentifier trustedPeerCertificates   = null,
                              CertificateStoreIdentifier rejectedCertificateStore  = null
                              )
        {
            m_certificates                 = certificates;
            m_SslProtocolVersion           = sslProtocolVersion;
            m_allowUntrustedCertificates   = allowUntrustedCertificates;
            m_ignoreCertificateChainErrors = ignoreCertificateChainErrors;
            m_ignoreRevocationListErrors   = ignoreRevocationListErrors;

            m_trustedIssuerCertificates = trustedIssuerCertificates;
            m_trustedPeerCertificates   = trustedPeerCertificates;
            m_rejectedCertificateStore  = rejectedCertificateStore;

            m_keyValuePairs = new KeyValuePairCollection();

            if (m_certificates != null)
            {
                m_keyValuePairs.AddRange(m_certificates.KeyValuePairs);
            }

            KeyValuePair kvpTlsProtocolVersion = new KeyValuePair();

            kvpTlsProtocolVersion.Key   = EnumMqttClientConfigurationParameters.TlsProtocolVersion.ToString();
            kvpTlsProtocolVersion.Value = (int)m_SslProtocolVersion;
            m_keyValuePairs.Add(kvpTlsProtocolVersion);
            KeyValuePair kvpAllowUntrustedCertificates = new KeyValuePair();

            kvpAllowUntrustedCertificates.Key   = EnumMqttClientConfigurationParameters.TlsAllowUntrustedCertificates.ToString();
            kvpAllowUntrustedCertificates.Value = m_allowUntrustedCertificates;
            m_keyValuePairs.Add(kvpAllowUntrustedCertificates);
            KeyValuePair kvpIgnoreCertificateChainErrors = new KeyValuePair();

            kvpIgnoreCertificateChainErrors.Key   = EnumMqttClientConfigurationParameters.TlsIgnoreCertificateChainErrors.ToString();
            kvpIgnoreCertificateChainErrors.Value = m_ignoreCertificateChainErrors;
            m_keyValuePairs.Add(kvpIgnoreCertificateChainErrors);
            KeyValuePair kvpIgnoreRevocationListErrors = new KeyValuePair();

            kvpIgnoreRevocationListErrors.Key   = EnumMqttClientConfigurationParameters.TlsIgnoreRevocationListErrors.ToString();
            kvpIgnoreRevocationListErrors.Value = m_ignoreRevocationListErrors;
            m_keyValuePairs.Add(kvpIgnoreRevocationListErrors);

            KeyValuePair kvpTrustedIssuerCertificatesStoreType = new KeyValuePair();

            kvpTrustedIssuerCertificatesStoreType.Key   = EnumMqttClientConfigurationParameters.TrustedIssuerCertificatesStoreType.ToString();
            kvpTrustedIssuerCertificatesStoreType.Value = m_trustedIssuerCertificates?.StoreType;
            m_keyValuePairs.Add(kvpTrustedIssuerCertificatesStoreType);
            KeyValuePair kvpTrustedIssuerCertificatesStorePath = new KeyValuePair();

            kvpTrustedIssuerCertificatesStorePath.Key   = EnumMqttClientConfigurationParameters.TrustedIssuerCertificatesStorePath.ToString();
            kvpTrustedIssuerCertificatesStorePath.Value = m_trustedIssuerCertificates?.StorePath;
            m_keyValuePairs.Add(kvpTrustedIssuerCertificatesStorePath);

            KeyValuePair kvpTrustedPeerCertificatesStoreType = new KeyValuePair();

            kvpTrustedPeerCertificatesStoreType.Key   = EnumMqttClientConfigurationParameters.TrustedPeerCertificatesStoreType.ToString();
            kvpTrustedPeerCertificatesStoreType.Value = m_trustedPeerCertificates?.StoreType;
            m_keyValuePairs.Add(kvpTrustedPeerCertificatesStoreType);
            KeyValuePair kvpTrustedPeerCertificatesStorePath = new KeyValuePair();

            kvpTrustedPeerCertificatesStorePath.Key   = EnumMqttClientConfigurationParameters.TrustedPeerCertificatesStorePath.ToString();
            kvpTrustedPeerCertificatesStorePath.Value = m_trustedPeerCertificates?.StorePath;
            m_keyValuePairs.Add(kvpTrustedPeerCertificatesStorePath);

            KeyValuePair kvpRejectedCertificateStoreStoreType = new KeyValuePair();

            kvpRejectedCertificateStoreStoreType.Key   = EnumMqttClientConfigurationParameters.RejectedCertificateStoreStoreType.ToString();
            kvpRejectedCertificateStoreStoreType.Value = m_rejectedCertificateStore?.StoreType;
            m_keyValuePairs.Add(kvpRejectedCertificateStoreStoreType);
            KeyValuePair kvpRejectedCertificateStoreStorePath = new KeyValuePair();

            kvpRejectedCertificateStoreStorePath.Key   = EnumMqttClientConfigurationParameters.RejectedCertificateStoreStorePath.ToString();
            kvpRejectedCertificateStoreStorePath.Value = m_rejectedCertificateStore?.StorePath;
            m_keyValuePairs.Add(kvpRejectedCertificateStoreStorePath);
        }