Example #1
0
        private async Task <SearchResult> QueryAsync(Req.T_OGDSearchRequest request, int seitenNummer)
        {
            request.Seitennummer = seitenNummer;
            request.Sortierung   = new Req.BundesnormenSortExpression()
            {
                SortDirection  = Req.WebSortDirection.Ascending,
                SortedByColumn = Req.BundesnormenSortableColumn.Kurzinformation
            };

            // We do continuous loading in the UI, thus the user cannot specify the page size
            request.DokumenteProSeiteSpecified = true;
            request.DokumenteProSeite          = Req.PageSize.Fifty;

            try
            {
                string requestAsString = MessageSerializationHelper.SerializeToString(request);

                var             client   = CreateServiceClient();
                requestResponse response = await client.requestAsync("Br", requestAsString);

                var searchResult = MessageSerializationHelper.DeserializeFromString <Resp.T_OGDSearchResult>(response.Body.requestResult);
                return(Mapper.MapSearchResult(searchResult));
            }
            catch (Exception ex)
            {
                return(new SearchResult(ex.ToString()));
            }
        }
Example #2
0
        private Req.T_OGDSearchRequest PrepareAdvancedSearch(RisAdvancedQueryParameter param)
        {
            var request = new Req.T_OGDSearchRequest();

            if (!String.IsNullOrWhiteSpace(param.Suchworte))
            {
                request.Suchworte = QueryParser.Parse(param.Suchworte);
            }

            if (!String.IsNullOrWhiteSpace(param.TitelAbkuerzung))
            {
                request.Titel = QueryParser.Parse(param.TitelAbkuerzung);
            }

            if (param.AbschnittTyp != AbschnittTypEnum.NotSpecifiedInQuery)
            {
                var abschnitt = AbschnittParser.Parse(param.Von, param.Bis, param.AbschnittTyp);

                if (null != abschnitt)
                {
                    request.Abschnitt = abschnitt;
                }
            }

            if (!String.IsNullOrWhiteSpace(param.Kundmachungsorgan))
            {
                request.Kundmachungsorgan = new Req.PhraseSearchExpression()
                {
                    Value = param.Kundmachungsorgan
                };
            }

            if (!String.IsNullOrWhiteSpace(param.KundmachungsorganNummer))
            {
                request.Kundmachungsorgannummer = new Req.PhraseSearchExpression()
                {
                    Value = param.KundmachungsorganNummer
                };
            }

            if (!String.IsNullOrWhiteSpace(param.Index))
            {
                request.Index = QueryParser.Parse(param.Index);
            }

            if (param.Unterzeichnungsdatum.HasValue)
            {
                // Does not exist on Service interface
                throw new NotImplementedException();
            }

            if (param.FassungVom.HasValue)
            {
                request.FassungVom          = param.FassungVom.Value.Date;
                request.FassungVomSpecified = true;
            }

            return(request);
        }
Example #3
0
        private Req.T_OGDSearchRequest PrepareAdvancedSearch(RisAdvancedQueryParameter param)
        {
            var request = new Req.T_OGDSearchRequest();

            if (!String.IsNullOrWhiteSpace(param.Suchworte))
            {
                request.Suchworte = QueryParser.Parse(param.Suchworte);
            }

            if (!String.IsNullOrWhiteSpace(param.TitelAbkuerzung))
            {
                request.Titel = QueryParser.Parse(param.TitelAbkuerzung);
            }

            if (param.AbschnittTyp != AbschnittTypEnum.NotSpecifiedInQuery)
            {
                var abschnitt = AbschnittParser.Parse(param.Von, param.Bis, param.AbschnittTyp);

                if (null != abschnitt)
                {
                    request.Abschnitt = abschnitt;
                }
            }

            if (!String.IsNullOrWhiteSpace(param.Kundmachungsorgan))
            {
                request.Kundmachungsorgan = new Req.PhraseSearchExpression()
                                                    {
                                                        Value = param.Kundmachungsorgan
                                                    };
            }

            if (!String.IsNullOrWhiteSpace(param.KundmachungsorganNummer))
            {
                request.Kundmachungsorgannummer = new Req.PhraseSearchExpression()
                                                      {
                                                          Value = param.KundmachungsorganNummer
                                                      };
            }

            if (!String.IsNullOrWhiteSpace(param.Index))
            {
                request.Index = QueryParser.Parse(param.Index);
            }

            if (param.Unterzeichnungsdatum.HasValue)
            {
                // Does not exist on Service interface
                throw new NotImplementedException();
            }

            if (param.FassungVom.HasValue)
            {
                request.FassungVom = param.FassungVom.Value.Date;
                request.FassungVomSpecified = true;
            }

            return request;
        }
Example #4
0
        private Req.T_OGDSearchRequest PrepareFulltextSearch(RisFulltextQueryParameter param)
        {
            var request  = new Req.T_OGDSearchRequest();
            var volltext = new Req.PhraseSearchExpression();

            volltext.Value    = param.SearchText;
            request.Suchworte = volltext;

            return(request);
        }
Example #5
0
        private Req.T_OGDSearchRequest PrepareFulltextSearch(RisFulltextQueryParameter param)
        {
            var request = new Req.T_OGDSearchRequest();
            var volltext = new Req.PhraseSearchExpression();

            volltext.Value = param.SearchText;
            request.Suchworte = volltext;

            return request;
        }
Example #6
0
        public async Task <SearchResult> QueryAsync(RisQueryParameter param, int seitenNummer)
        {
            Req.T_OGDSearchRequest request = null;

            if (param is RisFulltextQueryParameter)
            {
                request = PrepareFulltextSearch((RisFulltextQueryParameter)param);
            }
            else if (param is RisAdvancedQueryParameter)
            {
                request = PrepareAdvancedSearch((RisAdvancedQueryParameter)param);
            }

            if (null == request)
            {
                return(new SearchResult("Kein Query Processor gefunden"));
            }

            request.ImRisSeitSpecified = true;
            request.ImRisSeit          = Mapper.MapChangedWithinToChangesetInterval(param.ImRisSeit);

            return(await QueryAsync(request, seitenNummer));
        }