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); }