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

AddAsync() public method

See INfieldTranslationsService.AddAsync
public AddAsync ( string surveyId, int languageId, Nfield.Models.Translation translation ) : Task
surveyId string
languageId int
translation Nfield.Models.Translation
return Task
        public Task<Translation> AddAsync(string surveyId, int languageId, Translation translation)
        {
            CheckSurveyId(surveyId);

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

            return Client.PostAsJsonAsync(TranslationsApi(surveyId, languageId, null).AbsoluteUri, translation)
                         .ContinueWith(task => task.Result.Content.ReadAsStringAsync().Result)
                         .ContinueWith(task => JsonConvert.DeserializeObject<Translation>(task.Result))
                         .FlattenExceptions();
        }

Usage Example

        public void TestAddAsync_ServerAcceptsTranslation_ReturnsTranslation()
        {
            var translation = new Translation { Name = "X", Text = "X Translated" };
            var mockedNfieldConnection = new Mock<INfieldConnectionClient>();
            var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection);
            var content = new StringContent(JsonConvert.SerializeObject(translation));
            mockedHttpClient
                .Setup(client => client.PostAsJsonAsync(ServiceAddress + "Surveys/" + SurveyId + "/Languages/10/Translations", translation))
                .Returns(CreateTask(HttpStatusCode.OK, content));

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

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

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