public async Task <IActionResult> Create(CreateFlightViewModel model) { if (ModelState.IsValid) { var airplane = await _airplaneRepository.GetAirplaneWithUserAsync(model.AirplaneId); if (airplane == null) { return(NotFound()); } // Verificar a disponibilidade do avião ( É visto na tebela dos voos - Enviando o id do avião) bool isAvailable = _flightRepository.AirplaneIsAvailable(model.AirplaneId, model.Departure, model.Arrival); // Obter o state active var status = _context.Status.Where(x => x.StatusName == "Active").FirstOrDefault(); var to = await _destinationRepository.GetDestinationWithUserCityAndCoutryAsync(model.To); var from = await _destinationRepository.GetDestinationWithUserCityAndCoutryAsync(model.From); if (isAvailable) { Flight flight = new Flight() { From = from, To = to, Departure = model.Departure, Arrival = model.Arrival, Airplane = airplane, Status = status, Business = airplane.BusinessSeats, Economic = airplane.EconomySeats, }; try { await _flightRepository.CreateAsync(flight); return(RedirectToAction(nameof(Index))); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.InnerException.Message); GetCombos(model); ViewBag.minDate = DateTime.Now; ViewBag.format = "dd/MM/yyyy HH:mm"; ViewBag.departure = model.Departure; ViewBag.arrival = model.Arrival; return(View(model)); } } GetCombos(model); ModelState.AddModelError(string.Empty, "Airplane isn't available. Choose another!"); return(View(model)); } GetCombos(model); ViewBag.minDate = DateTime.Now; ViewBag.format = "dd/MM/yyyy HH:mm"; return(View(model)); }