public async Task <IActionResult> Zarezerwuj(int id_ksiazki) { var Ksiazka = await _context.Ksiazki .FirstOrDefaultAsync(m => m.id_ksiazki == id_ksiazki); if (Ksiazka == null) { return(NotFound()); } var egzemplarze = from t in _context.Egzemplarze where t.Ksiazki.id_ksiazki == Ksiazka.id_ksiazki select t; Egzemplarze dostepnyEgzemplarz = null; //var wypozyczenie = from b in egzemplarze from c in _context.Wypozyczenia.Where(c => b.id_egzemplarza == c.id_egzemplarza) select c; foreach (Egzemplarze x in egzemplarze) { if (x.status == Egzemplarze.Status.Dostępny) { dostepnyEgzemplarz = x; break; } } Rezerwacje rezerwacja = new Rezerwacje(); rezerwacja.Egzemplarze = dostepnyEgzemplarz; rezerwacja.data_rezerwacji = DateTime.UtcNow.Date.AddHours(1); rezerwacja.data_odbioru = rezerwacja.data_rezerwacji.AddDays(2); rezerwacja.id_uzytkownika = Convert.ToInt32(HttpContext.User.Identity.Name); try { if (ModelState.IsValid) { rezerwacja.status_rezerwacji = Rezerwacje.Status.aktualna; rezerwacja.Egzemplarze.status = Egzemplarze.Status.Zarezerwowany; _context.Rezerwacje.Add(rezerwacja); _context.SaveChanges(); var uzytkownik = await _userManager.GetUserAsync(User); _context.Logi.Add(stworzLog(uzytkownik, "stworzono rezerwację o numerze " + rezerwacja.id_rezerwacji)); _context.SaveChanges(); return(RedirectToAction("Index")); } } catch (DataException /* dex */) { //Log the error (uncomment dex variable name and add a line here to write a log. ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); } return(RedirectToAction("Index")); }
public async Task <IActionResult> OdbierzZamowienie(int?id) { if (id == null) { return(NotFound()); } var zamowienie = await _context.Zamowienia.FirstOrDefaultAsync(m => m.id_zamowienia == id); if (zamowienie == null) { return(NotFound()); } if (zamowienie.status_zamowienia == Zamowienia.Status.Odebrane) { return(NotFound()); } var zamowienie_ksiazki = await _context.Zamowienie_ksiazki.Where(m => m.id_zamowienia == zamowienie.id_zamowienia).ToListAsync(); foreach (var book in zamowienie_ksiazki) { for (int i = 0; i < book.ilosc; i++) { var egzemplarz = new Egzemplarze(); egzemplarz.id_ksiazki = book.id_ksiazki; egzemplarz.status = Egzemplarze.Status.Dostępny; _context.Add(egzemplarz); } } zamowienie.status_zamowienia = Zamowienia.Status.Odebrane; await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public async Task <ActionResult> Wypozycz(int?id_ksiazki) { int idKsiazki = Convert.ToInt32(id_ksiazki); // int idUzytkownika = Convert.ToInt32(id_uzytkownika); // var uzytkownik = await _context.Uzytkownicy // .FirstOrDefaultAsync(m => m.id_uzytkownika == idUzytkownika); var Ksiazka = await _context.Ksiazki .FirstOrDefaultAsync(m => m.id_ksiazki == idKsiazki); if (Ksiazka == null) { return(NotFound()); } var egzemplarze = from t in _context.Egzemplarze where t.Ksiazki.id_ksiazki == Ksiazka.id_ksiazki select t; Egzemplarze dostepnyEgzemplarz = null; //var wypozyczenie = from b in egzemplarze from c in _context.Wypozyczenia.Where(c => b.id_egzemplarza == c.id_egzemplarza) select c; foreach (Egzemplarze x in egzemplarze) { if (x.status == Egzemplarze.Status.Dostępny) { dostepnyEgzemplarz = x; break; } } Wypozyczenia wypozyczenie = new Wypozyczenia(); wypozyczenie.Egzemplarze = dostepnyEgzemplarz; wypozyczenie.data_wypozyczenia = DateTime.UtcNow.Date.AddHours(1); wypozyczenie.data_zwrotu = wypozyczenie.data_wypozyczenia.AddMonths(1); wypozyczenie.id_uzytkownika = Convert.ToInt32(HttpContext.User.Identity.Name); try { if (ModelState.IsValid) { wypozyczenie.Egzemplarze.status = Egzemplarze.Status.Wypozyczony; _context.Wypozyczenia.Add(wypozyczenie); _context.SaveChanges(); var uzytkownik = await _userManager.GetUserAsync(User); _context.Logi.Add(stworzLog(uzytkownik, "wypozyczono książkę. numer wypozyczenia - " + wypozyczenie.id_wypozyczenia)); _context.SaveChanges(); return(RedirectToAction("Index")); } } catch (DataException /* dex */) { //Log the error (uncomment dex variable name and add a line here to write a log. ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); } return(RedirectToAction("Index")); }