public async Task <IActionResult> Modify(string heli, string arrivalAirport, string departureAirport, DateTime arrivalDateTime, DateTime departureDateTime, string pilot, string seats, int flightId) { FlightFormViewModel vm = new FlightFormViewModel { Airports = await _mediator.Send(new GetAllAirportQuery()), Planes = await _mediator.Send(new GetAllPlanesQuery()), Heli = heli, ArrivalAirport = arrivalAirport, DepartureAirport = departureAirport, ArrivalDateTime = arrivalDateTime, DepartureDateTime = departureDateTime, Pilot = pilot, Seats = seats, FlightId = flightId }; if (ModelState.IsValid) { var planeObj = await _mediator.Send(new GetPlaneQuery(int.Parse(heli))); var pilotObj = await _mediator.Send(new GetUserByIdQuery(int.Parse(pilot))); var departureAirportObj = await _mediator.Send(new GetAirportQuery(int.Parse(departureAirport))); var arrivalAirportObj = await _mediator.Send(new GetAirportQuery(int.Parse(arrivalAirport))); await _mediator.Send(new UpdateFlightCommand(flightId, departureDateTime, arrivalDateTime, planeObj, pilotObj, departureAirportObj, arrivalAirportObj, int.Parse(seats))); return(RedirectToAction("Show")); } return(View(vm)); }
public async Task <IActionResult> Modify(int id) { var flight = await _mediator.Send(new GetFlightQuery(id)); if (flight.CanBeCanceledOrModified()) { FlightFormViewModel vm = new FlightFormViewModel { Airports = await _mediator.Send(new GetAllAirportQuery()), Planes = await _mediator.Send(new GetAllPlanesQuery()), Heli = flight.Plane.PlaneId.ToString(), ArrivalAirport = flight.ArrivalAirport.AirportId.ToString(), DepartureAirport = flight.DepartureAirport.AirportId.ToString(), ArrivalDateTime = flight.ArrivalTime, DepartureDateTime = flight.DepartureTime, Pilot = flight.Pilot.UserId.ToString(), Seats = flight.Seats.ToString(), FlightId = id }; return(View(vm)); } return(NotFound()); }
public FlightFormViewModel GetDataForFlightForm() { var flightFormModel = new FlightFormViewModel(); var cities = GetCities(); flightFormModel.Cities = cities; return(flightFormModel); }
public async Task <IActionResult> Create() { FlightFormViewModel vm = new FlightFormViewModel { Airports = await _mediator.Send(new GetAllAirportQuery()), Planes = await _mediator.Send(new GetAllPlanesQuery()) }; return(View(vm)); }
public int Add(FlightFormViewModel flightFormViewModel) { var arrival = _cityRepository.GetCity(flightFormViewModel.ArrivalCity.Id); var departure = _cityRepository.GetCity(flightFormViewModel.DepartureCity.Id); var distance = CalculateDistance(departure.Longitude, departure.Latitude, arrival.Longitude, arrival.Latitude); flightFormViewModel.Distance = distance; var flight = _mapper.Map <Flight>(flightFormViewModel); var flightId = _flightRepository.Add(flight); return(flightId); }
public async Task <IActionResult> Create(string heli, string arrivalAirport, string departureAirport, DateTime arrivalDateTime, DateTime departureDateTime, string pilot, string seats, string recurrence, string recurrenceNbr) { FlightFormViewModel vm = new FlightFormViewModel { Airports = await _mediator.Send(new GetAllAirportQuery()), Planes = await _mediator.Send(new GetAllPlanesQuery()), Heli = heli, ArrivalAirport = arrivalAirport, DepartureAirport = departureAirport, ArrivalDateTime = arrivalDateTime, DepartureDateTime = departureDateTime, Pilot = pilot, Seats = seats, Recurrence = recurrence, RecurrenceNbr = recurrenceNbr }; if (ModelState.IsValid) { var flight = new Flight() { DepartureTime = departureDateTime, ArrivalTime = arrivalDateTime, DepartureAirport = await _mediator.Send(new GetAirportQuery(int.Parse(departureAirport))), ArrivalAirport = await _mediator.Send(new GetAirportQuery(int.Parse(arrivalAirport))), Plane = await _mediator.Send(new GetPlaneQuery(int.Parse(heli))), Pilot = await _mediator.Send(new GetUserByIdQuery(int.Parse(pilot))), Seats = int.Parse(seats) }; if (recurrence == "onetime") { await _mediator.Send(new CreateFlightCommand(flight)); } else if (recurrence == "everyday") { await _mediator.Send(new CreateFlightEveryDayOfWeekCommand(departureDateTime, arrivalDateTime, int.Parse(heli), int.Parse(pilot), int.Parse(departureAirport), int.Parse(arrivalAirport), int.Parse(seats))); } else { await _mediator.Send(new CreateFlightEveryWeekCommand(departureDateTime, arrivalDateTime, int.Parse(heli), int.Parse(pilot), int.Parse(departureAirport), int.Parse(arrivalAirport), int.Parse(seats), int.Parse(recurrenceNbr))); } return(RedirectToAction("Show")); } return(View(vm)); }
public IActionResult CreateTravel() { var passports = new List <PassInfoOfficialTravelDto>(); passports.Add(new PassInfoOfficialTravelDto() { OcupationId = 1, PassportNo = "1232154654" }); var viewModel = new FlightFormViewModel() { Countries = _context.Countries.ToList(), Occupations = _context.Occupations.ToList(), OfficialTravelsDto = passports }; return(View("FlightForm", viewModel)); }
//public IActionResult EditFlight(long id) //{ // //} public IActionResult NewFlight() { var viewModel = new FlightFormViewModel() { Countries = _context.Countries.ToList(), Occupations = _context.Occupations.ToList(), OfficialTravelsDto = new List <PassInfoOfficialTravelDto>() { new PassInfoOfficialTravelDto() { OcupationId = 1, PassportNo = "A151", ReturnDate = new DateTime() } } }; return(View("FlightForm", viewModel)); }
private void AddTravelsToDb(FlightFormViewModel viewModel, long ticketId) { if (viewModel.OfficialTravelsDto != null) { foreach (var officialtravelInfo in viewModel.OfficialTravelsDto) { if (officialtravelInfo.PassportNo == "null") { continue; } var officialTravel = new OfficialTravel() { PassportId = _context.Passports.Single(p => p.PassportNo == officialtravelInfo.PassportNo).Id, OccupationId = officialtravelInfo.OcupationId, TicketId = ticketId, ReturnDate = officialtravelInfo.ReturnDate }; _context.OfficialTravels.Add(officialTravel); } } if (viewModel.PermanentTravelsDto != null) { foreach (var permanentTravelInfo in viewModel.PermanentTravelsDto) { if (permanentTravelInfo.PassportNo == "null") { continue; } var permanentTravel = new PermanentTravel() { PassportId = _context.Passports.Single(p => p.PassportNo == permanentTravelInfo.PassportNo).Id, OccupationId = permanentTravelInfo.OcupationId, TicketId = ticketId }; _context.PermanentTravels.Add(permanentTravel); } } }
public ActionResult Save(FlightFormViewModel flightFormViewModel) { if (!ModelState.IsValid) { var lightFlightPaths = InitializeFlightPaths(); var lightStarships = InitializeStarships(); var viewModel = new ContainerFlightFormViewModel(flightFormViewModel, lightFlightPaths, lightStarships); return(View("FlightForm", viewModel)); } Flight flightToDB; if (flightFormViewModel.FlightId == 0) { var starship = starshipRepository.GetSingleStarship(flightFormViewModel.StarshipId); flightToDB = new Flight(flightFormViewModel.GetDateTime(), flightFormViewModel.BasePrice, flightFormViewModel.FlightPathId, starship, flightFormViewModel.IsVIP); flightRepository.Add(flightToDB); } else { flightToDB = flightRepository.GetSingleFlight(flightFormViewModel.FlightId); if (flightToDB == null) { return(HttpNotFound()); } var starship = starshipRepository.GetSingleStarship(flightFormViewModel.StarshipId); flightToDB.Update(flightFormViewModel.GetDateTime(), flightFormViewModel.BasePrice, null, starship, null); } unitOfWork.Complete(); InformViewsForCreateOrEdit(flightToDB, flightFormViewModel.FlightId); return(RedirectToAction("Index", "Flight")); }
public IActionResult CreateFlight(FlightFormViewModel flightForm) { _flightService.Add(flightForm); return(RedirectToAction("Index", "Home")); }
public IActionResult SaveFlight(FlightFormViewModel viewModel) { if (!ModelState.IsValid) { viewModel.Occupations = _context.Occupations.ToList(); viewModel.Countries = _context.Countries.ToList(); return(View("FlightForm", viewModel)); } //Comprobar q todos los pasaportes existan //Comprobar q los Id de ocupacion existan //Comprobar q no se dupliquen los pasaportes for (int i = 0; i < (viewModel.OfficialTravelsDto?.Count ?? 0); i++) { var travelData = viewModel.OfficialTravelsDto[i]; if (travelData.PassportNo == "null") { continue; } bool existPassport = _context.Passports.SingleOrDefault(p => p.PassportNo == travelData.PassportNo) != null; if (!existPassport) { viewModel.MissAnyPassport = true; viewModel.Occupations = _context.Occupations.ToList(); viewModel.Countries = _context.Countries.ToList(); return(View("FlightForm", viewModel)); } bool existOccupation = _context.Occupations.SingleOrDefault(o => o.Id == travelData.OcupationId) != null; if (!existOccupation) { return(BadRequest()); } bool returnDateCorrect = travelData.ReturnDate > viewModel.Ticket.DepartureDate; if (!returnDateCorrect) { viewModel.ReturnDateIncorrect = true; viewModel.Occupations = _context.Occupations.ToList(); viewModel.Countries = _context.Countries.ToList(); return(View("FlightForm", viewModel)); } for (int j = i + 1; j < viewModel.OfficialTravelsDto.Count; j++) { var toCompareData = viewModel.OfficialTravelsDto[j]; if (travelData.PassportNo == toCompareData.PassportNo) { viewModel.RepetedPassport = true; viewModel.Occupations = _context.Occupations.ToList(); viewModel.Countries = _context.Countries.ToList(); return(View("FlightForm", viewModel)); } } } for (int i = 0; i < (viewModel.PermanentTravelsDto?.Count ?? 0); i++) { var travelData = viewModel.PermanentTravelsDto[i]; if (travelData.PassportNo == "null") { continue; } bool existPassport = _context.Passports.SingleOrDefault(p => p.PassportNo == travelData.PassportNo) != null; if (!existPassport) { viewModel.MissAnyPassport = true; viewModel.Occupations = _context.Occupations.ToList(); viewModel.Countries = _context.Countries.ToList(); return(View("FlightForm", viewModel)); } bool existOccupation = _context.Occupations.SingleOrDefault(o => o.Id == travelData.OcupationId) != null; if (!existOccupation) { return(BadRequest()); } for (int j = i + 1; j < viewModel.PermanentTravelsDto.Count; j++) { var toCompareData = viewModel.PermanentTravelsDto[j]; if (travelData.PassportNo == toCompareData.PassportNo) { viewModel.RepetedPassport = true; viewModel.Occupations = _context.Occupations.ToList(); viewModel.Countries = _context.Countries.ToList(); return(View("FlightForm", viewModel)); } } } var ticketInDb = _context.Tickets.SingleOrDefault(t => t.Id == viewModel.OldTicketId); bool newTicketExists = _context.Tickets.SingleOrDefault(p => p.OriginCountryId == viewModel.Ticket.OriginCountryId && p.DestinyCountryId == viewModel.Ticket.DestinyCountryId && p.DepartureDate == viewModel.Ticket.DepartureDate) != null; if (ticketInDb != null) { bool isModifiedTicketInfo = ticketInDb.DepartureDate != viewModel.Ticket.DepartureDate || ticketInDb.OriginCountryId != viewModel.Ticket.OriginCountryId || ticketInDb.DestinyCountryId != viewModel.Ticket.DestinyCountryId; if (isModifiedTicketInfo && newTicketExists) { viewModel.ExistOtherTicketInDb = true; viewModel.Occupations = _context.Occupations.ToList(); viewModel.Countries = _context.Countries.ToList(); return(View("FlightForm", viewModel)); } //Delete all travels with old ticket var officialTravels = from ot in _context.OfficialTravels where ot.TicketId == ticketInDb.Id select ot; var permanentTravels = from pt in _context.PermanentTravels where pt.TicketId == ticketInDb.Id select pt; _context.OfficialTravels.RemoveRange(officialTravels.ToList()); _context.PermanentTravels.RemoveRange(permanentTravels.ToList()); _context.SaveChanges(); ticketInDb.OriginCountryId = viewModel.Ticket.OriginCountryId; ticketInDb.DestinyCountryId = viewModel.Ticket.DestinyCountryId; ticketInDb.DepartureDate = viewModel.Ticket.DepartureDate; AddTravelsToDb(viewModel, ticketInDb.Id); } else if (newTicketExists) { viewModel.ExistOtherTicketInDb = true; viewModel.Occupations = _context.Occupations.ToList(); viewModel.Countries = _context.Countries.ToList(); return(View("FlightForm", viewModel)); } else { _context.Tickets.Add(viewModel.Ticket); _context.SaveChanges(); AddTravelsToDb(viewModel, viewModel.Ticket.Id); } _context.SaveChanges(); return(RedirectToAction("Index", "Home")); }
public IActionResult Save(FlightFormViewModel viewModel) { return(RedirectToAction("Index")); }