예제 #1
0
 static FilterEngine()
 {
     filterEngineLock                       = new object();
     currentFilterCriteria                  = null;
     searchOptionNames                      = new Dictionary <string, SearchOptions>();
     traceLevelNames                        = new Dictionary <string, SourceLevels>();
     filterOptionSettings                   = null;
     securityMessageActionIndex             = new Dictionary <string, int>();
     reliableMessageActionIndex             = new Dictionary <string, int>();
     transactionMessageActionIndex          = new Dictionary <string, int>();
     securityMessageTraceIdentifierIndex    = new Dictionary <string, int>();
     reliableMessageTraceIdentifierIndex    = new Dictionary <string, int>();
     transactionMessageTraceIdentifierIndex = new Dictionary <string, int>();
     searchOptionNames.Add(SR.GetString("AppFilterItem1"), SearchOptions.None);
     searchOptionNames.Add(SR.GetString("AppFilterItem2"), SearchOptions.EventID);
     searchOptionNames.Add(SR.GetString("AppFilterItem3"), SearchOptions.SourceName);
     searchOptionNames.Add(SR.GetString("AppFilterItem4"), SearchOptions.ProcessName);
     searchOptionNames.Add(SR.GetString("AppFilterItem5"), SearchOptions.TraceCode);
     searchOptionNames.Add(SR.GetString("AppFilterItem6"), SearchOptions.Description);
     searchOptionNames.Add(SR.GetString("AppFilterItem7"), SearchOptions.StartTime);
     searchOptionNames.Add(SR.GetString("AppFilterItem8"), SearchOptions.StopTime);
     searchOptionNames.Add(SR.GetString("AppFilterItem9"), SearchOptions.TimeRange);
     searchOptionNames.Add(SR.GetString("AppFilterItem10"), SearchOptions.EndpointAddress);
     searchOptionNames.Add(SR.GetString("AppFilterItem17"), SearchOptions.AppDataSection);
     searchOptionNames.Add(SR.GetString("AppFilterItem18"), SearchOptions.EntireRawData);
     searchOptionNames.Add(SR.GetString("AppFilterItem11"), SearchOptions.CustomFilter);
     traceLevelNames.Add(SR.GetString("AppFilterItem12"), SourceLevels.All);
     traceLevelNames.Add(SR.GetString("AppFilterItem13"), SourceLevels.Critical);
     traceLevelNames.Add(SR.GetString("AppFilterItem14"), SourceLevels.Error);
     traceLevelNames.Add(SR.GetString("AppFilterItem15"), SourceLevels.Warning);
     traceLevelNames.Add(SR.GetString("AppFilterItem16"), SourceLevels.Information);
     securityMessageActionIndex.Add("http://schemas.xmlsoap.org/ws/2005/02/trust", 0);
     securityMessageActionIndex.Add("http://schemas.xmlsoap.org/ws/2004/04/trust", 0);
     securityMessageActionIndex.Add("http://schemas.xmlsoap.org/ws/2005/02/sc", 0);
     securityMessageActionIndex.Add("http://schemas.xmlsoap.org/ws/2004/04/sc", 0);
     securityMessageActionIndex.Add("http://schemas.microsoft.com/ws/2004/04/addressingidentityextension", 0);
     securityMessageActionIndex.Add("http://schemas.microsoft.com/mb/2004/01/security", 0);
     reliableMessageActionIndex.Add("http://schemas.xmlsoap.org/ws/2005/02/rm", 0);
     reliableMessageActionIndex.Add("http://schemas.microsoft.com/net/2005/02/rm", 0);
     transactionMessageActionIndex.Add("http://schemas.microsoft.com/ws/2006/02/transactions", 0);
     transactionMessageActionIndex.Add("http://schemas.xmlsoap.org/ws/2004/10/wscoor", 0);
     transactionMessageActionIndex.Add("http://schemas.xmlsoap.org/ws/2004/10/wsat", 0);
     securityMessageTraceIdentifierIndex.Add("System.ServiceModel.Security", 0);
     securityMessageTraceIdentifierIndex.Add("System.IdentityModel", 0);
     reliableMessageTraceIdentifierIndex.Add("System.ServiceModel.Channels.RM", 0);
     transactionMessageTraceIdentifierIndex.Add("Microsoft.Transactions.TransactionBridge", 0);
     transactionMessageTraceIdentifierIndex.Add("http://msdn.microsoft.com/en-US/library/System.ServiceModel.Transactions.", 0);
 }
예제 #2
0
 public void PerformFiltering(FilterCriteria criteria)
 {
     if (criteria != null && objectStateController.CurrentStateName != "TraceFilterDisableState")
     {
         if (criteria.SearchOption == SearchOptions.None)
         {
             searchInList.SelectedIndex = 0;
         }
         SourceLevels filterSourceLevel = criteria.FilterSourceLevel;
         if (filterSourceLevel == SourceLevels.All)
         {
             traceLevelList.SelectedIndex = 0;
         }
         FilterNowAction();
     }
 }
예제 #3
0
        private void FilterNowAction()
        {
            FilterCriteria filterCriteria = new FilterCriteria();

            filterCriteria.FilterSourceLevel = FilterEngine.ParseLevel((traceLevelList.SelectedItem != null) ? traceLevelList.SelectedItem.ToString() : SR.GetString("AppFilterItem1"));
            if (searchInList.SelectedIndex >= 12)
            {
                filterCriteria.SearchOption = SearchOptions.CustomFilter;
            }
            else
            {
                filterCriteria.SearchOption = FilterEngine.ParseSearchOption((searchInList.SelectedItem != null) ? searchInList.SelectedItem.ToString() : SR.GetString("AppFilterItem13"));
            }
            switch (filterCriteria.SearchOption)
            {
            case SearchOptions.EventID:
            case SearchOptions.SourceName:
            case SearchOptions.ProcessName:
            case SearchOptions.TraceCode:
            case SearchOptions.Description:
            case SearchOptions.EndpointAddress:
            case SearchOptions.AppDataSection:
            case SearchOptions.EntireRawData:
                filterCriteria.searchCondition = toolStripTextBoxLookFor.Text;
                break;

            case SearchOptions.StartTime:
            {
                DateTime value4    = dtpTime.Value;
                DateTime dateTime2 = new DateTime(value4.Year, value4.Month, value4.Day, value4.Hour, value4.Minute, value4.Second, 0, value4.Kind);
                filterCriteria.searchCondition = dateTime2;
                break;
            }

            case SearchOptions.StopTime:
            {
                DateTime value3   = dtpTime.Value;
                DateTime dateTime = new DateTime(value3.Year, value3.Month, value3.Day, value3.Hour, value3.Minute, value3.Second, 999, value3.Kind);
                filterCriteria.searchCondition = dateTime;
                break;
            }

            case SearchOptions.TimeRange:
            {
                DateTime value     = dtpTimeFrom.Value;
                DateTime startTime = new DateTime(value.Year, value.Month, value.Day, value.Hour, value.Minute, value.Second, 0, value.Kind);
                DateTime value2    = dtpTimeTo.Value;
                DateTime endTime   = new DateTime(value2.Year, value2.Month, value2.Day, value2.Hour, value2.Minute, value2.Second, 999, value2.Kind);
                filterCriteria.searchCondition = new DateTimePair(startTime, endTime);
                break;
            }

            case SearchOptions.CustomFilter:
                if (customFilterMap.ContainsKey(searchInList.SelectedIndex))
                {
                    filterCriteria.searchCondition = new CustomFilterCondition();
                    ((CustomFilterCondition)filterCriteria.searchCondition).customFilter = customFilterMap[searchInList.SelectedIndex];
                    if (((CustomFilterCondition)filterCriteria.searchCondition).customFilter.ContainsParameters)
                    {
                        string text = ((CustomFilterCondition)filterCriteria.searchCondition).customFilter.ParseXPathExpression(toolStripTextBoxLookFor.Text);
                        if (string.IsNullOrEmpty(text))
                        {
                            errorReport.ReportErrorToUser(SR.GetString("CF_IPError"));
                            return;
                        }
                        ((CustomFilterCondition)filterCriteria.searchCondition).parsedXPathExpress = text;
                    }
                }
                break;
            }
            FilterEngine.CurrentFilterCriteria = filterCriteria;
            try
            {
                if (this.TraceFilterChangedEvent != null)
                {
                    this.TraceFilterChangedEvent(this, new TraceFilterChangedEventArgs(filterCriteria));
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.GeneralExceptionFilter(ex);
                ExceptionManager.LogAppError(new TraceViewerException(SR.GetString("MsgTraceFilterChangeCallbackError") + ex.Message));
            }
        }
 internal TraceFilterChangedEventArgs(FilterCriteria f)
 {
 }