public async Task <Flight> UpdateFlightByIdAsync(int flightId, UpdateFlightRequest flightRequest) { var flight = (await _fCntx.Flights.Where(f => f.FlightId == flightId).ToArrayAsync())[0]; var flightToUpdate = _fCntx.Flights.Remove(flight); flightToUpdate.ArriveTime = DateTime.Parse(flightRequest.ArriveTime); flightToUpdate.DepartureTime = DateTime.Parse(flightRequest.DepartureTime); flightToUpdate.IsDeleted = flightRequest.IsDeleted; flightToUpdate.FlightPrice = flightRequest.FlightPrice; var arrFa = _faCntx.FlightAirports.Where(air => air.FlightId == flight.FlightId && air.IsArrive).First(); var depFa = _faCntx.FlightAirports.Where(air => air.FlightId == flight.FlightId && !air.IsArrive).First(); arrFa.AirportId = flightRequest.ArriveAirportId; depFa.AirportId = flightRequest.DepartureAirportId; _faCntx.FlightAirports.Update(arrFa); _faCntx.FlightAirports.Update(depFa); _fCntx.Flights.Update(flightToUpdate); await _faCntx.SaveChangesAsync(); await _fCntx.SaveChangesAsync(); return(null); }
public async Task <Flight> CreateFlightAsync(UpdateFlightRequest flightRequest) { var entityToCreate = _mapper.Map <FlightDb>(flightRequest); var created = _fCntx.Flights.Add(entityToCreate); await _fCntx.SaveChangesAsync(); var faArrive = new FlightAirports { FlightId = created.FlightId, AirportId = flightRequest.ArriveAirportId, IsArrive = true, }; var faDeparture = new FlightAirports { FlightId = created.FlightId, AirportId = flightRequest.DepartureAirportId, IsArrive = false }; _faCntx.FlightAirports.Add(faArrive); _faCntx.FlightAirports.Add(faDeparture); await _fCntx.SaveChangesAsync(); return(new Flight { FlightId = created.FlightId, ArriveAirportId = faArrive.AirportId, ArriveTime = created.ArriveTime, DepartureAirportId = faDeparture.AirportId, DepartureTime = created.DepartureTime }); }