Esempio n. 1
0
        public async Task <IActionResult> PutCustomer(int id, Customer customer)
        {
            if (id != customer.ID)
            {
                return(BadRequest());
            }

            _context.Entry(customer).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CustomerExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <IActionResult> EndRental(int id, Rental rental)
        {
            if (id != rental.RentalId)
            {
                return(BadRequest());
            }
            _context.Entry(rental).State = EntityState.Modified;
            try
            {
                rental.RentalEnd = DateTime.Now;
                rental.TotalCost = CalcTotalCost(rental);
                await _context.SaveChangesAsync();

                return(rental);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RentalExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(NoContent());
        }
Esempio n. 3
0
        public async Task <IActionResult> PutBike(int id, Bike bike)
        {
            if (id != bike.BikeId)
            {
                return(BadRequest());
            }

            _context.Entry(bike).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BikeExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        private async Task <IActionResult> PutRental(int id, Rental rental)
        {
            if (id != rental.RentalId)
            {
                return(BadRequest());
            }

            _context.Entry(rental).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RentalExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <Rental> > PostRental(Rental rental)
        {
            var bike = await _context.Bikes.FindAsync(rental.BikeId);

            var customer = await _context.Customers.FindAsync(rental.CustomerId);

            if (bike.IsRented)
            {
                return(BadRequest());
            }

            if (customer.Rentals != null && customer.Rentals.Last().RentalEnd != DateTime.MaxValue)
            {
                return(BadRequest());
            }

            bike.IsRented = true;

            rental.RentalBegin = DateTime.Now;
            rental.RentalEnd   = DateTime.MaxValue;
            rental.RentalCost  = default;

            _context.Rentals.Add(rental);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetRental", new { id = rental.RentalId }, rental));
        }
Esempio n. 6
0
        public async Task <ActionResult <Customer> > PostCustomer(Customer customer)
        {
            _context.Customers.Add(customer);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCustomer", new { id = customer.ID }, customer));
        }
        public async Task <ActionResult <Bike> > PostBike(Bike bike)
        {
            _context.Bikes.Add(bike);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetBike", new { id = bike.ID }, bike));
        }
Esempio n. 8
0
        public async Task <ActionResult <Rental> > PostRental(Rental rental)
        {
            var bike = await _context.Bikes.FindAsync(rental.BikeID);

            var customer = await _context.Customers.FindAsync(rental.CustomerID);

            if (bike.IsRented || customer.HasActiveRental)
            {
                return(BadRequest());
            }

            bike.IsRented            = true;
            customer.HasActiveRental = true;

            rental.RentalBegin = System.DateTime.Now;
            rental.RentalEnd   = default;
            rental.TotalCost   = default;
            _context.Rentals.Add(rental);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetRental", new { id = rental.ID }, rental));
        }