private IEnumerable <TelemetryDataSinkParameters> GetConfiguredSinks(string networkId)
        {
            var network   = _networkOperations.Get(networkId);
            var serviceId = network.ServiceId;
            var companyId = network.CompanyId;

            while (network != null)
            {
                if (network.TelemetryDataSinkSettings.Incoming != null && network.TelemetryDataSinkSettings.Incoming.Any())
                {
                    return(network.TelemetryDataSinkSettings.Incoming);
                }

                network = network.ParentNetworkId != null?_networkOperations.Get(network.ParentNetworkId) : null;
            }

            var service = _serviceOperations.Get(serviceId);

            if (service.TelemetryDataSinkSettings.Incoming != null && service.TelemetryDataSinkSettings.Incoming.Any())
            {
                return(service.TelemetryDataSinkSettings.Incoming);
            }

            var company = _companyOperations.Get(companyId);

            if (company.TelemetryDataSinkSettings.Incoming != null && company.TelemetryDataSinkSettings.Incoming.Any())
            {
                return(company.TelemetryDataSinkSettings.Incoming);
            }

            return(new List <TelemetryDataSinkParameters>());
        }
Example #2
0
        public IEnumerable <ITelemetryDataSink> ResolveIncoming(string deviceId)
        {
            var device = _deviceOperations.Get(deviceId);

            var network = _networkOperations.Get(device.NetworkId);

            while (network != null)
            {
                if (network.TelemetryDataSinkSettings.Incoming != null && network.TelemetryDataSinkSettings.Incoming.Any())
                {
                    return(ResolveIncomingInternal(network.TelemetryDataSinkSettings.Incoming));
                }

                network = network.ParentNetworkId != null?_networkOperations.Get(network.ParentNetworkId) : null;
            }

            var service = _serviceOperations.Get(device.ServiceId);

            if (service.TelemetryDataSinkSettings.Incoming != null && service.TelemetryDataSinkSettings.Incoming.Any())
            {
                return(ResolveIncomingInternal(service.TelemetryDataSinkSettings.Incoming));
            }

            var company = _companyOperations.Get(device.CompanyId);

            if (company.TelemetryDataSinkSettings.Incoming != null && company.TelemetryDataSinkSettings.Incoming.Any())
            {
                return(ResolveIncomingInternal(company.TelemetryDataSinkSettings.Incoming));
            }

            return(new List <ITelemetryDataSink>());
        }