private void SaveButton_Click(object sender, EventArgs e) { if (CheckForErrors()) { var fieldsError = new ErrorForm("You are missing some required fields!"); fieldsError.ShowDialog(); return; } var studentToAdd = _studentRepository.GetAllStudents() .FirstOrDefault(student => student.ToString() == StudentComboBox.Text); foreach (var checkedItem in BooksListBox.CheckedItems) { var bookToAdd = _bookRepository.GetAllBooks() .FirstOrDefault(book => book.ToString() == checkedItem.ToString()); var isAvailable = _bookRepository.IsBookAvailable(bookToAdd); if (!isAvailable) { var copiesError = new ErrorForm($"There are no available copies of {bookToAdd}!"); copiesError.ShowDialog(); continue; } var bookCopyToAdd = _bookCopyRepository.GetAllBookCopies().First(bookCopy => bookCopy.Book.ToString() == checkedItem.ToString() && bookCopy.Status == BookStatus.Available); var eventToAdd = new BorrowEvent(DateOfRentPicker.Value, null, studentToAdd, bookCopyToAdd); _borrowEventRepository.AddBorrowEvent(eventToAdd); } LoadStudentComboBox(); BooksListBox.Items.Clear(); }
//typical events for library - borrow and return public void BorrowBook(int userID, int bookID, int eventID, DateTime when) { BorrowEvent borrow = new BorrowEvent(eventID, datarepo.GetUserByID(userID), datarepo.GetBookByID(bookID), datarepo.GetState(), when); datarepo.AddEvent(borrow); datarepo.GetUserByID(userID).NumberOfBooks += 1; datarepo.DeleteState(bookID); }
public void AddTwoEqualEvents_ExceptionShouldBeThrown() { User user = new User("nie", "tak", 1, 0); Book wiedzmin = new Book(0, "Chrzest Ognia", "Andrzej Sapkowski", 1996, "superNOWA"); BorrowEvent helloEvent = new BorrowEvent(10, user, wiedzmin, new State(), DateTime.Now); repo.AddEvent(helloEvent); repo.AddEvent(helloEvent); }
public void AddEvent_NumberOfAllEventsShouldEqualOne() { User user = new User("nie", "tak", 1, 0); Book wiedzmin = new Book(0, "Chrzest Ognia", "Andrzej Sapkowski", 1996, "superNOWA"); BorrowEvent helloEvent = new BorrowEvent(10, user, wiedzmin, new State(), DateTime.Now); repo.AddEvent(helloEvent); Assert.AreEqual(1, repo.GetAllPassedEvents().Count); }
public void TestRemovingEvents() { User user = new User("nie", "tak", 1, 0); Book wiedzmin = new Book(0, "Chrzest Ognia", "Andrzej Sapkowski", 1996, "superNOWA"); BorrowEvent helloEvent = new BorrowEvent(10, user, wiedzmin, new State(), DateTime.Now); repo.AddEvent(helloEvent); repo.DeleteEvent(10); Assert.AreEqual(0, repo.GetAllPassedEvents().Count); }
public bool AddBorrowEvent(BorrowEvent toAdd) { _context.BookCopies.Find(toAdd.BookCopy.BookCopyId).Status = BookStatus.Borrowed; var tmpBorrowEvent = new BorrowEvent(toAdd.DateOfBorrow, null, _context.Students.Find(toAdd.Student.StudentId), _context.BookCopies.Find(toAdd.BookCopy.BookCopyId)); _context.BorrowEvents.Add(tmpBorrowEvent); var numberOfChanges = _context.SaveChanges(); return(numberOfChanges != 0); }
public void TestGetEvent() { User eliza = new User("Eliza", "Lech", 230455, 0); Book demoncycle1 = new Book(20080901, "The Warded Man", "Peter V. Brett", 2008, "Fabryka S³ów"); repo.AddBook(demoncycle1); repo.AddUser(eliza); BorrowEvent justEvent = new BorrowEvent(9, eliza, demoncycle1, new State(), DateTime.Now); repo.AddEvent(justEvent); Assert.AreSame(justEvent, repo.GetEvent(9)); }
public static IDataContext Fill(IDataContext context) { User tempUser0 = new User("Tadeusz Chrostowski"); User tempUser1 = new User("Janusz Domaniewski"); User tempUser2 = new User("Andrzej Dunajewski"); User tempUser3 = new User("Jan Haber"); context.Users.Add(tempUser0); context.Users.Add(tempUser1); context.Users.Add(tempUser2); context.Users.Add(tempUser3); Catalog tempCatalog0 = new Catalog("Les Miserables", "Victor Hugo"); Catalog tempCatalog1 = new Catalog("The Emperor", "Ryszard Kapuscinski"); Catalog tempCatalog2 = new Catalog("Foundation", "Isaac Asimov"); Catalog tempCatalog3 = new Catalog("The Call of Cthulhu", "Howard Philips Lovecraft"); context.Catalogs.Add(tempCatalog0); context.Catalogs.Add(tempCatalog1); context.Catalogs.Add(tempCatalog2); context.Catalogs.Add(tempCatalog3); State tempState0 = new State(tempCatalog0, 11); State tempState1 = new State(tempCatalog1, 22); State tempState2 = new State(tempCatalog2, 33); State tempState3 = new State(tempCatalog3, 44); State tempState4 = new State(tempCatalog0, 55); context.States.Add(tempState0); context.States.Add(tempState1); context.States.Add(tempState2); context.States.Add(tempState3); context.States.Add(tempState4); AbstractEvent tempEvent0 = new BorrowEvent(tempState0, tempUser0, DateTime.Now); AbstractEvent tempEvent1 = new BorrowEvent(tempState1, tempUser1, DateTime.Now); AbstractEvent tempEvent2 = new BorrowEvent(tempState2, tempUser0, new DateTime(2020, 10, 11, 12, 0, 0)); AbstractEvent tempEvent3 = new BorrowEvent(tempState3, tempUser1, new DateTime(2020, 10, 11, 12, 0, 0)); AbstractEvent tempEvent4 = new ReturnEvent(tempState0, tempUser0, DateTime.Now); context.Events.Add(tempEvent0); context.Events.Add(tempEvent1); context.Events.Add(tempEvent2); context.Events.Add(tempEvent3); context.Events.Add(tempEvent4); return(context); }
public void GenerateData(DataContext context) { for (int index = 0; index < howManyTimes; index++) { User user1 = new User(generateRandomString(), generateRandomString(), index, 0); context.readers.Add(user1); Book book = new Book(index, generateRandomString(), generateRandomString(), generateRandomInteger(1500, 2021), generateRandomString()); context.catalog.BookCatalog.Add(index, book); context.actualState.availableBooks.Add(index); } Event randomEvent = new BorrowEvent(0, context.readers[randomable.Next(0, 3)], context.catalog.BookCatalog[randomable.Next(0, 3)], context.actualState, generateRandomTime()); Event randomEvent2 = new ReturnEvent(0, context.readers[randomable.Next(0, 3)], context.catalog.BookCatalog[randomable.Next(0, 3)], context.actualState, generateRandomTime()); context.currentEvents.Add(randomEvent); context.currentEvents.Add(randomEvent2); }
public bool ReturnBookEvent(BorrowEvent toReturn, DateTime dateOfReturn) { var eventToReturn = GetAllBorrowEvents().First(borrowEvent => borrowEvent.Student.ToString() == toReturn.Student.ToString() && borrowEvent.BookCopy.Book.ToString() == toReturn.BookCopy.Book.ToString() && borrowEvent.DateOfReturn == null); if (eventToReturn == null) { return(false); } _context.BookCopies.Find(toReturn.BookCopy.BookCopyId).Status = BookStatus.Available; eventToReturn.DateOfReturn = dateOfReturn; var numberOfChanges = _context.SaveChanges(); return(numberOfChanges != 0); }