示例#1
0
        private async Task <Guid?> Create(Flight flight)
        {
            Entities.Flight entity = ToEntity(flight);
            entity.Id = Guid.NewGuid();

            _context.Add(entity);
            await _context.SaveChangesAsync();

            return(entity.Id);
        }
示例#2
0
 public async Task <Guid?> CreateOrUpdate(Flight flight)
 {
     if (flight.Id == null || flight.Id == Guid.Empty)
     {
         return(await Create(flight));
     }
     else
     {
         return(await Update(flight));
     }
 }
示例#3
0
        private Entities.Flight ToEntity(Flight flight)
        {
            if (flight == null)
            {
                return(null);
            }

            return(new Entities.Flight()
            {
                Id = flight.Id,
                DepartureAirportId = flight.DepartureAirport.Id,
                ArrivalAirportId = flight.ArrivalAirport.Id,
                PlaneId = flight.Plane.Id,
                Distance = flight.Distance,
                TotalFuelConsumption = flight.TotalFuelConsumption
            });
        }
示例#4
0
        private async Task <Guid?> Update(Flight flight)
        {
            Entities.Flight entity = ToEntity(flight);

            _context.Attach(entity).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();

                return(flight.Id);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!_context.Flights.Any(e => e.Id == flight.Id))
                {
                    return(null);
                }
                else
                {
                    throw;
                }
            }
        }