Nfield.Services.Implementation.NfieldInterviewersService.UpdateAsync C# (CSharp) Method

UpdateAsync() public method

See INfieldInterviewersService.UpdateAsync
public UpdateAsync ( Interviewer interviewer ) : Task
interviewer Nfield.Models.Interviewer
return Task
        public Task<Interviewer> UpdateAsync(Interviewer interviewer)
        {
            if (interviewer == null)
            {
                throw new ArgumentNullException("interviewer");
            }

            var updatedInterviewer = new UpdateInterviewer
                {
                    EmailAddress = interviewer.EmailAddress,
                    FirstName = interviewer.FirstName,
                    LastName = interviewer.LastName,
                    TelephoneNumber = interviewer.TelephoneNumber,
                    IsSupervisor = interviewer.IsSupervisor
                };

            return Client.PatchAsJsonAsync(InterviewersApi + interviewer.InterviewerId, updatedInterviewer)
                         .ContinueWith(
                             responseMessageTask => responseMessageTask.Result.Content.ReadAsStringAsync().Result)
                         .ContinueWith(
                             stringTask => JsonConvert.DeserializeObject<Interviewer>(stringTask.Result))
                         .FlattenExceptions();
        }

Usage Example

        public void TestUpdateAsync_InterviewerExists_ReturnsInterviewer()
        {
            const string InterviewerId = "Interviewer X";
            var interviewer = new Interviewer
            {
                InterviewerId = InterviewerId,
                FirstName = "XXX"
            };
            var mockedNfieldConnection = new Mock<INfieldConnectionClient>();
            var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection);
            mockedHttpClient
                .Setup(client => client.PatchAsJsonAsync(ServiceAddress + "interviewers/" + InterviewerId, It.IsAny<UpdateInterviewer>()))
                .Returns(CreateTask(HttpStatusCode.OK, new StringContent(JsonConvert.SerializeObject(interviewer))));

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

            var actual = target.UpdateAsync(interviewer).Result;

            Assert.Equal(interviewer.FirstName, actual.FirstName);
        }
All Usage Examples Of Nfield.Services.Implementation.NfieldInterviewersService::UpdateAsync