Update model for a survey
        /// <summary>
        /// See <see cref="INfieldSurveysService.UpdateAsync"/>
        /// </summary>
        public Task <Survey> UpdateAsync(Survey survey)
        {
            if (survey == null)
            {
                throw new ArgumentNullException("survey");
            }

            var updatedSurvey = new UpdateSurvey
            {
                ClientName             = survey.ClientName,
                Description            = survey.Description,
                SurveyName             = survey.SurveyName,
                InterviewerInstruction = survey.InterviewerInstruction
            };

            return(Client.PatchAsJsonAsync(new Uri(SurveysApi, survey.SurveyId), updatedSurvey)
                   .ContinueWith(
                       responseMessageTask => responseMessageTask.Result.Content.ReadAsStringAsync().Result)
                   .ContinueWith(
                       stringTask => JsonConvert.DeserializeObject <Survey>(stringTask.Result))
                   .FlattenExceptions());
        }
        /// <summary>
        /// See <see cref="INfieldSurveysService.UpdateAsync"/>
        /// </summary>
        public Task<Survey> UpdateAsync(Survey survey)
        {
            if (survey == null)
            {
                throw new ArgumentNullException("survey");
            }

            var updatedSurvey = new UpdateSurvey
            {
                ClientName = survey.ClientName,
                Description = survey.Description,
                SurveyName = survey.SurveyName,
                InterviewerInstruction = survey.InterviewerInstruction
            };

            return Client.PatchAsJsonAsync(SurveysApi + survey.SurveyId, updatedSurvey)
             .ContinueWith(
                 responseMessageTask => responseMessageTask.Result.Content.ReadAsStringAsync().Result)
             .ContinueWith(
                 stringTask => JsonConvert.DeserializeObject<Survey>(stringTask.Result))
             .FlattenExceptions();
        }