Exemplo n.º 1
0
 public For(TokenSpan span, INamePattern names, IExpression values, IExpression body, Else? @else)
 {
     Span   = span;
     Names  = names;
     Values = values;
     Body   = body;
     Else   = @else;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="LogWriterConfiguration"/> class.
        /// </summary>
        /// <param name="namePattern">Pattern that determines for which log writers names the settings apply.</param>
        /// <param name="tagPatterns">Pattern that determines for which message tags the settings apply.</param>
        /// <param name="baseLevel">Name of the log level a message must be associated with at minimum to get processed.</param>
        /// <param name="includes">Names of log levels (or aspects) that should be included in addition to the base level.</param>
        /// <param name="excludes">Names of log levels (or aspects) that should be excluded although covered by the base level.</param>
        internal LogWriterConfiguration(
            INamePattern namePattern,
            IEnumerable <INamePattern> tagPatterns,
            string baseLevel,
            IEnumerable <string> includes = null,
            IEnumerable <string> excludes = null)
        {
            if (string.IsNullOrWhiteSpace(baseLevel))
            {
                throw new ArgumentException("The base level must not be null or whitespace only.", nameof(baseLevel));
            }
            if (namePattern == null)
            {
                throw new ArgumentNullException(nameof(namePattern));
            }
            if (tagPatterns == null)
            {
                throw new ArgumentNullException(nameof(tagPatterns));
            }
            if (tagPatterns.Any(x => x == null))
            {
                throw new ArgumentException("The list of tag patterns must not contain a null reference.");
            }

            mNamePatterns.Add(namePattern);
            mTagPatterns.AddRange(tagPatterns);
            mBaseLevel = baseLevel;

            if (includes != null)
            {
                foreach (string level in includes)
                {
                    if (string.IsNullOrWhiteSpace(level))
                    {
                        throw new ArgumentException("The include list contains an invalid log level.");
                    }

                    mIncludes.Add(level.Trim());
                }
            }

            if (excludes != null)
            {
                foreach (string level in excludes)
                {
                    if (string.IsNullOrWhiteSpace(level))
                    {
                        throw new ArgumentException("The exclude list contains an invalid log level.");
                    }

                    mExcludes.Add(level.Trim());
                }
            }
        }