예제 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("BookCopiesID,BookBarcode,BookID,RetailerID,PurchasePrice,RFID,UpdatedDateTime")] BookCopies bookCopies)
        {
            if (id != bookCopies.BookCopiesID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(bookCopies);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BookCopiesExists(bookCopies.BookCopiesID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["BookID"]     = new SelectList(_context.Set <Book>(), "BookID", "Name", bookCopies.BookID);
            ViewData["RetailerID"] = new SelectList(_context.Set <Retailer>(), "RetailerID", "Name", bookCopies.RetailerID);
            return(View(bookCopies));
        }
예제 #2
0
        public void ClearDatabase()
        {
#if MSSQL
            Console.WriteLine("qfklqsjdfkljqsdlfjiljsdfkljqsdkldfjklsqdjdhfjsqdhfjqsdhljkfklqsdjfklqsdjfkljsqddlkfjlsqdkjf");
            RentalItems.RemoveRange(RentalItems);
            Rentals.RemoveRange(Rentals);
            Users.RemoveRange(Users);
            BookCopies.RemoveRange(BookCopies);
            Books.RemoveRange(Books);
            Categories.RemoveRange(Categories);
#else
#endif
            SaveChanges();
            Reseed(nameof(Users));
            Reseed(nameof(Books));
            Reseed(nameof(Rentals));
            Reseed(nameof(BookCopies));
            Reseed(nameof(Categories));
            Reseed(nameof(RentalItems));



            /**
             * Décommenter la ligne suivante pour réinitialiser le compteur de clef autoincrementée
             */
            //Reseed(nameof(Messages));
        }
예제 #3
0
        public BookCopies GetAllLoanByMemberID(int id)
        {
            Connection();
            List <BookCopies> bookCopiesList = new List <BookCopies>();
            BookCopies        bookCopies     = new BookCopies();
            SqlCommand        com            = new SqlCommand("CountLoan", _connect);

            com.Parameters.AddWithValue("@MemberID", id);
            com.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter da = new SqlDataAdapter(com);
            DataTable      dt = new DataTable();

            _connect.Open();
            da.Fill(dt);
            _connect.Close();

            bookCopiesList = (from DataRow dr in dt.Rows
                              select new BookCopies()
            {
                Quantities = Convert.ToInt32(dr["NoOfBooks"])
            }).ToList();

            bookCopies = bookCopiesList[0];

            return(bookCopies);
        }
예제 #4
0
        public void ClearDatabase()
        {
#if MSSQL
            Categories.RemoveRange(Categories);
            RentalItems.RemoveRange(RentalItems);
            BookCopies.RemoveRange(BookCopies);
            Books.RemoveRange(Books);
            Rentals.RemoveRange(Rentals);
            Users.RemoveRange(Users);
#else
            Categories.RemoveRange(Categories);
            BookCopies.RemoveRange(BookCopies
                                   .Include(nameof(BookCopy.RentalItems))
                                   );
            Books.RemoveRange(Books);
            Users.RemoveRange(Users
                              .Include(nameof(User.Rentals))
                              );
#endif
            SaveChanges();

            Reseed(nameof(Users));
            Reseed(nameof(Books));
            Reseed(nameof(BookCopies));
            Reseed(nameof(Categories));
            Reseed(nameof(Rentals));
            Reseed(nameof(RentalItems));
        }
예제 #5
0
        public ActionResult AddCopies(BookCopies bookCopies)
        {
            try
            {
                copiesRepository copiesRepository = new copiesRepository();
                for (int i = 0; i < bookCopies.Quantities; i++)
                {
                    CopiesModel copiesModel = new CopiesModel()
                    {
                        BookId     = bookCopies.BookModel.BookId,
                        CopyNo     = i + 1,
                        DateBought = bookCopies.CopiesModel.DateBought,
                        Location   = bookCopies.CopiesModel.Location
                    };
                    copiesRepository.AddCopies(copiesModel);

                    var profileData = Session["UserProfile"] as UserSession;
                    var logModel    = new LogModel
                    {
                        UserId    = profileData.UserID,
                        TableName = "Copies",
                        Activity  = "Copies Added",
                        LogDate   = DateTime.Now
                    };
                    var logRepository = new logRepository();
                    logRepository.AddLog(logModel);
                }
                return(RedirectToAction("Dashboard", "Home"));
            }
            catch
            {
                return(RedirectToAction("Dashboard", "Home"));
            }
        }
예제 #6
0
        public void ClearDatabase()
        {
#if MSSQL
            Books.RemoveRange(Books);
            Users.RemoveRange(Users);
            BookCopies.RemoveRange(BookCopies);
            RentalItems.RemoveRange(RentalItems);
            Rentals.RemoveRange(Rentals);

            Categories.RemoveRange(Categories
                                   .Include(nameof(Category.Books))
                                   );
#else
            Categories.RemoveRange(Categories
                                   .Include(nameof(Category.Books))
                                   );
#endif
            SaveChanges();

            /**
             * Décommenter la ligne suivante pour réinitialiser le compteur de clef autoincrementée
             */
            Reseed(nameof(Users));
            Reseed(nameof(Books));
            Reseed(nameof(BookCopies));
            Reseed(nameof(Categories));
            Reseed(nameof(Rentals));
            Reseed(nameof(RentalItems));
        }
예제 #7
0
 public IActionResult OnGet(int bookId, int libraryId)
 {
     BookCopy = bookCopiesService.GetBookCopyById(bookId, libraryId);
     if (BookCopy == null)
     {
         return(RedirectToPage("NotFound"));
     }
     return(Page());
 }
예제 #8
0
        public IActionResult Delete(BookCopies bookCopies)
        {
            var tempBookCopies = bookCopiesData.DeleteBookCopies(bookCopies.Id);

            if (tempBookCopies == null)
            {
                return(RedirectToAction("Detail", "Library", new { libraryId = bookCopies.LibraryId }));
            }
            bookCopiesData.Commit();
            TempData["Message"] = "The object is deleted";
            return(RedirectToAction("Detail", "Library", new { libraryId = bookCopies.LibraryId }));
        }
예제 #9
0
        public BookCopy CreateBookCopy(
            Book book,
            DateTime aquisitiondate)
        {
            BookCopy bc = BookCopies.Create();

            bc.Book           = book;
            bc.AquisitionDate = aquisitiondate;
            BookCopies.Add(bc);
            SaveChanges();
            return(bc);
        }
        public IActionResult EditCopyInLibrary(int bookId, int libraryId)
        {
            var copy = new BookCopies();

            copy = bookCopiesService.GetBookCopyById(bookId, libraryId);
            if (copy == null)
            {
                return(View("NotFound"));
            }

            return(View(copy));
        }
예제 #11
0
        public IActionResult OnGet(int id)
        {
            Library = libraryService.GetLibraryById(id);
            if (Library == null)
            {
                return(RedirectToPage("NotFound"));
            }

            SelectBook = FilterBooks();
            BookCopy   = new BookCopies();

            return(Page());
        }
예제 #12
0
 public BookWithReservedCopies(Book book)
 {
     Id                 = book.Id;
     Title              = book.Title;
     Author             = book.Author;
     PublisherText      = book.PublisherText;
     GuidedReadingLevel = book.GuidedReadingLevel;
     Isbn               = book.Isbn;
     BoxNumber          = book.BoxNumber;
     CreatedDate        = book.CreatedDate;
     ModifiedDate       = book.ModifiedDate;
     BookCopies.AddRange(book.BookCopies);
 }
예제 #13
0
        public async Task <IActionResult> Create([Bind("BookCopiesID,BookBarcode,BookID,RetailerID,PurchasePrice,RFID,UpdatedDateTime")] BookCopies bookCopies)
        {
            if (ModelState.IsValid)
            {
                _context.Add(bookCopies);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["BookID"]     = new SelectList(_context.Set <Book>(), "BookID", "Name", bookCopies.BookID);
            ViewData["RetailerID"] = new SelectList(_context.Set <Retailer>(), "RetailerID", "Name", bookCopies.RetailerID);
            return(View(bookCopies));
        }
        public IActionResult EditCopyInLibrary(BookCopies copy)
        {
            if (ModelState.IsValid)
            {
                copy = bookCopiesService.UpdateCopy(copy);

                bookCopiesService.Commit();
                TempData["Message"] = "Changes in copies applied!";

                return(RedirectToAction("Details", "Library", new { id = copy.LibraryId }));
            }

            return(View(copy));
        }
예제 #15
0
        public IActionResult OnGet(int id)
        {
            Book = bookService.GetBookById(id);
            if (Book == null)
            {
                return(RedirectToPage("NotFound"));
            }

            BookCopy = new BookCopies();

            SelectLibrary = FilterList();

            return(Page());
        }
예제 #16
0
        public IActionResult OnPost()
        {
            if (ModelState.IsValid)
            {
                BookCopy = bookCopiesService.UpdateCopy(BookCopy);
                bookCopiesService.Commit();

                TempData["Message"] = "Changes in copies applied!";

                return(RedirectToPage("BookCopiesList"));
            }

            return(Page());
        }
예제 #17
0
 //------------------------   A Mettre à jour -------------------------------------------------------------------- !!
 public void ClearDatabase()
 {
     Users.RemoveRange(Users.Include(nameof(User.Rentals)));
     Rentals.RemoveRange(Rentals.Include(nameof(Rental.Items)));
     Books.RemoveRange(Books.Include(nameof(Book.Copies)).Include(nameof(Book.Categories)));
     Categories.RemoveRange(Categories.Include(nameof(Category.Books)));
     BookCopies.RemoveRange(BookCopies.Include(nameof(BookCopy.RentalItems)));
     RentalItems.RemoveRange(RentalItems);
     Reseed(nameof(Users));
     Reseed(nameof(Rentals));
     Reseed(nameof(Books));
     Reseed(nameof(Categories));
     Reseed(nameof(BookCopies));
     Reseed(nameof(RentalItems));
     this.SaveChanges();
 }
예제 #18
0
        public void ClearDatabase()
        {
            Users.RemoveRange(Users);
            Rentals.RemoveRange(Rentals);
            RentalItems.RemoveRange(RentalItems);
            BookCopies.RemoveRange(BookCopies);
            Books.RemoveRange(Books);
            Categories.RemoveRange(Categories);

            Reseed(nameof(Users));
            Reseed(nameof(Books));
            Reseed(nameof(Rentals));
            Reseed(nameof(BookCopies));
            Reseed(nameof(Categories));
            Reseed(nameof(RentalItems));
            SaveChanges();
        }
예제 #19
0
        public IActionResult UpdateLending(int id, int clientId, int libraryId, LendingForUpdateDto lending)
        {
            if (!_repo.ClientExists(clientId))
            {
                return(NotFound());
            }
            var lendingFromRepo = _repo.GetLending(clientId, id);

            if (lendingFromRepo == null)
            {
                return(NotFound());
            }
            var library = _repo.GetLibrary(libraryId);

            if (library != null && lendingFromRepo.ReturnDate == null && lending.ReturnDate != null)
            {
                var bookCopies = _repo.GetBookCopiesForLibrary(libraryId)
                                 .SingleOrDefault(b => b.BookId == lendingFromRepo.BookId);
                if (bookCopies == null)
                {
                    var newBookCopies = new BookCopies()
                    {
                        LibraryId      = libraryId,
                        BookId         = lendingFromRepo.BookId,
                        NumberOfCopies = 1
                    };
                    _repo.CreateBookCopies(libraryId, newBookCopies);
                }
                else
                {
                    bookCopies.NumberOfCopies++;
                    _repo.UpdateBookCopies(bookCopies);
                }
            }
            if (lending.WitdrawDate == null)
            {
                lending.WitdrawDate = lendingFromRepo.WitdrawDate;
            }
            _mapper.Map(lending, lendingFromRepo);
            _repo.UpdateLending(lendingFromRepo);
            _repo.Save();

            return(NoContent());
        }
예제 #20
0
        public Book CreateBook(string isbn, string title, string author, string editor, int numCopies)
        {
            Book book = Books.Create();

            book.Isbn   = isbn;
            book.Title  = title;
            book.Author = author;
            book.Editor = editor;

            Books.Add(book);
            BookCopy copy = App.Model.BookCopies.Create();

            copy.BookId          = book;
            copy.AcquisitionDate = DateTime.Now;
            BookCopies.Add(copy);
            SaveChanges();

            return(book);
        }
예제 #21
0
        public IActionResult PartialyUpdateLending(int id, int clientId, int libraryId, JsonPatchDocument <LendingForUpdateDto> patchDoc)
        {
            if (!_repo.ClientExists(clientId))
            {
                return(NotFound());
            }
            var lendingFromRepo = _repo.GetLending(clientId, id);

            if (lendingFromRepo == null)
            {
                return(NotFound());
            }
            var lendingDto = _mapper.Map <LendingForUpdateDto>(lendingFromRepo);
            var library    = _repo.GetLibrary(libraryId);

            patchDoc.ApplyTo(lendingDto);
            if (library != null && lendingFromRepo.ReturnDate == null && lendingDto.ReturnDate != null)
            {
                var bookCopies = _repo.GetBookCopiesForLibrary(libraryId)
                                 .SingleOrDefault(b => b.BookId == lendingFromRepo.BookId);
                if (bookCopies == null)
                {
                    var newBookCopies = new BookCopies()
                    {
                        LibraryId      = libraryId,
                        BookId         = lendingFromRepo.BookId,
                        NumberOfCopies = 1
                    };
                    _repo.CreateBookCopies(libraryId, newBookCopies);
                }
                else
                {
                    bookCopies.NumberOfCopies++;
                    _repo.UpdateBookCopies(bookCopies);
                }
            }
            _mapper.Map(lendingDto, lendingFromRepo);
            _repo.UpdateLending(lendingFromRepo);
            _repo.Save();

            return(NoContent());
        }
예제 #22
0
        public IActionResult OnPost()
        {
            if (ModelState.IsValid)
            {
                BookCopy.LibraryId  = Library.Id;
                BookCopy            = bookCopiesService.CreateBookCopy(BookCopy);
                TempData["Message"] = "Book Copies Added to Library";

                Library.BookCopies.Add(BookCopy);
                bookCopiesService.Commit();
                return(RedirectToPage("/Libraries/LibraryDetails", new { id = BookCopy.LibraryId }));
            }



            SelectBook = bookService.GetBooks().Select(b => new SelectListItem
            {
                Value = b.Id.ToString(),
                Text  = b.Title
            });
            return(Page());
        }
예제 #23
0
        public ActionResult AddCopies(int id)
        {
            var profileData = Session["UserProfile"] as UserSession;

            if (profileData == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            BookRepository  bookRepository  = new BookRepository();
            ShelfRepository shelfRepository = new ShelfRepository();
            BookCopies      bookCopies      = new BookCopies();

            BookModel bookModel = bookRepository.SearchBookById(id);

            bookCopies.BookModel = bookModel;
            List <ShelfModel> shelfList = shelfRepository.GetAllShelf();

            bookCopies.ShelfList = shelfList;

            return(View(bookCopies));
        }
 public void UpdateBookCopies(BookCopies bookCopies)
 {
 }
 public void DeleteBookCopies(BookCopies bookCopies)
 {
     _context.BookCopies.Remove(bookCopies);
 }
예제 #26
0
 public BookCopies CreateBookCopies(BookCopies bookCopies)
 {
     dbContext.BookCopies.Add(bookCopies);
     return(bookCopies);
 }
예제 #27
0
        public BookCopies CreateBookCopy(BookCopies bookCopy)
        {
            var temp = dbContext.BookCopies.Add(bookCopy);

            return(temp.Entity);
        }
예제 #28
0
 public BookCopies UpdateCopy(BookCopies bookCopy)
 {
     dbContext.Entry(bookCopy).State = EntityState.Modified;
     return(bookCopy);
 }
예제 #29
0
        public ActionResult AddLoan(LoanModel loanModel)
        {
            try
            {
                LoanRepository          loanRepository          = new LoanRepository();
                copiesRepository        copiesRepository        = new copiesRepository();
                BookRepository          bookRepository          = new BookRepository();
                ContentRatingRepository contentRatingRepository = new ContentRatingRepository();
                MemberRepository        memberRepository        = new MemberRepository();
                MembershipRepository    membershipRepository    = new MembershipRepository();

                List <MemberModel> memberList   = new List <MemberModel>();
                LoanModel          newLoanModel = new LoanModel();
                newLoanModel.MemberList = memberRepository.GetAllMember();

                CopiesModel copiesModel = new CopiesModel();
                copiesModel = copiesRepository.SearchCopyById(loanModel.CopiesId);

                BookModel bookModel = new BookModel();
                bookModel = bookRepository.SearchBookById(copiesModel.BookId);

                if (bookModel.BookType.Equals("Reference Book"))
                {
                    ViewBag.Message = "Reference Books Can't be Loaned";
                    return(View(newLoanModel));
                }

                ContentRatingModel contentRatingModel = new ContentRatingModel();
                contentRatingModel = contentRatingRepository.GetByContentId(bookModel.ContentRatingId);

                MemberModel memberModel = new MemberModel();
                memberModel = memberRepository.SearchMemberById(loanModel.MembershipId);

                if (contentRatingModel.ContentRatingName.Equals("18+"))
                {
                    var today    = DateTime.Today;
                    var age      = Convert.ToDateTime(memberModel.Dob);
                    var todayAge = today.Year - age.Year;
                    if (todayAge < 18)
                    {
                        ViewBag.Message = "Age Restricted Books Are Not Allowed";
                        return(View(newLoanModel));
                    }
                }

                MembershipModel membershipModel = new MembershipModel();
                membershipModel = membershipRepository.GetMembershipByID(memberModel.MembershipId);

                BookCopies bookCopiesModel = new BookCopies();
                bookCopiesModel = loanRepository.GetAllLoanByMemberID(memberModel.MemberId);

                if (bookCopiesModel.Quantities >= membershipModel.NoOfBooks)
                {
                    ViewBag.Message = "No More Books Can be Loaned";
                    return(View(newLoanModel));
                }

                DateTime returnedDate = Convert.ToDateTime(loanModel.LoanDate);
                loanModel.ReturnDate = returnedDate.AddDays(14).ToString("yyyy MMMM dd");
                loanRepository.AddLoan(loanModel);
                copiesRepository.UpdateCopiesStatus(loanModel.CopiesId);

                var profileData = Session["UserProfile"] as UserSession;
                var logModel    = new LogModel
                {
                    UserId    = profileData.UserID,
                    TableName = "Loan",
                    Activity  = "Added Loan",
                    LogDate   = DateTime.Now
                };
                var logRepository = new logRepository();
                logRepository.AddLog(logModel);
                return(RedirectToAction("Dashboard", "Home"));
            }
            catch
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
        public void CreateBookCopies(int libraryId, BookCopies bookCopies)
        {
            var library = _context.Libraries.SingleOrDefault(l => l.Id == libraryId);

            library.BookCopies.Add(bookCopies);
        }