public async Task <IActionResult> Upsert(TrailVm obj)
        {
            if (ModelState.IsValid)
            {
                if (obj.Trail.Id == 0)
                {
                    await _trailRepository.CreateAsync(SD.TrailAPIPath, obj.Trail);
                }
                else
                {
                    await _trailRepository.UpdateAsync(SD.TrailAPIPath + obj.Trail.Id, obj.Trail);
                }

                return(RedirectToAction(nameof(Index)));
            }

            IEnumerable <NationalPark> npList = await _nationalRepository.GetAllAsync(SD.NationalParkAPIPath);

            TrailVm objVm = new TrailVm()
            {
                NationaParkList = npList.Select(i => new SelectListItem
                {
                    Text  = i.Name,
                    Value = i.Id.ToString()
                }),
                Trail = new Trail()
            };

            return(View(obj));
        }
        public async Task <IActionResult> Upsert(int?id)
        {
            IEnumerable <NationalPark> npList = await _nationalRepository.GetAllAsync(SD.NationalParkAPIPath);

            TrailVm objVm = new TrailVm()
            {
                NationaParkList = npList.Select(i => new SelectListItem
                {
                    Text  = i.Name,
                    Value = i.Id.ToString()
                }),
                Trail = new Trail()
            };

            if (id is null)
            {
                return(View(objVm));
            }

            objVm.Trail = await _trailRepository.GetAsync(SD.TrailAPIPath, id.GetValueOrDefault());

            if (objVm.Trail is null)
            {
                return(NotFound());
            }

            return(View(objVm));
        }