private async Task <bool> RegisterInDiscoveryAsync(string correlationId, ConnectionParams connection)
        {
            if (!connection.UseDiscovery)
            {
                return(false);
            }

            var key = connection.DiscoveryKey;

            if (_references == null)
            {
                return(false);
            }

            var discoveries = _references.GetOptional <IDiscovery>(new Descriptor("*", "discovery", "*", "*", "*"));

            if (discoveries == null)
            {
                return(false);
            }

            foreach (var discovery in discoveries)
            {
                await discovery.RegisterAsync(correlationId, key, connection);
            }

            return(true);
        }
        /// <summary>
        /// Sets references to dependent components.
        /// </summary>
        /// <param name="references">references to locate the component dependencies.</param>
        public virtual void SetReferences(IReferences references)
        {
            var counters = references.GetOptional <ICounters>(new Descriptor(null, "counters", null, null, null));

            foreach (var counter in counters)
            {
                if (counter != this)
                {
                    _counters.Add(counter);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Sets the references.
        /// </summary>
        /// <param name="references">The references.</param>
        public void SetReferences(IReferences references)
        {
            var loggers = references.GetOptional <ILogger>(new Descriptor(null, "logger", null, null, null));

            foreach (var logger in loggers)
            {
                if (logger != this)
                {
                    _loggers.Add(logger);
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Sets references to dependent components.
        /// </summary>
        /// <param name="references">references to locate the component dependencies. </param>
        public void SetReferences(IReferences references)
        {
            var tracers = references.GetOptional <ITracer>(new Descriptor(null, "tracer", null, null, null));

            for (int i = 0; i < tracers.Count; i++)
            {
                var tracer = tracers[i];
                if (tracer != this)
                {
                    _tracers.Add(tracer);
                }
            }
        }
        private async Task <CredentialParams> LookupInStoresAsync(string correlationId, CredentialParams credential)
        {
            if (credential.UseCredentialStore == false)
            {
                return(null);
            }

            var key = credential.StoreKey;

            if (_references == null)
            {
                return(null);
            }

            var components = _references.GetOptional(new Descriptor("*", "credential_store", "*", "*", "*"));

            if (components.Count == 0)
            {
                throw new ReferenceException(correlationId, "Credential store wasn't found to make lookup");
            }

            foreach (var component in components)
            {
                var store = component as ICredentialStore;
                if (store != null)
                {
                    var resolvedCredential = await store.LookupAsync(correlationId, key);

                    if (resolvedCredential != null)
                    {
                        return(resolvedCredential);
                    }
                }
            }

            return(null);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Gets all optional dependencies by their name.
        /// </summary>
        /// <param name="name">the dependency name to locate.</param>
        /// <returns>a list with found dependencies or empty list of no dependencies was found.</returns>
        public List <object> GetOptional(string name)
        {
            object locator = Locate(name);

            return(locator != null?_references.GetOptional(locator) : null);
        }