コード例 #1
0
        public async Task <Truck> CreateTruckAsync(Truck truck)
        {
            ContainerDbContext dbContext = _containerDbContextFactory.CreateDbContext();
            var truckToAdd = (await dbContext.Trucks.AddAsync(truck)).Entity;
            await dbContext.SaveChangesAsync();

            return(truckToAdd);
        }
コード例 #2
0
        public async Task <Container> CreateContainerAsync(Container container)
        {
            ContainerDbContext dbContext = _containerDbContextFactory.CreateDbContext();
            var containerToAdd           = (await dbContext.Containers.AddAsync(container)).Entity;
            await dbContext.SaveChangesAsync();

            return(containerToAdd);
        }
コード例 #3
0
        public async Task <Ship> CreateShip(Ship ship)
        {
            ContainerDbContext dbContext = _containerDbContextFactory.CreateDbContext();
            var shipToAdd = (await dbContext.Ships.AddAsync(ship)).Entity;
            await dbContext.SaveChangesAsync();

            return(shipToAdd);
        }
コード例 #4
0
        public async Task DeleteTruckAsync(string plate)
        {
            ContainerDbContext dbContext = _containerDbContextFactory.CreateDbContext();
            var truckToDelete            = new Truck()
            {
                LicensePlate = plate
            };

            dbContext.Entry(truckToDelete).State = EntityState.Deleted;
            await dbContext.SaveChangesAsync();
        }
コード例 #5
0
        public async Task DeleteContainerAsync(Guid id)
        {
            ContainerDbContext dbContext = _containerDbContextFactory.CreateDbContext();
            var shipToDelete             = new Container()
            {
                Id = id
            };

            dbContext.Entry(shipToDelete).State = EntityState.Deleted;
            await dbContext.SaveChangesAsync();
        }
コード例 #6
0
        public static void OnServicesSetup(IServiceProvider serviceProvider)
        {
            Console.WriteLine("Connecting to database and migrating if required");
            var dbContextFactory         = serviceProvider.GetService <ContainerDbContextFactory>();
            ContainerDbContext dbContext = dbContextFactory.CreateDbContext();

            Policy
            .Handle <Exception>()
            .WaitAndRetry(9, r => TimeSpan.FromSeconds(5), (ex, ts) =>
            {
                Console.Error.WriteLine("Error connecting to database. Retrying in 5 sec.");
            })
            .Execute(() =>
            {
                dbContext.Database.Migrate();
                Console.WriteLine("Completed connecting to database");
            });
        }
コード例 #7
0
        public Task <List <Truck> > GetTrucks()
        {
            ContainerDbContext dbContext = _containerDbContextFactory.CreateDbContext();

            return(dbContext.Trucks.Where(x => x.Container == null).ToListAsync());
        }
コード例 #8
0
        public Task <Truck> GetTruck(string plate)
        {
            ContainerDbContext dbContext = _containerDbContextFactory.CreateDbContext();

            return(dbContext.Trucks.LastOrDefaultAsync(x => x.LicensePlate == plate));
        }
コード例 #9
0
        public Task <Ship> GetShip(Guid id)
        {
            ContainerDbContext dbContext = _containerDbContextFactory.CreateDbContext();

            return(dbContext.Ships.LastOrDefaultAsync(x => x.Id == id));
        }
コード例 #10
0
 public ContainersController(ContainerDbContext context)
 {
     _context = context;
 }