예제 #1
0
 /// <summary>
 /// Ermittelt eine oder mehrere Quellen nach dem Namen. Diese Methode ist relativ langsam und
 /// sollte nicht verwendet werden, wenn häufig nach Namen nachgeschlagen werden muss.
 /// </summary>
 /// <param name="name">Der gewünschte Name.</param>
 /// <param name="matching">Der Vergleichsmodus.</param>
 /// <returns>Alle Quellen, deren Namen dem Muster entsprechen.</returns>
 /// <exception cref="ArgumentNullException">Der Name darf nicht leer sein.</exception>
 public SourceSelection[] FindSource(string name, SourceNameMatchingModes matching)
 {
     // Validate
     if (string.IsNullOrEmpty(name))
     {
         throw new ArgumentNullException("name");
     }
     else
     {
         return(InternalFindSource(name, matching).ToArray());
     }
 }
예제 #2
0
        /// <summary>
        /// Ermittelt eine oder mehrere Quellen nach dem Namen.
        /// </summary>
        /// <param name="name">Der gewünschte Name.</param>
        /// <param name="matching">Der Vergleichsmodus.</param>
        /// <returns>Alle Quellen, deren Namen dem Muster entsprechen.</returns>
        private IEnumerable <SourceSelection> InternalFindSource(string name, SourceNameMatchingModes matching)
        {
            // Process all
            foreach (var source in AllSources)
            {
                // Attach to station
                var station = (Station)source.Source;

                // Test all
                if (((matching & SourceNameMatchingModes.Name) != 0) && StringComparer.InvariantCultureIgnoreCase.Equals(name, station.Name))
                {
                    yield return(source);
                }
                else if (((matching & SourceNameMatchingModes.FullName) != 0) && StringComparer.InvariantCultureIgnoreCase.Equals(name, station.FullName))
                {
                    yield return(source);
                }
                else if (((matching & SourceNameMatchingModes.QualifiedName) != 0) && StringComparer.InvariantCultureIgnoreCase.Equals(name, station.QualifiedName))
                {
                    yield return(source);
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Ermittelt eine oder mehrere Quellen nach dem Namen.
        /// </summary>
        /// <param name="name">Der gewünschte Name.</param>
        /// <param name="matching">Der Vergleichsmodus.</param>
        /// <returns>Alle Quellen, deren Namen dem Muster entsprechen.</returns>
        private IEnumerable<SourceSelection> InternalFindSource( string name, SourceNameMatchingModes matching )
        {
            // Process all
            foreach (var source in AllSources)
            {
                // Attach to station
                var station = (Station) source.Source;

                // Test all
                if (((matching & SourceNameMatchingModes.Name) != 0) && StringComparer.InvariantCultureIgnoreCase.Equals( name, station.Name ))
                    yield return source;
                else if (((matching & SourceNameMatchingModes.FullName) != 0) && StringComparer.InvariantCultureIgnoreCase.Equals( name, station.FullName ))
                    yield return source;
                else if (((matching & SourceNameMatchingModes.QualifiedName) != 0) && StringComparer.InvariantCultureIgnoreCase.Equals( name, station.QualifiedName ))
                    yield return source;
            }
        }
예제 #4
0
 /// <summary>
 /// Ermittelt eine oder mehrere Quellen nach dem Namen. Diese Methode ist relativ langsam und
 /// sollte nicht verwendet werden, wenn häufig nach Namen nachgeschlagen werden muss.
 /// </summary>
 /// <param name="name">Der gewünschte Name.</param>
 /// <param name="matching">Der Vergleichsmodus.</param>
 /// <returns>Alle Quellen, deren Namen dem Muster entsprechen.</returns>
 /// <exception cref="ArgumentNullException">Der Name darf nicht leer sein.</exception>
 public SourceSelection[] FindSource( string name, SourceNameMatchingModes matching )
 {
     // Validate
     if (string.IsNullOrEmpty( name ))
         throw new ArgumentNullException( "name" );
     else
         return InternalFindSource( name, matching ).ToArray();
 }