public async Task <IActionResult> AddStudent(JediEnrollmentViewModel jediStudentEnrollmentModel)
        {
            if (ModelState.IsValid)
            {
                var(isSuccess, jediStudentResult) = await _jediEnrollmentService.AddStudent(jediStudentEnrollmentModel);

                if (isSuccess)
                {
                    TempData["Message"] = "Student added successfully";
                }
                else
                {
                    TempData["Message"] = "Error. Please try again.";
                }
                return(RedirectToAction("Index"));
            }
            else
            {
                // Edited by CPang 2020-07-17 Challenge 3
                var(isSuccessGetSpecies, species) = await _jediEnrollmentService.GetAvailableSpecies();

                var(isSuccessGetPlanets, planets) = await _jediEnrollmentService.GetAvailablePlanets();

                var viewModel = new JediEnrollmentViewModel();
                if (isSuccessGetSpecies && isSuccessGetPlanets)
                {
                    viewModel.Species.AddRange(species.Select(s => new SelectListItem(s.Name, s.Id)));
                    viewModel.Planet.AddRange(planets.Select(p => new SelectListItem(p.Name, p.Id)));
                }
                return(View(viewModel));
            }
        }
Beispiel #2
0
        public async Task <ViewResult> Index()
        {
            var(isSuccess, species) = await _jediEnrollmentService.GetAvailableSpecies();

            var viewModel = new JediEnrollmentViewModel();

            if (isSuccess)
            {
                viewModel.Species.AddRange(species.Select(s => new SelectListItem(s.Name, s.Id)));
            }
            return(View(viewModel));
        }
        public async Task <ViewResult> Index()
        {
            // Edited by CPang 2020-07-17 Challenge 3
            var(isSuccessGetSpecies, species) = await _jediEnrollmentService.GetAvailableSpecies();

            var(isSuccessGetPlanets, planets) = await _jediEnrollmentService.GetAvailablePlanets();

            var viewModel = new JediEnrollmentViewModel();

            if (isSuccessGetSpecies && isSuccessGetPlanets)
            {
                viewModel.Species.AddRange(species.Select(s => new SelectListItem(s.Name, s.Id)));
                viewModel.Planet.AddRange(planets.Select(p => new SelectListItem(p.Name, p.Id)));
            }
            return(View(viewModel));
        }
        // Edited by CPang 2020-07-15 Challenge 2
        public async Task <(bool IsSuccess, JediStudent Result)> AddStudent(JediEnrollmentViewModel jediStudentEnrollmentModel)
        {
            var jediStudent = new JediStudent
            {
                Name    = jediStudentEnrollmentModel.Name,
                Height  = jediStudentEnrollmentModel.Height,
                Mass    = jediStudentEnrollmentModel.Mass,
                Species = jediStudentEnrollmentModel.SelectedSpecies,
                // Edited by CPang 2020-07-17 Challenge 3
                Planet = jediStudentEnrollmentModel.SelectedPlanet
            };

            try
            {
                var client        = _httpClientFactory.CreateClient("Individuals");
                var stringContent = new StringContent(JsonSerializer.Serialize(jediStudent), Encoding.UTF8, "application/json");
                var response      = await client.PostAsync("", stringContent);

                if (response.IsSuccessStatusCode)
                {
                    var content = await response.Content.ReadAsByteArrayAsync();

                    var options = new JsonSerializerOptions()
                    {
                        PropertyNameCaseInsensitive = true
                    };
                    var result = JsonSerializer.Deserialize <JediStudent>(content, options);
                    return(true, result);
                }

                return(false, null);
            }
            catch (Exception e)
            {
                _logger?.LogError(e.ToString());
                return(false, null);
            }
        }