// Requests clustering data from the database public static async Task <List <ClusterPersonalDetailsWithoutNull> > QueryClusterDetailsAsync() { var sqlQueryText = "SELECT c.document.Extraversion, c.document.Agreeableness, c.document.Conscientiousness, c.document.Neuroticism, c.document.Openness FROM c"; QueryDefinition queryDefinition = new QueryDefinition(sqlQueryText); CosmosClient cosmosClient = new CosmosClient(cosmosServiceEndpoint, cosmosDBKey); Azure.Cosmos.Database database; database = await cosmosClient.CreateDatabaseIfNotExistsAsync(cosmosDBDatabaseName); Container container; container = await database.CreateContainerIfNotExistsAsync(cosmosDBConteinerId, "/id"); FeedIterator <ClusterPersonalDetails> queryResultSetIterator = container.GetItemQueryIterator <ClusterPersonalDetails>(queryDefinition); List <ClusterPersonalDetails> detailsList = new List <ClusterPersonalDetails>(); while (queryResultSetIterator.HasMoreResults) { Azure.Cosmos.FeedResponse <ClusterPersonalDetails> currentResultSet = await queryResultSetIterator.ReadNextAsync(); foreach (ClusterPersonalDetails details in currentResultSet) { detailsList.Add(details); } } return(RemoveNullValues(detailsList)); }
// Gets alla the questionnaires from the database public static async Task <List <KeyValuePair <string, List <QuestionTopFive> > > > QueryQuestionnairesAsync() { var sqlQueryText = "SELECT c.document.Key, c.document[\"Value\"] FROM c"; QueryDefinition queryDefinition = new QueryDefinition(sqlQueryText); CosmosClient cosmosClient = new CosmosClient(cosmosServiceEndpoint, cosmosDBKey); Azure.Cosmos.Database database; database = await cosmosClient.CreateDatabaseIfNotExistsAsync(cosmosDBDatabaseName); Container container; container = await database.CreateContainerIfNotExistsAsync(cosmosDBConteinerIdQuestionnaires, "/id"); FeedIterator <KeyValuePair <string, List <QuestionTopFive> > > queryResultSetIterator = container.GetItemQueryIterator <KeyValuePair <string, List <QuestionTopFive> > >(queryDefinition); var questionnaireList = new List <KeyValuePair <string, List <QuestionTopFive> > >(); while (queryResultSetIterator.HasMoreResults) { Azure.Cosmos.FeedResponse <KeyValuePair <string, List <QuestionTopFive> > > currentResultSet = await queryResultSetIterator.ReadNextAsync(); foreach (KeyValuePair <string, List <QuestionTopFive> > questionnaire in currentResultSet) { questionnaireList.Add(questionnaire); } } return(ReplaceMissingQuestionValues(questionnaireList)); }