Esempio n. 1
0
        /// <summary>
        /// Вернуть опции для списка транспортов, по списку ключей из репозитория.
        /// </summary>
        public async Task <TransportOption> GetTransportByKeysAsync(IEnumerable <KeyTransport> keyTransports)
        {
            var serialOptions = new List <SerialOption>();
            var tcpIpOptions  = new List <TcpIpOption>();
            var httpOptions   = new List <HttpOption>();

            foreach (var keyTransport in keyTransports)
            {
                switch (keyTransport.TransportType)
                {
                case TransportType.SerialPort:
                    serialOptions.Add(await _serialPortOptionRep.GetSingleAsync(option => option.Port == keyTransport.Key));
                    break;

                case TransportType.TcpIp:
                    tcpIpOptions.Add(await _tcpIpOptionRep.GetSingleAsync(option => option.Name == keyTransport.Key));
                    break;

                case TransportType.Http:
                    httpOptions.Add(await _httpOptionRep.GetSingleAsync(option => option.Name == keyTransport.Key));
                    break;
                }
            }
            return(new TransportOption
            {
                SerialOptions = serialOptions,
                TcpIpOptions = tcpIpOptions,
                HttpOptions = httpOptions
            });
        }