示例#1
0
        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);
        }