Beispiel #1
0
        public static void LoadFrom <TService, TConcrete>(this IKernel kernel,
                                                          IEnumerable <IConfigurationMetadata> metadataCollection,
                                                          bool inSingletonScope = false)
            where TConcrete : TService, IConfigurable
        {
            if (kernel == null)
            {
                throw new ArgumentNullException("kernel");
            }

            if (metadataCollection == null)
            {
                throw new ArgumentNullException("metadataCollection");
            }

            foreach (IConfigurationMetadata metadata in metadataCollection)
            {
                IConfigurationMetadata m = metadata;

                if (inSingletonScope)
                {
                    kernel.Bind <TService>().To <TConcrete>().InSingletonScope().OnActivation(c => c.Configure(m));
                }
                else
                {
                    kernel.Bind <TService>().To <TConcrete>().InTransientScope().OnActivation(c => c.Configure(m));
                }
            }
        }
Beispiel #2
0
        public MetadataBuilderTests()
        {
            const Behavior behavior = Behavior.Strict;

            var fixture = new Fixture();
            var key     = fixture.Create <string>();
            var value   = fixture.Create <string>();

            _localServerName                 = Environment.MachineName.ToLower();
            _ipAddressByServerName           = Mock.Create <IReadOnlyDictionary <string, string> >(behavior);
            _ipAddressByServerNameEnumerator = Mock.Create <IEnumerator <KeyValuePair <string, string> > >(behavior);
            _keyValuePair      = new KeyValuePair <string, string>(key, value);
            _ipAddress         = _keyValuePair.Value;
            _remoteServerNames = new List <string> {
                _keyValuePair.Key
            };
            _ping                  = Mock.Create <Ping>(behavior);
            _pingReply             = Mock.Create <PingReply>(behavior);
            _buffer                = new byte[0];
            _pingOptions           = new PingOptions(ttl: 64, dontFragment: true);
            _timeout               = 1;
            _configurationMetadata = Mock.Create <IConfigurationMetadata>(behavior);
            _pingCreator           = Mock.Create <IPingCreator>(behavior);
            _pingReplyEvaluator    = Mock.Create <IPingReplyEvaluator>(behavior);
            _testObject            = new MetadataBuilder(_configurationMetadata, _pingCreator, _pingReplyEvaluator);
        }
Beispiel #3
0
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
                throw new ArgumentNullException("metadata");

            if (metadata.Properties.ContainsKey(ConfigurationProperties.LogEndpointName))
                Configure(metadata.Properties[ConfigurationProperties.LogEndpointName]);
        }
 public MetadataBuilder(IConfigurationMetadata configurationMetadata,
                        IPingCreator pingCreator,
                        IPingReplyEvaluator pingReplyEvaluator)
 {
     _configurationMetadata = configurationMetadata;
     _pingCreator           = pingCreator;
     _pingReplyEvaluator    = pingReplyEvaluator;
 }
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
                throw new ArgumentNullException("metadata");

            if (metadata.Properties.ContainsKey(ConfigurationProperties.ConnectionString))
                ConnectionString = metadata.Properties[ConfigurationProperties.ConnectionString];

            Validate();
        }
Beispiel #6
0
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
                throw new ArgumentNullException("metadata");

            Name = metadata.Name;

            if (metadata.Properties.ContainsKey(ConfigurationProperties.QueuePath))
                QueuePath = metadata.Properties[ConfigurationProperties.QueuePath];

            Validate();
        }
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
            {
                throw new ArgumentNullException("metadata");
            }

            if (metadata.Properties.ContainsKey(ConfigurationProperties.LogEndpointName))
            {
                Configure(metadata.Properties[ConfigurationProperties.LogEndpointName]);
            }
        }
Beispiel #8
0
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
                throw new ArgumentNullException("metadata");

            if (metadata.Properties.ContainsKey(ConfigurationProperties.AccessKey))
                AccessKey = metadata.Properties[ConfigurationProperties.AccessKey];

            if (metadata.Properties.ContainsKey(ConfigurationProperties.SecretKey))
                SecretKey = metadata.Properties[ConfigurationProperties.SecretKey];

            Validate();
        }
Beispiel #9
0
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
            {
                throw new ArgumentNullException("metadata");
            }

            if (metadata.Properties.ContainsKey(ConfigurationProperties.ConnectionString))
            {
                ConnectionString = metadata.Properties[ConfigurationProperties.ConnectionString];
            }

            Validate();
        }
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
                throw new ArgumentNullException("metadata");

            if (metadata.Properties.ContainsKey(metadata.Properties[ConfigurationProperties.ChildEndpointNames]))
                Configure(metadata.Name,
                    metadata.Properties[ConfigurationProperties.ChildEndpointNames].Split(',')
                        .Select(n => n.Trim())
                        .Where(n => (n.Length > 0))
                        .ToArray());

            Validate();
        }
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
                throw new ArgumentNullException("metadata");

            Name = metadata.Name;

            if (metadata.Properties.ContainsKey(ConfigurationProperties.TopicName))
                TopicName = metadata.Properties[ConfigurationProperties.TopicName];

            if (metadata.Properties.ContainsKey(ConfigurationProperties.SubscriptionName))
                SubscriptionName = metadata.Properties[ConfigurationProperties.SubscriptionName];

            Validate();
        }
Beispiel #12
0
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
            {
                throw new ArgumentNullException("metadata");
            }

            Name = metadata.Name;

            if (metadata.Properties.ContainsKey(ConfigurationProperties.QueueName))
            {
                QueueName = metadata.Properties[ConfigurationProperties.QueueName];
            }

            Validate();
        }
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
            {
                throw new ArgumentNullException("metadata");
            }

            if (metadata.Properties.ContainsKey(metadata.Properties[ConfigurationProperties.ChildEndpointNames]))
            {
                Configure(metadata.Name,
                          metadata.Properties[ConfigurationProperties.ChildEndpointNames].Split(',')
                          .Select(n => n.Trim())
                          .Where(n => (n.Length > 0))
                          .ToArray());
            }

            Validate();
        }
        public virtual void ReportConfigurationMetadata(IConfigurationMetadata configurationMetadata)
        {
            Debug.WriteLine("MetadataSink.ReportMediaStreamMetadata() " + (object)configurationMetadata);
            bool   lockTaken = false;
            object obj       = null;

            try
            {
                Monitor.Enter(obj = this._lock, ref lockTaken);
                this._metadataState.ConfigurationMetadata = configurationMetadata;
            }
            finally
            {
                if (lockTaken)
                {
                    Monitor.Exit(obj);
                }
            }
        }
Beispiel #15
0
        public void Configure(IConfigurationMetadata metadata)
        {
            if (metadata == null)
            {
                throw new ArgumentNullException("metadata");
            }

            if (metadata.Properties.ContainsKey(ConfigurationProperties.AccessKey))
            {
                AccessKey = metadata.Properties[ConfigurationProperties.AccessKey];
            }

            if (metadata.Properties.ContainsKey(ConfigurationProperties.SecretKey))
            {
                SecretKey = metadata.Properties[ConfigurationProperties.SecretKey];
            }

            Validate();
        }
Beispiel #16
0
        public override void ReportConfigurationMetadata(IConfigurationMetadata configurationMetadata)
        {
            base.ReportConfigurationMetadata(configurationMetadata);

            _updateAction();
        }
Beispiel #17
0
        public virtual void ReportConfigurationMetadata(IConfigurationMetadata configurationMetadata)
        {
            Debug.WriteLine("MetadataSink.ReportMediaStreamMetadata() " + configurationMetadata);

            lock (_lock)
            {
                _metadataState.ConfigurationMetadata = configurationMetadata;
            }
        }
        void UpdateMetadata()
        {
            try
            {
                var mediaPlayer = MediaPlayer;

                if (null == mediaPlayer)
                {
                    return;
                }

                var position = mediaPlayer.Position;

                var nextEvent = _metadataSink.Update(_metadataState, position);

                var configuration = _metadataState.ConfigurationMetadata;

                if (null == configuration)
                {
                    return;
                }

                if (ReferenceEquals(configuration, _configurationMetadata))
                {
                    return;
                }

                _configurationMetadata = configuration;

                var availableAudioStreams = mediaPlayer.AvailableAudioStreams;

                availableAudioStreams.Clear();

                if (null != configuration.Audio)
                {
                    availableAudioStreams.Add(configuration.Audio.CreateAudioStream());
                }

                if (null != configuration.AlternateStreams)
                {
                    var audioStreams = configuration.AlternateStreams
                                       .OfType <IAudioConfigurationSource>()
                                       .Select(AudioStreamFactory.CreateAudioStream);

                    availableAudioStreams.AddRange(audioStreams);
                }

                var count = 0;

                foreach (var audioStream in availableAudioStreams)
                {
                    ++count;

                    if (string.IsNullOrWhiteSpace(audioStream.Name))
                    {
                        audioStream.Name = count.ToString(CultureInfo.CurrentCulture);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("StreamingMediaPlugin.UpdateMetadata() failed: " + ex.ExtendedMessage());
            }
        }
Beispiel #19
0
        void UpdateMetadata()
        {
            try
            {
                var mediaPlayer = MediaPlayer;

                if (null == mediaPlayer)
                    return;

                var position = mediaPlayer.Position;

                var nextEvent = _metadataSink.Update(_metadataState, position);

                var configuration = _metadataState.ConfigurationMetadata;

                if (null == configuration)
                    return;

                if (ReferenceEquals(configuration, _configurationMetadata))
                    return;

                _configurationMetadata = configuration;

                var availableAudioStreams = mediaPlayer.AvailableAudioStreams;

                availableAudioStreams.Clear();

                if (null != configuration.Audio)
                    availableAudioStreams.Add(configuration.Audio.CreateAudioStream());

                if (null != configuration.AlternateStreams)
                {
                    var audioStreams = configuration.AlternateStreams
                        .OfType<IAudioConfigurationSource>()
                        .Select(AudioStreamFactory.CreateAudioStream);

                    availableAudioStreams.AddRange(audioStreams);
                }

                var count = 0;

                foreach (var audioStream in availableAudioStreams)
                {
                    ++count;

                    if (string.IsNullOrWhiteSpace(audioStream.Name))
                        audioStream.Name = count.ToString(CultureInfo.CurrentCulture);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("StreamingMediaPlugin.UpdateMetadata() failed: " + ex.ExtendedMessage());
            }
        }
Beispiel #20
0
 public override void ReportConfigurationMetadata(IConfigurationMetadata configurationMetadata)
 {
     base.ReportConfigurationMetadata(configurationMetadata);
     this._updateAction();
 }