コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: DataService.cs プロジェクト: lecheliza/ProgTech1
        //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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
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));
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }