Exemple #1
0
        public async Task <ActionResult <Wyporzyczenia> > ZwrotFilmuAsync(int id, [FromBody] Wyporzyczenia wyporzyczenia)
        {
            var wypInDb = await _context.Wyporzyczenia.SingleOrDefaultAsync(m => m.Id == id);

            if (wypInDb == null)
            {
                return(NotFound());
            }

            wypInDb.DataZwrotu = wyporzyczenia.DataZwrotu;
            await _context.SaveChangesAsync();

            return(NoContent());
        }
Exemple #2
0
        public async Task <ActionResult <NoweWypozyczenie> > AddWypozyczenieAsync([FromBody] NoweWypozyczenie noweWypozyczenie)
        {
            if (noweWypozyczenie.MovieIDs.Count == 0)
            {
                return(BadRequest("Brak filmów na liście wypożyczeń"));
            }
            var customer = await _context.Customers.SingleOrDefaultAsync(c => c.Id == noweWypozyczenie.CustomerId);

            if (customer == null)
            {
                return(BadRequest("Nieprawidłowe ID klienta"));
            }

            var movies = _context.Movies.Where(m => noweWypozyczenie.MovieIDs.Contains(m.Id)).ToList();

            if (movies.Count != noweWypozyczenie.MovieIDs.Count)
            {
                return(BadRequest("Nie załadowano filmu"));
            }
            foreach (var movie in movies)
            {
                if (movie.IloscDostepnychKopi == 0)
                {
                    return(BadRequest(movie.Name + " jest niedostępny do wypożyczenia"));
                }
                movie.IloscDostepnychKopi--;
                var wypozyczenie = new Wyporzyczenia
                {
                    Customer          = customer,
                    CustomerId        = customer.Id,
                    Movie             = movie,
                    MovieId           = movie.Id,
                    DataWyporzyczenia = DateTime.Now
                };
                await _context.Wyporzyczenia.AddAsync(wypozyczenie);
            }

            await _context.SaveChangesAsync();

            return(Ok());
        }