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); }
/// <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); } }
/// <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); } }
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; } ); }
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; } }
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); } }
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); }
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(); } } } } }
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); } }
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 } ); }
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); }
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); }
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; } ); }
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); } }
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); } }