public async Task <IActionResult> EditTodoItem(EditTodoItemViewModel editTodoItemViewModel) { if (!ModelState.IsValid) { return(View()); } // create an TodoItemForUpdateViewModel instance var todoItemForUpdateViewModel = new TodoItemForUpdateViewModel { Name = editTodoItemViewModel.Name, IsComplete = editTodoItemViewModel.IsComplete }; // serialize it var serializedTodoItemForUpdateViewModel = JsonConvert.SerializeObject(todoItemForUpdateViewModel); // call the API var httpClient = await _iTodoApiHttpClient.GetClient(); var response = await httpClient.PutAsync( $"api/todoitems/{editTodoItemViewModel.Id}", new StringContent(serializedTodoItemForUpdateViewModel, Encoding.Unicode, "application/json")) .ConfigureAwait(false); return(HandleApiResponse(response, () => RedirectToAction("Index"))); }
public async Task <IActionResult> EditTodoItem(long id) { // call the API var httpClient = await _iTodoApiHttpClient.GetClient(); var response = await httpClient.GetAsync($"api/todoitems/{id}").ConfigureAwait(false); return(await HandleApiResponseAsync(response, async() => { var todoitemsAsString = await response.Content.ReadAsStringAsync().ConfigureAwait(false); var deserializedTodoItemViewModel = JsonConvert.DeserializeObject <TodoItemViewModel>(todoitemsAsString); var editTodoItemViewModel = new EditTodoItemViewModel { Id = deserializedTodoItemViewModel.Id, Name = deserializedTodoItemViewModel.Name, IsComplete = deserializedTodoItemViewModel.IsComplete }; return View(editTodoItemViewModel); })); }