public ActionResult Save(StarshipFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("StarshipForm", viewModel));
            }

            if (viewModel.Id == 0)
            {
                Starship starship = new Starship(viewModel.Model, viewModel.Manufacturer, viewModel.PassengerCapacity, viewModel.CargoCapacity, viewModel.Length);
                starshipRepository.Add(starship);
            }
            else
            {
                var starshipDb = starshipRepository.GetSingleStarship(viewModel.Id);

                if (starshipDb == null)
                {
                    return(HttpNotFound());
                }

                starshipDb.Update(viewModel.Model, viewModel.Manufacturer, viewModel.PassengerCapacity, viewModel.CargoCapacity, viewModel.Length);
            }

            unitOfWork.Complete();

            return(RedirectToAction("Index", "Starship"));
        }
        public ActionResult Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var starship = starshipRepository.GetSingleStarship(id ?? (int)InvalidPropertyValues.undefinedValue);

            if (starship == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new StarshipFormViewModel(starship);

            return(View("StarshipForm", viewModel));
        }
        public ActionResult New()
        {
            var viewModel = new StarshipFormViewModel();

            return(View("StarshipForm", viewModel));
        }