CK.Core.ActivityMonitorErrorCounter.State.CatchLevel C# (CSharp) Method

CatchLevel() private method

private CatchLevel ( LogLevel level ) : void
level LogLevel
return void
            internal void CatchLevel( LogLevel level )
            {
                Debug.Assert( (level & LogLevel.IsFiltered) == 0 );
                switch( level )
                {
                    case LogLevel.Fatal:
                        {
                            State s = this;
                            do
                            {
                                s.FatalCount = s.FatalCount + 1;
                                s.MaxLogLevel = LogLevel.Fatal;
                            }
                            while( (s = s.Parent) != null );
                            break;
                        }
                    case LogLevel.Error:
                        {
                            State s = this;
                            do
                            {
                                s.ErrorCount = s.ErrorCount + 1;
                                if( s.MaxLogLevel != LogLevel.Fatal ) s.MaxLogLevel = LogLevel.Error;
                            }
                            while( (s = s.Parent) != null );
                            break;
                        }
                    case LogLevel.Warn:
                        {
                            State s = this;
                            do
                            {
                                s.WarnCount = s.WarnCount + 1;
                                if( s.MaxLogLevel < LogLevel.Warn ) s.MaxLogLevel = LogLevel.Warn;
                            }
                            while( (s = s.Parent) != null );
                            break;
                        }
                    default:
                        {
                            State s = this;
                            do
                            {
                                if( s.MaxLogLevel < level ) s.MaxLogLevel = level;
                            }
                            while( (s = s.Parent) != null );
                            break;
                        }
                }
            }
        }