protected virtual void PerformOnData <T>(NavMessageContentParserBase <T> parser) where T : NavMessage
        {
            switch (ParseType)
            {
            case ParseType.RaiseEvents:
                foreach (var navMessage in parser.Parse())
                {
                    OnNewMessage(navMessage);
                }
                break;

            case ParseType.StoreData:
                foreach (var navMessage in parser.Parse())
                {
                    _navMessages.Add(navMessage);
                }
                break;

            case ParseType.StoreAndRaise:
                foreach (var navMessage in parser.Parse())
                {
                    OnNewMessage(navMessage);
                    _navMessages.Add(navMessage);
                }

                break;
            }
        }
        protected override void PerformOnData <T>(NavMessageContentParserBase <T> parser)
        {
            switch (ParseType)
            {
            case ParseType.RaiseEvents:
                foreach (var navMessage in parser.Parse())
                {
                    if (_navFilter.ValidateNavMsg(navMessage))
                    {
                        OnNewMessage(navMessage);
                    }
                }
                break;

            case ParseType.StoreData:
                foreach (var navMessage in parser.Parse())
                {
                    if (_navFilter.ValidateNavMsg(navMessage))
                    {
                        _navMessages.Add(navMessage);
                    }
                }
                break;

            case ParseType.StoreAndRaise:
                foreach (var navMessage in parser.Parse())
                {
                    if (_navFilter.ValidateNavMsg(navMessage))
                    {
                        OnNewMessage(navMessage);
                        _navMessages.Add(navMessage);
                    }
                }

                break;
            }
        }