public virtual void ReadFrom(XElement xE)
 {
     SearchParameters        = null;
     IdeaType                = null;
     RequestType             = null;
     RequestedAttributeTypes = null;
     Paging       = null;
     LocaleCode   = null;
     CurrencyCode = null;
     foreach (var xItem in xE.Elements())
     {
         var localName = xItem.Name.LocalName;
         if (localName == "searchParameters")
         {
             if (SearchParameters == null)
             {
                 SearchParameters = new List <SearchParameter>();
             }
             var searchParametersItem = InstanceCreator.CreateSearchParameter(xItem);
             searchParametersItem.ReadFrom(xItem);
             SearchParameters.Add(searchParametersItem);
         }
         else if (localName == "ideaType")
         {
             IdeaType = IdeaTypeExtensions.Parse(xItem.Value);
         }
         else if (localName == "requestType")
         {
             RequestType = RequestTypeExtensions.Parse(xItem.Value);
         }
         else if (localName == "requestedAttributeTypes")
         {
             if (RequestedAttributeTypes == null)
             {
                 RequestedAttributeTypes = new List <AttributeType>();
             }
             RequestedAttributeTypes.Add(AttributeTypeExtensions.Parse(xItem.Value));
         }
         else if (localName == "paging")
         {
             Paging = new Paging();
             Paging.ReadFrom(xItem);
         }
         else if (localName == "localeCode")
         {
             LocaleCode = xItem.Value;
         }
         else if (localName == "currencyCode")
         {
             CurrencyCode = xItem.Value;
         }
     }
 }
Пример #2
0
        private void DoSimpleSearch(string searchText)
        {
            SearchParameters searchParams = new SearchParameters();
            searchParams.Add(new SearchOptions(SearchType.Theme, searchText) { FindAll = true });
            searchParams.Location = "All Themes";

            Stopwatch time = Stopwatch.StartNew();
            IEnumerable<TmNode> nodes = 
                themesTreeView.RootNodes.SelectMany(n => n.Recurse(node => node.Children)
                                  .Where(x => x.Matches(searchParams))
                                  );
            DisplaySearchResults(searchParams, nodes);
            time.Stop(); Trace.TraceInformation("Time for simple search: {0}ms", time.Elapsed.Milliseconds);
        }
Пример #3
0
 private void AddSearchParametersExecute(SearchParametersViewModel obj)
 {
     SearchParameters.Add(new SearchParametersViewModel());
     SelectedItem = SearchParameters[SearchParameters.Count - 1];
 }
Пример #4
0
 public WranglerViewModel()
 {
     SearchParameters.Add(new SearchParametersViewModel());
     SelectedItem = SearchParameters[0];
 }
Пример #5
0
        private SearchParameters BuildSearchParameters()
        {
            var sp = new SearchParameters
            {
                MatchAll         = (andOrButton1.Text == Resources.SearchForm_AndOrButtons_And),
                SearchThemes     = searchThemesCheckBox.Checked,
                SearchCategories = searchCategoriesCheckBox.Checked
            };

            SearchOptions so;

            if (HaveThemeSearch)
            {
                if (themeNameCheckBox.Checked &&
                    themeDescriptionCheckBox.Checked &&
                    themeSummaryCheckBox.Checked &&
                    themeKeywordsCheckBox.Checked)
                {
                    so = new SearchOptions(SearchType.Theme, themeNameTextBox.Text)
                    {
                        FindAll = allThemeNamesRadioButton.Checked
                    };
                    sp.Add(so);
                }
                else
                {
                    if (themeNameCheckBox.Checked)
                    {
                        so = new SearchOptions(SearchType.ThemeName, themeNameTextBox.Text)
                        {
                            FindAll = allThemeNamesRadioButton.Checked
                        };
                        sp.Add(so);
                    }
                    if (themeDescriptionCheckBox.Checked)
                    {
                        so = new SearchOptions(SearchType.ThemeDescription, themeNameTextBox.Text)
                        {
                            FindAll = allThemeNamesRadioButton.Checked
                        };
                        sp.Add(so);
                    }
                    if (themeSummaryCheckBox.Checked)
                    {
                        so = new SearchOptions(SearchType.ThemeSummary, themeNameTextBox.Text)
                        {
                            FindAll = allThemeNamesRadioButton.Checked
                        };
                        sp.Add(so);
                    }
                    if (themeKeywordsCheckBox.Checked)
                    {
                        so = new SearchOptions(SearchType.ThemeTags, themeNameTextBox.Text)
                        {
                            FindAll = allThemeNamesRadioButton.Checked
                        };
                        sp.Add(so);
                    }
                }
            }

            if (HaveMetaSearch)
            {
                if (MetadataAllSectionsCheckBox.Checked)
                {
                    sp.Add(MetaSearch("")); // search the whole document
                }
                else
                {
                    if (metadataAbstactsCheckBox.Checked)
                    {
                        sp.Add(MetaSearch("abstract")); // /metadata/idinfo/descript/abstract
                    }
                    if (metadataPlaceKeywordsCheckBox.Checked)
                    {
                        sp.Add(MetaSearch("placekey"));// /metadata/idinfo/keywords/place/placekey
                    }
                    if (metadataThemeKeywordsCheckBox.Checked)
                    {
                        sp.Add(MetaSearch("themekey")); // /metadata/idinfo/keywords/theme/themekey
                    }
                }
            }
            if (HaveDateSearch)
            {
                so = new SearchOptions(SearchType.PubDate, null);
                if (pubDateAfter.Checked)
                {
                    so.MaxDaysSinceEdit = (DateTime.Now - pubDateAfter.Value).Days;
                }
                if (pubDateBefore.Checked)
                {
                    so.MinDaysSinceEdit = (DateTime.Now - pubDateBefore.Value).Days;
                    if (so.MinDaysSinceEdit < 0)
                    {
                        so.MinDaysSinceEdit = 0;
                    }
                }
                sp.Add(so);
            }

            if (HaveParkCode)
            {
                // Xpath in FGDC Metadata: /metadata/NPS_Info/NPS_Unit/UnitCode
                so = new SearchOptions(SearchType.Metadata, parkUnitCodeTextBox.Text)
                {
                    XmlElement = "UnitCode"
                };
                sp.Add(so);
            }
            return(sp);
        }
Пример #6
0
        private SearchParameters BuildSearchParameters()
        {
            var sp = new SearchParameters
                         {
                             MatchAll = (andOrButton1.Text == Resources.SearchForm_AndOrButtons_And),
                             SearchThemes = searchThemesCheckBox.Checked,
                             SearchCategories = searchCategoriesCheckBox.Checked
                         };

            SearchOptions so;
            if (HaveThemeSearch)
            {
                if (themeNameCheckBox.Checked &&
                    themeDescriptionCheckBox.Checked &&
                    themeSummaryCheckBox.Checked &&
                    themeKeywordsCheckBox.Checked)
                {
                    so = new SearchOptions(SearchType.Theme, themeNameTextBox.Text) { FindAll = allThemeNamesRadioButton.Checked };
                    sp.Add(so);
                }
                else
                {
                    if (themeNameCheckBox.Checked)
                    {
                        so = new SearchOptions(SearchType.ThemeName, themeNameTextBox.Text) { FindAll = allThemeNamesRadioButton.Checked };
                        sp.Add(so);
                    }
                    if (themeDescriptionCheckBox.Checked)
                    {
                        so = new SearchOptions(SearchType.ThemeDescription, themeNameTextBox.Text) { FindAll = allThemeNamesRadioButton.Checked };
                        sp.Add(so);
                    }
                    if (themeSummaryCheckBox.Checked)
                    {
                        so = new SearchOptions(SearchType.ThemeSummary, themeNameTextBox.Text) { FindAll = allThemeNamesRadioButton.Checked };
                        sp.Add(so);
                    }
                    if (themeKeywordsCheckBox.Checked)
                    {
                        so = new SearchOptions(SearchType.ThemeTags, themeNameTextBox.Text) { FindAll = allThemeNamesRadioButton.Checked };
                        sp.Add(so);
                    }
                }
            }

            if (HaveMetaSearch)
            {
                if (MetadataAllSectionsCheckBox.Checked)
                    sp.Add(MetaSearch("")); // search the whole document
                else
                {
                    if (metadataAbstactsCheckBox.Checked)
                        sp.Add(MetaSearch("abstract")); // /metadata/idinfo/descript/abstract
                    if (metadataPlaceKeywordsCheckBox.Checked)
                        sp.Add(MetaSearch("placekey"));// /metadata/idinfo/keywords/place/placekey
                    if (metadataThemeKeywordsCheckBox.Checked)
                        sp.Add(MetaSearch("themekey")); // /metadata/idinfo/keywords/theme/themekey
                    
                }
            }
            if (HaveDateSearch)
            {
                so = new SearchOptions(SearchType.PubDate, null);
                if (pubDateAfter.Checked)
                    so.MaxDaysSinceEdit = (DateTime.Now - pubDateAfter.Value).Days;
                if (pubDateBefore.Checked)
                {
                    so.MinDaysSinceEdit = (DateTime.Now - pubDateBefore.Value).Days;
                    if (so.MinDaysSinceEdit < 0)
                        so.MinDaysSinceEdit = 0;
                }
                sp.Add(so);
            }

            if (HaveParkCode)
            {
                // Xpath in FGDC Metadata: /metadata/NPS_Info/NPS_Unit/UnitCode
                so = new SearchOptions(SearchType.Metadata, parkUnitCodeTextBox.Text) {XmlElement = "UnitCode"};
                sp.Add(so);
            }
            return sp;
        }