Nfield.Services.Implementation.NfieldLanguagesService.QueryAsync C# (CSharp) Method

QueryAsync() public method

See INfieldLanguagesService.QueryAsync
public QueryAsync ( string surveyId ) : Task>
surveyId string
return Task>
        public Task<IQueryable<Language>> QueryAsync(string surveyId)
        {
            CheckSurveyId(surveyId);

            return Client.GetAsync(LanguagesApi(surveyId, 0).AbsoluteUri)
                         .ContinueWith(
                             responseMessageTask => responseMessageTask.Result.Content.ReadAsStringAsync().Result)
                         .ContinueWith(
                             stringTask =>
                             JsonConvert.DeserializeObject<List<Language>>(stringTask.Result).AsQueryable())
                         .FlattenExceptions();
        }

Usage Example

        public void TestQueryAsync_ServerReturnsQuery_ReturnsListWithLanguages()
        {
            var expectedLanguages = new Language[]
            { new Language{Id = 11, Name = "X"},
              new Language{Id = 12, Name = "Y"}
            };
            var mockedNfieldConnection = new Mock<INfieldConnectionClient>();
            var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection);
            mockedHttpClient
                .Setup(client => client.GetAsync(ServiceAddress + "Surveys/" + SurveyId + "/Languages"))
                .Returns(CreateTask(HttpStatusCode.OK, new StringContent(JsonConvert.SerializeObject(expectedLanguages))));

            var target = new NfieldLanguagesService();
            target.InitializeNfieldConnection(mockedNfieldConnection.Object);

            var actualLanguages = target.QueryAsync(SurveyId).Result;
            Assert.Equal(expectedLanguages[0].Id, actualLanguages.ToArray()[0].Id);
            Assert.Equal(expectedLanguages[1].Id, actualLanguages.ToArray()[1].Id);
            Assert.Equal(2, actualLanguages.Count());
        }
All Usage Examples Of Nfield.Services.Implementation.NfieldLanguagesService::QueryAsync