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

AddAsync() public method

See INfieldLanguagesService.AddAsync
public AddAsync ( string surveyId, Language language ) : Task
surveyId string
language Language
return Task
        public Task<Language> AddAsync(string surveyId, Language language)
        {
            CheckSurveyId(surveyId);

            if (language == null)
            {
                throw new ArgumentNullException("language");
            }

            return Client.PostAsJsonAsync(LanguagesApi(surveyId, 0).AbsoluteUri, language)
                         .ContinueWith(task => task.Result.Content.ReadAsStringAsync().Result)
                         .ContinueWith(task => JsonConvert.DeserializeObject<Language>(task.Result))
                         .FlattenExceptions();
        }

Usage Example

        public void TestAddAsync_ServerAcceptsLanguage_ReturnsLanguage()
        {
            var language = new Language { Name = "Language X" };
            var mockedNfieldConnection = new Mock<INfieldConnectionClient>();
            var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection);
            var content = new StringContent(JsonConvert.SerializeObject(language));
            mockedHttpClient
                .Setup(client => client.PostAsJsonAsync(ServiceAddress + "Surveys/" + SurveyId + "/Languages", language))
                .Returns(CreateTask(HttpStatusCode.OK, content));

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

            var actual = target.AddAsync(SurveyId, language).Result;

            Assert.Equal(language.Name, actual.Name);
        }
All Usage Examples Of Nfield.Services.Implementation.NfieldLanguagesService::AddAsync