Example #1
0
        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")));
        }
Example #2
0
        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);
            }));
        }