public NoSQLTestResult TestCosmos(CosmosTestData data) { var result = new NoSQLTestResult(); try { DocumentClient client = new DocumentClient(new Uri(data.CosmosDBUri), data.CosmosDBKey); // Query using partition key IQueryable <Listing> query = client.CreateDocumentQuery <Listing>( UriFactory.CreateDocumentCollectionUri("realEstate", "listings")) .Where(m => m.State != "AZ"); foreach (var listing in query) { result.AllListings.Add(listing); } if (result.AllListings.Count > 0) { result.Passed = true; result.Status = "Cosmos DB is properly configured."; } else { result.Passed = false; result.Status = "Cosmos DB does not have any qualifying data."; } } catch (Exception ex) { result.Passed = false; result.Status = $"There was an error processing the Cosmos DB database: {ex.ToString()}"; } return(result); }
public ActionResult NoSQL(CosmosTestData data) { var test = new TestProcessor(); NoSQLTestResult result = new NoSQLTestResult() { Ignore = false }; if (TestType.TestCosmosDB && TestType.TestSearch) { var cosmosDBResult = test.TestCosmos(data); var searchResult = test.TestSearch(data); result = new NoSQLTestResult(cosmosDBResult, searchResult); } else if (TestType.TestCosmosDB) { result = test.TestCosmos(data); } else { result = test.TestSearch(data); } result.Ignore = false; ViewBag.Result = result; return(View(data)); }
public NoSQLTestResult TestSearch(CosmosTestData data) { var result = new NoSQLTestResult(); try { string searchServiceName = data.SearchName; string queryApiKey = data.SearchKey; SearchIndexClient indexClient = new SearchIndexClient(searchServiceName, "documentdb-index", new SearchCredentials(queryApiKey)); SearchParameters parameters; parameters = new SearchParameters() { Select = new[] { "PropertyID", "Street", "City", "State", "PostalCode", "Description", "Price" }, Filter = "Price lt 900000000000.00" }; DocumentSearchResult <Listing> results = indexClient.Documents.Search <Listing>("*", parameters); foreach (SearchResult <Listing> document in results.Results) { result.SearchResults.Add(document.Document); } if (result.SearchResults.Count > 0) { result.Passed = true; result.Status = "Search is properly configured"; } else { result.Passed = false; result.Status = "Search returned zero results"; } } catch (Exception ex) { result.Status = $"Search encountered an error: {ex.Message}"; result.Passed = false; } return(result); }