public async Task <SearchResultSet> SearchAsync(SearchInput input)
        {
            var searchHits = await search.SearchAsync(input);

            var searchResults = new SearchResultSet();

            foreach (var hit in searchHits)
            {
                switch (hit.DocType)
                {
                case "user":
                    searchResults.Users.Add(Convert.ToInt32(hit.DocId), hit.Score);
                    break;

                case "organization":
                    searchResults.Organizations.Add(Convert.ToInt32(hit.DocId), hit.Score);
                    break;

                case "ticket":
                    searchResults.Tickets.Add(Guid.Parse(hit.DocId), hit.Score);
                    break;
                }
            }

            return(searchResults);
        }
Exemple #2
0
        /// <summary>
        /// Tries to resolve a beatmap's ID to an object.
        /// </summary>
        public static async Task <BeatmapSet> TryResolveBeatmapId(string bmId)
        {
            try
            {
                SearchResultSet data = await Search(bmId);

                // look for the diff id within the set we want
                return(data.Results.First(b => b.Difficulties.FirstOrDefault(d => d.Id == bmId) != null));
            }
            catch { return(null); }
        }
Exemple #3
0
        /// <summary>
        /// Tries to resolve a beatmap set's ID to an object.
        /// </summary>
        public static async Task <BeatmapSet> TryResolveSetId(string setId)
        {
            // to leverage the json "api", we have to be logged in vs scraping the page without logged in
            // i think the json api way is much preferrable. we have to be logged in to search anyway, which this uses.
            try
            {
                SearchResultSet data = await Search(setId);

                // throws if no exist so thats good
                return(data.Results.First(b => b.Id == setId));
            }
            catch { return(null); }
        }
Exemple #4
0
        public override void SearchStartSession(List <string> searchProviders, string query, SearchResultSetDelegate searchStartSessionComplete)
        {
            _searchClusterTask = new SearchClusterTask();

            ThreadPool.QueueUserWorkItem(delegate(object state)
            {
                SearchResultSet searchResultSet                   = new SearchResultSet();
                searchResultSet.SearchDescription                 = new SearchDescription();
                searchResultSet.SearchDescription.Id              = Guid.NewGuid();
                searchResultSet.SearchDescription.Query           = query;
                searchResultSet.SearchDescription.QueryDate       = DateTime.Now.ToUniversalTime();
                searchResultSet.SearchDescription.SearchProviders = searchProviders;

                searchResultSet.SearchAggregateResults = _searchClusterTask.Search(searchProviders, query, _numItemsToRetrieve, CultureHelper.CurrentCulture);

                if (searchResultSet.SearchAggregateResults.Count > 0)
                {
                    if (!_searchClusterTask.Aborted)
                    {
                        searchResultSet.SearchClusters = _searchClusterTask.Cluster(query, CultureHelper.CurrentCulture);
                    }

                    if (!_searchClusterTask.Aborted)
                    {
                        try
                        {
                            byte[] packedData = Obany.Language.Xml.XmlHelper.BinarySerialize(searchResultSet);

                            SearchResultSetSaveLocal(searchResultSet.SearchDescription, packedData, true);
                        }
                        catch
                        {
                        }
                    }
                }
                else
                {
                    _searchClusterTask.Aborted = true;
                }

                if (searchStartSessionComplete != null)
                {
                    searchStartSessionComplete(_searchClusterTask.Aborted ? null : searchResultSet);
                }

                _searchClusterTask = null;
            }
                                         );
        }
Exemple #5
0
        private async void search(bool newSearch)
        {
            try
            {
                searchingLoading.Visibility = Visibility.Visible;

                string        searchText = lastSearchText = newSearch ? searchBox.Text : lastSearchText;
                OsuRankStatus rankedVal  = lastRankedVal = newSearch ? (rankedStatusBox.SelectedItem as KVItem <OsuRankStatus>).Value : lastRankedVal;
                OsuModes      modeVal    = lastModeVal = newSearch ? (modeSelectBox.SelectedItem as KVItem <OsuModes>).Value : lastModeVal;

                BloodcatIdFilter?viaVal  = null;
                bool             osuMode = SettingManager.Get("useOfficialOsu");
                if (!osuMode)
                {
                    viaVal = lastBloodcatNumbersFilterVal = newSearch ? (searchViaSelectBox.Visibility == Visibility.Hidden ? null : (BloodcatIdFilter?)(searchViaSelectBox.SelectedItem as KVItem <BloodcatIdFilter>).Value) : lastBloodcatNumbersFilterVal;
                }

                searchCurrentPage = newSearch ? 1 : (searchCurrentPage + 1);

                SearchResultSet results;
                if (osuMode)
                {
                    results = await Osu.Search(searchText, rankedVal, modeVal, searchCurrentPage);
                }
                else
                {
                    results = await Bloodcat.Search(searchText, rankedVal, modeVal, viaVal, searchCurrentPage);
                }

                lastSearchResults = results;

                populateBeatmaps(results.Results, newSearch);
            }
            catch (Osu.SearchNotSupportedException) { MessageBox.Show("Sorry, this mode of Ranking search is currently not supported via the official osu! servers."); }
            catch (Osu.CookiesExpiredException)
            {
                if (await DownloadManagement.TryRenewOsuCookies())
                {
                    search(newSearch); // success, try at it again
                }
                return;
            }
            catch (Exception ex) { MessageBox.Show("There was an error searching for beatmaps...\n\n" + ex.ToString()); }
            finally { searchingLoading.Visibility = Visibility.Hidden; }
        }
Exemple #6
0
 private void ShowResults(SearchCompletedEventArgs e)
 {
     if (e.Error == null)
     {
         lstResult.Height = 400;
         lstResult.Items.Clear();
         spResult.Visibility = Visibility.Visible;
         SearchResultSet searchResultSet = e.Result;
         foreach (SearchResult sr in searchResultSet.SearchResults.Values)
         {
             lstResult.Items.Add(new ResultView(sr));
         }
         tbStatus.Text = string.Format("Total {0} archivos encontrados ({1} segundos)", searchResultSet.SearchResults.Count, searchResultSet.SearchSeconds);
     }
     else
     {
         tbStatus.Text = string.Format("Ocurrió un error inesperado: {0}", e.Error.Message);
     }
 }
Exemple #7
0
        public SearchResultSet SearchMasterIndices(SearchQuery searchQuery)
        {
            var results = new SearchResultSet()
            {
                MaxResults = searchQuery.MaxResults,
                Results    = new List <SearchResult>()
            };

            // Perform the search.
            int total = 0;
            var sw    = new Stopwatch();

            sw.Start();
            foreach (var result in GetSearchResults(searchQuery))
            {
                if (result.Confidence >= searchQuery.ConfidenceThreshold)
                {
                    results.Results.Add(result);
                    results.NumResultsFound++;

                    // Stop searching if the maximum number of results is reached.
                    if (results.NumResultsFound > searchQuery.MaxResults)
                    {
                        // Stop the timer here since closing the loop can be expensive.
                        sw.Stop();

                        // Rule: Don't return any results if the search was too broad. However, we still want to know
                        // that this was the reason, so preserve the count.
                        results.Results.Clear();
                        break;
                    }
                }
                total++;
            }
            if (sw.IsRunning)
            {
                sw.Stop();
            }

            results.NumRecordsSearched = total;
            results.SearchTime         = sw.Elapsed;
            return(results);
        }
Exemple #8
0
        static void Main(string[] args)
        {
            bool isLoggedIn = false;

            using (RetsSession retssession = new RetsSession("http://www.eele-rets.com:6160/rets/login"))
            {
                retssession.UseHttpGet(true);
                //retssession.
                isLoggedIn = retssession.Login("corcoran", "JDXzmkGa");

                if (isLoggedIn)
                {
                    var urls = retssession.GetCapabilityUrls();
                    Console.WriteLine(urls.GetLoginUrl());

                    RetsMetadata metadata  = retssession.GetMetadata();
                    IEnumerable  resources = metadata.GetAllResources();

                    using (SearchRequest searchRequest = retssession.CreateSearchRequest(
                               "Property",
                               "CLISTINGS",
                               "(Modified=2016-12-12T00:00:00+)"))
                    {
                        searchRequest.SetQueryType(SearchRequest.QueryType.DMQL2);
                        searchRequest.SetStandardNames(false);
                        searchRequest.SetOffset(SearchRequest.OFFSET_NONE);
                        SearchResultSet results = retssession.Search(searchRequest);
                        Console.WriteLine("Record count: " + results.GetCount());
                        Console.WriteLine();
                        IEnumerable columns = results.GetColumns();
                        while (results.HasNext())
                        {
                            foreach (string column in columns)
                            {
                                Console.WriteLine(column + ": " + results.GetString(column));
                            }
                            Console.WriteLine();
                        }
                    }
                }
            }
        }
Exemple #9
0
 void soulstoneService_AdvancedSearchCompleted(object sender, Soulstone.SL.SoulstoneService.SearchCompletedEventArgs e)
 {
     SoulstoneService.SearchCompleted -= new EventHandler <SearchCompletedEventArgs>(soulstoneService_AdvancedSearchCompleted);
     if (e.Error == null)
     {
         lstResult.Items.Clear();
         lstResult.Height    = 260;
         spResult.Visibility = Visibility.Visible;
         SearchResultSet searchResultSet = e.Result;
         foreach (SearchResult sr in searchResultSet.SearchResults.Values)
         {
             lstResult.Items.Add(new ResultView(sr));
         }
         tbStatus.Text = string.Format("Total {0} archivos encontrados ({1} segundos)", searchResultSet.SearchResults.Count, searchResultSet.SearchSeconds);
     }
     else
     {
         tbStatus.Text = string.Format("Ocurrió un error inesperado: {0}", e.Error.Message);
     }
 }
Exemple #10
0
        public override void SearchResultSetLoad(SearchDescription searchDescription, SearchResultSetDelegate searchResultSetLoadComplete)
        {
            byte[] localSearchResultSetData = SearchResultSetLoadLocal(searchDescription.Id);

            if (localSearchResultSetData != null)
            {
                SearchResultSet searchResultSet = null;

                try
                {
                    searchResultSet = Obany.Language.Xml.XmlHelper.BinaryDeserialize <SearchResultSet>(localSearchResultSetData);
                }
                catch
                {
                }

                if (searchResultSetLoadComplete != null)
                {
                    searchResultSetLoadComplete(searchResultSet);
                }
            }
        }
        private void SearchVisualise(string query)
        {
            documentViewer.Visibility = Visibility.Collapsed;
            documentViewer.Cleanup();
            annotationCanvas.ClearContent();
            DisplayNewVisualisation(null);

            ShowSearchResultProgressDialog(CultureHelper.GetString(Properties.Resources.ResourceManager, "SEARCHING") + "...");

            foreach (string searchProviderName in searchSelector.SearchProviders)
            {
                _progressControl.AddItem(searchProviderName, _coreLogic.NumberItemsToRetrieve);
            }

            SearchResultSet searchResultSet = new SearchResultSet();
            searchResultSet.SearchDescription = new SearchDescription();
            searchResultSet.SearchDescription.Query = query;
            searchResultSet.SearchDescription.QueryDate = DateTime.Now;
            searchResultSet.SearchDescription.SearchProviders = searchSelector.SearchProviders;

            _currentSearchVisualisation = new SearchVisualisation();
            _currentSearchVisualisation.Visualisation = visualisationSelector.Visualisation;
            _currentSearchVisualisation.Localise();
            _currentSearchVisualisation.ItemActivated += new SearchVisualisation.ItemActivatedEventHandler(SearchVisualisation_ItemActivated);
            _currentSearchVisualisation.ItemSelected += new SearchVisualisation.ItemSelectedEventHandler(SearchVisualisation_ItemSelected);
            _currentSearchVisualisation.SearchResultSet = searchResultSet;

            searchVisualisationTab.AddSearchVisualisation(_currentSearchVisualisation);

            InformationPanelRefresh();
            ActionButtonsRefresh();

            _gettingProgress = false;
            _progressTimer = new DispatcherTimer();
            _progressTimer.Interval = TimeSpan.FromMilliseconds(200);
            _progressTimer.Tick += new EventHandler(_progressTimer_Tick);
            _progressTimer.Start();

            _coreLogic.SearchStartSession(searchResultSet.SearchDescription.SearchProviders, query,
                delegate(SearchResultSet searchResultSet2)
                {
                    Action a = delegate()
                    {
                        if (_progressTimer != null)
                        {
                            _progressTimer.Stop();
                            _gettingProgress = false;
                        }

                        if (searchResultSet2 != null && _currentSearchVisualisation != null)
                        {
                            _currentSearchVisualisation.SearchResultSet = searchResultSet2;
                            _currentSearchVisualisation.PopulateVisualisation();
                            DialogPanel.Close(_progressControl, DialogResult.Ok);
                        }
                        else
                        {
                            DialogPanel.Close(_progressControl, DialogResult.Cancel);
                        }
                    };
            #if SILVERLIGHT
                    Dispatcher.BeginInvoke(a);
            #else
                    Dispatcher.Invoke(a);
            #endif
                }
             );
        }
Exemple #12
0
    public string GetBookStatus(string id)
    {
        SqlDataAdapter da = new SqlDataAdapter();

        da.SelectCommand            = new SqlCommand();
        da.SelectCommand.Connection = new SqlConnection(ConfigurationManager.ConnectionStrings["BookStatusConnection"].ConnectionString);

        string result = "";

        string          fund = id.Substring(0, id.LastIndexOf("_")).ToUpper();
        string          ID   = id.Substring(id.LastIndexOf("_") + 1);
        SearchResultSet res;

        switch (fund)
        {
        case "BJVVV":
        case "BJACC":
        case "BJFCC":
        case "BJSCC":
        case "BRIT_SOVET":
            break;

        case "REDKOSTJ":
        case "PEARSON":
        case "LITRES":
            result           = "available";
            res              = new SearchResultSet();
            res.id           = id;
            res.availability = result;
            result           = JsonConvert.SerializeObject(res, Newtonsoft.Json.Formatting.Indented);
            return(result);

        case "PERIOD":
            result           = "unknown";
            res              = new SearchResultSet();
            res.id           = id;
            res.availability = result;
            result           = JsonConvert.SerializeObject(res, Newtonsoft.Json.Formatting.Indented);
            return(result);

        default:
            result           = "unknown";
            res              = new SearchResultSet();
            res.id           = id;
            res.availability = result;
            result           = JsonConvert.SerializeObject(res, Newtonsoft.Json.Formatting.Indented);
            return(result);
        }
        string[] exemplars = GetExemplars(fund, ID);
        int      booked    = 0;
        int      busy      = 0;
        int      available = 0;
        int      unknown   = 0;

        foreach (string exemplar in exemplars)
        {
            string status = GetExemplarStatus(exemplar, fund);
            if (status.Contains("available"))
            {
                available++;
                continue;
            }
            if (status.Contains("busy"))
            {
                busy++;
                continue;
            }
            if (status.Contains("booked"))//booked считаем как unavailiable, чтобы в каталоге только два статуса было доступен/недоступен
            {
                busy++;
                continue;
            }
            if (status.Contains("unknown"))
            {
                unknown++;
                continue;
            }
        }
        if (exemplars.Length == 0)
        {
            result = "unkonown";
        }
        else if (available > 0)
        {
            result = "available";
        }
        else if (busy == exemplars.Length)
        {
            result = "unavailable";
        }
        else if (unknown == exemplars.Length)
        {
            result = "unkonown";
        }
        else if (booked > 0)
        {
            result = "unavailable";
        }
        else
        {
            result = "unknown";
        }

        res              = new SearchResultSet();
        res.id           = id;
        res.availability = result;
        result           = JsonConvert.SerializeObject(res, Newtonsoft.Json.Formatting.Indented);
        return(result);
    }
Exemple #13
0
    public string GetExemplarStatus(string IDDATA, string BaseName)
    {
        SearchResultSet res    = new SearchResultSet();
        string          result = "unknown";

        if ((BaseName.ToLower() == "litres") || (BaseName.ToLower() == "pearson") || (IDDATA.ToLower() == "ebook"))
        {
            res.id           = IDDATA;
            res.availability = "available";
            result           = JsonConvert.SerializeObject(res, Newtonsoft.Json.Formatting.Indented);
            return(result);
        }
        if (IDDATA == string.Empty)
        {
            res.id           = IDDATA;
            res.availability = "unknown";
            result           = JsonConvert.SerializeObject(res, Newtonsoft.Json.Formatting.Indented);
            return(result);
        }

        SqlDataAdapter da = new SqlDataAdapter();

        da.SelectCommand            = new SqlCommand();
        da.SelectCommand.Connection = new SqlConnection(ConfigurationManager.ConnectionStrings["BookStatusConnection"].ConnectionString);
        da.SelectCommand.Parameters.Add("IDDATA", SqlDbType.Int).Value = IDDATA;
        //da.SelectCommand.Parameters["IDDATA"].Value = IDDATA;
        da.SelectCommand.Parameters.Add("RET", SqlDbType.NVarChar, 200).Direction = ParameterDirection.Output;
        da.SelectCommand.CommandType = CommandType.StoredProcedure;
        switch (BaseName)
        {
        case "BJVVV":
            da.SelectCommand.Parameters.Add("INV", SqlDbType.NVarChar).Value = "";
            da.SelectCommand.CommandText = "Reservation_R.dbo.ForOPAC_MF";
            break;

        case "BJACC":
            da.SelectCommand.CommandText = "Reservation_R.dbo.ForOPAC_ACC";
            break;

        case "BJFCC":
            da.SelectCommand.CommandText = "Reservation_R.dbo.ForOPAC_FCC";
            break;

        case "BJSCC":
            da.SelectCommand.CommandText = "Reservation_R.dbo.ForOPAC_SCC";
            break;

        case "BRIT_SOVET":
            da.SelectCommand.CommandText = "Reservation_R.dbo.ForOPAC_BRIT_SOVET";
            break;

        case "REDKOSTJ":
            res.id           = IDDATA;
            res.availability = "available";
            result           = JsonConvert.SerializeObject(res, Newtonsoft.Json.Formatting.Indented);
            return(result);

        default:
            throw new Exception("неверное имя базы");
        }

        da.SelectCommand.Connection.Open();
        da.SelectCommand.ExecuteNonQuery();
        da.SelectCommand.Connection.Close();


        result = da.SelectCommand.Parameters["RET"].Value.ToString().ToLower();

        if (result.Contains("списано"))
        {
            result = "unavailable";
        }
        else if (result.Contains("занято"))
        {
            result = "unavailable";
        }
        else if (result.Contains("свободно"))
        {
            result = "available";
        }
        else if (result.Contains("заказано"))
        {
            result = "unavailable";
        }
        else if (result.Contains("бронеполка"))
        {
            result = "unavailable";
        }
        else if (result.Contains("принят"))
        {
            result = "unavailable";
        }
        else if (result.Contains("подготовлен"))
        {
            result = "available";
        }
        else
        {
            result = "available";
        }

        res              = new SearchResultSet();
        res.id           = IDDATA.ToString();
        res.availability = result;
        result           = JsonConvert.SerializeObject(res, Newtonsoft.Json.Formatting.Indented);
        return(result);
    }
Exemple #14
0
    static void Main(string[] args)
    {
        Options options = new Options();

        if (!options.Parse(args))
        {
            Environment.Exit(1);
        }

        RetsSession session = options.SessionFactory();

        try {
            if (!session.Login(options.user_name, options.user_password))
            {
                Console.WriteLine("Invalid login");
                Environment.Exit(1);
            }
        } catch (Exception e)
        {
            Console.WriteLine("RetsException: " + e);
            Environment.Exit(1);
        }

        Console.WriteLine("Action: " + session.GetAction());
        RetsVersion version = session.GetDetectedRetsVersion();

        Console.WriteLine("RETS Version: " +
                          ((version == RetsVersion.RETS_1_5) ? "1.5" :
                           ((version == RetsVersion.RETS_1_7) ? "1.7" : "1.0")));

        SearchRequest searchRequest = session.CreateSearchRequest(
            options.search_type, options.search_class, options.query);

        searchRequest.SetSelect(options.select);
        searchRequest.SetLimit(options.limit);
        searchRequest.SetOffset(options.offset);
        searchRequest.SetCountType(options.count);
        searchRequest.SetStandardNames(options.standard_names);
        searchRequest.SetRestrictedIndicator("XXXX");
        searchRequest.SetFormatType(SearchRequest.FormatType.COMPACT);
        SearchResultSet results = session.Search(searchRequest);

        Console.WriteLine("Record count: " + results.GetCount());
        Console.WriteLine();
        IEnumerable columns = null;

        while (results.HasNext())
        {
            if (columns == null)
            {
                columns = results.GetColumns();
            }
            foreach (string column in columns)
            {
                Console.WriteLine(column + ": " + results.GetString(column));
            }
            Console.WriteLine();
        }

        LogoutResponse logout = session.Logout();

        Console.WriteLine("Billing info: " + logout.GetBillingInfo());
        Console.WriteLine("Logout message: " + logout.GetLogoutMessage());
        Console.WriteLine("Connect time: " + logout.GetConnectTime());
    }
    /*
     * This class demonstrates the interleaving of search transactions.
     */
    static void Main(string[] args)
    {
        Options options = new Options();

        if (!options.Parse(args))
        {
            Environment.Exit(1);
        }

        RetsSession session = options.SessionFactory();

        try {
            if (!session.Login(options.user_name, options.user_password))
            {
                Console.WriteLine("Invalid login");
                Environment.Exit(1);
            }
        } catch (Exception e)
        {
            Console.WriteLine("RetsException: " + e);
            Environment.Exit(1);
        }

        RetsVersion version = session.GetDetectedRetsVersion();

        Console.WriteLine("RETS Version: " +
                          ((version == RetsVersion.RETS_1_5) ? "1.5" :
                           ((version == RetsVersion.RETS_1_7) ? "1.7" : "1.0")));

        /*
         * Find the key field for the resource.
         */
        RetsMetadata     metadata         = session.GetMetadata();
        MetadataResource metadataResource = metadata.GetResource(options.search_type);

        if (metadataResource == null)
        {
            Console.WriteLine("Invalid resource: " + options.search_type);
            session.Logout();
            Environment.Exit(1);
        }

        string keyField = metadataResource.GetKeyField();

        /*
         * Find the timestamp field if it is known (RETS 1.7 and later). If
         * not known, then the user must provide it.
         */
        MetadataClass metadataClass = metadata.GetClass(options.search_type, options.search_class);

        if (metadataClass == null)
        {
            Console.WriteLine("Invalid resource:class: " + options.search_type + ":" + options.search_class);
            session.Logout();
            Environment.Exit(2);
        }

        if (options.classTimeStamp != null && options.classTimeStamp.Length == 0)
        {
            options.classTimeStamp = metadataClass.GetStringAttribute("ClassTimeStamp");
        }

        if (options.classTimeStamp == null || options.classTimeStamp.Length == 0)
        {
            Console.WriteLine("Class " + options.search_type +
                              ":" + options.search_class +
                              " has no ClassTimeStamp specified in the metadata.");
            Console.WriteLine("Please manually provide one using the --timetsamp switch.");
            session.Logout();
            Environment.Exit(2);
        }

        /*
         * See if the last modified timestamp has been provided. If not, use yesterday.
         */
        if (options.lastModified == null || options.lastModified.Length == 0)
        {
            DateTime ts = DateTime.Now;

            options.lastModified = ts.AddDays(-1).ToString("yyyy-MM-dd");
        }

        /*
         * OK - let's find all listings that have changed since the lastModified date.
         */

        SearchRequest searchRequest = session.CreateSearchRequest(
            options.search_type,
            options.search_class,
            "(" +
            options.classTimeStamp.ToString() +
            "=" +
            options.lastModified.ToString() +
            "+)");

        searchRequest.SetSelect(keyField);
        searchRequest.SetLimit(SearchRequest.LIMIT_NONE);
        searchRequest.SetOffset(SearchRequest.OFFSET_NONE);
        searchRequest.SetCountType(SearchRequest.CountType.RECORD_COUNT_AND_RESULTS);
        searchRequest.SetStandardNames(false);

        /*
         * This starts the outer search.
         */
        SearchResultSet results = session.Search(searchRequest);

        Console.WriteLine("Record count: " + results.GetCount());
        Console.WriteLine();

        while (results.HasNext())
        {
            /*
             * Fetch the listing detail and media. This will cause a separate search transaction
             * to be open within the outer search transaction.
             */
            SearchRequest listingRequest = session.CreateSearchRequest(
                options.search_type,
                options.search_class,
                "(" +
                keyField +
                "=" +
                results.GetString(keyField) +
                ")");
            listingRequest.SetStandardNames(false);
            listingRequest.SetLimit(SearchRequest.LIMIT_DEFAULT);
            listingRequest.SetOffset(SearchRequest.OFFSET_NONE);
            listingRequest.SetCountType(SearchRequest.CountType.NO_RECORD_COUNT);
            listingRequest.SetFormatType(SearchRequest.FormatType.COMPACT);

            SearchResultSet listingResult = session.Search(listingRequest);
            IEnumerable     columns       = null;

            while (listingResult.HasNext())
            {
                if (columns == null)
                {
                    columns = listingResult.GetColumns();
                }

                /*
                 * Show the listing detail.
                 */
                foreach (string column in columns)
                {
                    Console.WriteLine("{0,15}: {1}", column, listingResult.GetString(column));
                }
                Console.WriteLine();

                /*
                 * Now set up to fetch the objects associated with this listing.
                 */
                GetObjectRequest getObjectRequest = new GetObjectRequest(options.search_type, "Photo");
                getObjectRequest.AddAllObjects(listingResult.GetString(keyField));

                GetObjectResponse getObjectResponse = session.GetObject(getObjectRequest);

                foreach (ObjectDescriptor objectDescriptor in getObjectResponse)
                {
                    /*
                     * Report the object details.
                     */
                    string objectKey = objectDescriptor.GetObjectKey();
                    int    objectId  = objectDescriptor.GetObjectId();
                    //string  contentType = objectDescriptor.GetContentType();
                    string description = objectDescriptor.GetDescription();

                    Console.Write("Object " + objectKey + ":" + objectId.ToString());
                    if (description.Length > 0)
                    {
                        Console.Write(", description: " + description);
                    }
                    Console.WriteLine();
                }
                Console.WriteLine("=================");
            }
        }

        session.Logout();
    }
        public override void SearchStartSession(List<string> searchProviders, string query, SearchResultSetDelegate searchStartSessionComplete)
        {
            _searchClusterTask = new SearchClusterTask();

            ThreadPool.QueueUserWorkItem(delegate(object state)
                {
                    SearchResultSet searchResultSet = new SearchResultSet();
                    searchResultSet.SearchDescription = new SearchDescription();
                    searchResultSet.SearchDescription.Id = Guid.NewGuid();
                    searchResultSet.SearchDescription.Query = query;
                    searchResultSet.SearchDescription.QueryDate = DateTime.Now.ToUniversalTime();
                    searchResultSet.SearchDescription.SearchProviders = searchProviders;

                    searchResultSet.SearchAggregateResults = _searchClusterTask.Search(searchProviders, query, _numItemsToRetrieve, CultureHelper.CurrentCulture);

                    if (searchResultSet.SearchAggregateResults.Count > 0)
                    {
                        if (!_searchClusterTask.Aborted)
                        {
                            searchResultSet.SearchClusters = _searchClusterTask.Cluster(query, CultureHelper.CurrentCulture);
                        }

                        if (!_searchClusterTask.Aborted)
                        {
                            try
                            {
                                byte[] packedData = Obany.Language.Xml.XmlHelper.BinarySerialize(searchResultSet);

                                SearchResultSetSaveLocal(searchResultSet.SearchDescription, packedData, true);
                            }
                            catch
                            {
                            }
                        }
                    }
                    else
                    {
                        _searchClusterTask.Aborted = true;
                    }

                    if (searchStartSessionComplete != null)
                    {
                        searchStartSessionComplete(_searchClusterTask.Aborted ? null : searchResultSet);
                    }

                    _searchClusterTask = null;
                }
            );
        }
Exemple #17
0
    static void Main(string[] args)
    {
        Options options = new Options();

        if (!options.Parse(args))
        {
            Environment.Exit(1);
        }

        RetsSession session = options.SessionFactory();

        try {
            if (!session.Login(options.user_name, options.user_password))
            {
                Console.WriteLine("Invalid login");
                Environment.Exit(1);
            }
        } catch (Exception e)
        {
            Console.WriteLine("RetsException: " + e);
            Environment.Exit(1);
        }

        SearchRequest searchRequest = session.CreateSearchRequest(
            options.search_type, options.search_class, options.query);

        searchRequest.SetSelect(options.select);
        searchRequest.SetLimit(options.limit);
        searchRequest.SetOffset(options.offset);
        searchRequest.SetCountType(options.count);
        searchRequest.SetStandardNames(options.standard_names);

        try
        {
            Stream  outputStream = File.OpenWrite("rawsearch.xml");
            byte [] data         = session.SearchAsArray(searchRequest);
            outputStream.Write(data, 0, data.Length);
            outputStream.Close();
        }
        catch (Exception e)
        {
            Console.WriteLine("RetsException: " + e);
            session.Logout();
            Environment.Exit(1);
        }

        session.Logout();

        try
        {
            // I'd rather use ReadAllBytes, but it doesn't exist in all versions.
            // byte [] data = File.ReadAllBytes("rawsearch.xml");
            //
            FileInfo   info        = new FileInfo("rawsearch.xml");
            int        len         = (int)info.Length;
            byte []    data        = new byte [len];
            FileStream inputStream = info.OpenRead();
            inputStream.Read(data, 0, len);

            SearchResultSet results = new SearchResultSet();

            results.SetEncoding(options.encoding);
            results.SetDataAsArray(data);

            Console.WriteLine("Record count: " + results.GetCount());
            Console.WriteLine();
            IEnumerable columns = null;

            while (results.HasNext())
            {
                if (columns == null)
                {
                    columns = results.GetColumns();
                }
                foreach (string column in columns)
                {
                    Console.WriteLine(column + ": " + results.GetString(column));
                }
                Console.WriteLine();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("RetsException: " + e);
            session.Logout();
            Environment.Exit(1);
        }
    }
Exemple #18
0
    static void Main(string[] args)
    {
        Options options  = new Options();

        if (!options.Parse(args))
            Environment.Exit(1);

        RetsSession session = options.SessionFactory();

        try {

        if (!session.Login(options.user_name, options.user_password))
        {
            Console.WriteLine("Invalid login");
            Environment.Exit(1);
        }
        } catch (Exception e)
        {
            Console.WriteLine("RetsException: " + e);
            Environment.Exit(1);
        }

        SearchRequest searchRequest = session.CreateSearchRequest(
            options.search_type, options.search_class, options.query);

        searchRequest.SetSelect(options.select);
        searchRequest.SetLimit(options.limit);
        searchRequest.SetOffset(options.offset);
        searchRequest.SetCountType(options.count);
        searchRequest.SetStandardNames(options.standard_names);

        try
        {
            Stream outputStream = File.OpenWrite("rawsearch.xml");
            byte [] data = session.SearchAsArray(searchRequest);
            outputStream.Write(data, 0, data.Length);
            outputStream.Close();
        }
        catch (Exception e)
        {
            Console.WriteLine("RetsException: " + e);
            session.Logout();
            Environment.Exit(1);
        }

        session.Logout();

        try
        {
            // I'd rather use ReadAllBytes, but it doesn't exist in all versions.
            // byte [] data = File.ReadAllBytes("rawsearch.xml");
            //
            FileInfo info = new FileInfo("rawsearch.xml");
            int len = (int)info.Length;
            byte [] data = new byte [len];
            FileStream inputStream = info.OpenRead();
            inputStream.Read(data,0,len);

            SearchResultSet results = new SearchResultSet();

            results.SetEncoding(options.encoding);
            results.SetDataAsArray(data);

            Console.WriteLine("Record count: " + results.GetCount());
            Console.WriteLine();
            IEnumerable columns = null;

            while (results.HasNext())
            {
                if (columns == null)
                {
                    columns = results.GetColumns();
                }
                foreach (string column in columns)
                {
                    Console.WriteLine(column + ": " + results.GetString(column));
                }
                Console.WriteLine();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("RetsException: " + e);
            session.Logout();
            Environment.Exit(1);
        }
    }