Пример #1
0
 public IEnumerable <BookInfo> GetBooksUnderSection(Guid sectionId)
 {
     using (var uow = new LibUnitOfWork())
     {
         return(uow.SectionRepository.GetBooks(sectionId));
     }
 }
Пример #2
0
 public IEnumerable <BookCopy> BookCopiesOf(Guid BookId)
 {
     using (var uow = new LibUnitOfWork())
     {
         return(uow.BookCopyRepository.Where(bc => bc.BookInfoId.Equals(BookId)).ToList());
     }
 }
Пример #3
0
 public IEnumerable <Section> GetAllSections()
 {
     using (var uow = new LibUnitOfWork())
     {
         return(uow.SectionRepository.GetAll());
     }
 }
 public IEnumerable <BookInfo> GetBooks()
 {
     using (LibUnitOfWork uow = new LibUnitOfWork())
     {
         return(uow.BookInfoRepository.GetAll());
     }
 }
 public LibraryUser FindUserByRFID(string userTag)
 {
     using (var uow = new LibUnitOfWork())
     {
         return(uow.LibraryUserRepository.FindByUserRFIDTag(userTag));
     }
 }
Пример #6
0
 public BookCopy FindByLongRange(string tag)
 {
     using (var uow = new LibUnitOfWork())
     {
         return(uow.BookCopyRepository.Where(bc => bc.BookTagLong == tag).Single());
     }
 }
 public void AddLibraryUser(LibraryUser user)
 {
     using (var uow = new LibUnitOfWork())
     {
         uow.LibraryUserRepository.Add(user);
         uow.SaveChanges();
     }
 }
Пример #8
0
 public void AddHoliday(Holiday newHoliday)
 {
     using (var uow = new LibUnitOfWork())
     {
         uow.HolidayRepository.AddOrUpdate(newHoliday);
         uow.SaveChanges();
     }
 }
Пример #9
0
 public void CreateNewSection(Section section)
 {
     using (var uow = new LibUnitOfWork())
     {
         uow.SectionRepository.Add(section);
         uow.SaveChanges();
     }
 }
Пример #10
0
 public void DeleteHoliday(Holiday holiday)
 {
     using (var uow = new LibUnitOfWork())
     {
         var h = uow.HolidayRepository.FindById(holiday.Id);
         uow.HolidayRepository.Remove(h);
         uow.SaveChanges();
     }
 }
 public void DeleteCourse(Course course)
 {
     using (LibUnitOfWork uow = new LibUnitOfWork())
     {
         var _course = uow.CourseRepository.FindById(course.Id);
         uow.CourseRepository.Remove(_course);
         uow.SaveChanges();
     }
 }
 public void DeleteBook(BookInfo bookInfo)
 {
     using (LibUnitOfWork uow = new LibUnitOfWork())
     {
         var _bookInfo = uow.BookInfoRepository.FindById(bookInfo.Id);
         uow.BookInfoRepository.Remove(_bookInfo);
         uow.SaveChanges();
     }
 }
 public override void Execute()
 {
     using (var uow = new LibUnitOfWork())
     {
         BookCopy.IsBorrowed         = false;
         _LastTransaction.ReturnDate = DateTime.Now;
         uow.BookTransactionInfoRepository.Update(_LastTransaction);
         uow.BookCopyRepository.Update(BookCopy);
         uow.SaveChanges();
     }
 }
Пример #14
0
 public void RemoveBookCopy(Guid BookCopyId)
 {
     using (var uow = new LibUnitOfWork())
     {
         var bookCopy = uow.BookCopyRepository.FindById(BookCopyId);
         if (bookCopy != null)
         {
             uow.BookCopyRepository.Remove(bookCopy);
             uow.SaveChanges();
         }
     }
 }
Пример #15
0
 public void DeleteSection(Section section)
 {
     using (var uow = new LibUnitOfWork())
     {
         var sectionToDelete = uow.SectionRepository.FindById(section.Id);
         if (sectionToDelete != null)
         {
             uow.SectionRepository.Remove(sectionToDelete);
             uow.SaveChanges();
         }
     }
 }
Пример #16
0
 public void DeleteDepartment(Department dept)
 {
     using (var uow = new LibUnitOfWork())
     {
         var _dept = uow.DepartmentRepository.FindById(dept.Id);
         if (_dept != null)
         {
             uow.DepartmentRepository.Remove(_dept);
             uow.SaveChanges();
         }
     }
 }
Пример #17
0
 public override void Execute()
 {
     using (var uow = new LibUnitOfWork())
     {
         BookCopy.IsBorrowed          = false;
         _LastTransaction.ReturnDate  = DateTime.Now.Date;
         _LastTransaction.AmountToPay = _PaymentService.ComputeNecessaryFee(BookCopy, _LastTransaction);
         uow.BookTransactionInfoRepository.Update(_LastTransaction);
         uow.BookCopyRepository.Update(BookCopy);
         uow.SaveChanges();
     }
 }
Пример #18
0
        public void AddOrUpdate(Department dept)
        {
            using (LibUnitOfWork uow = new LibUnitOfWork())
            {
                var _Dept = uow.DepartmentRepository.FindById(dept.Id);

                if (_Dept == null)
                {
                    uow.DepartmentRepository.Add(dept);
                }
                else
                {
                    uow.DepartmentRepository.Update(dept);
                }

                uow.SaveChanges();
            }
        }
Пример #19
0
        public void AddOrUpdateSection(Section section)
        {
            using (LibUnitOfWork uow = new LibUnitOfWork())
            {
                var _section = uow.BookInfoRepository.FindById(section.Id);

                if (_section == null)
                {
                    uow.BookInfoRepository.Add(_section);
                }
                else
                {
                    uow.BookInfoRepository.Update(_section);
                }

                uow.SaveChanges();
            }
        }
Пример #20
0
        public void SaveSection(Section section)
        {
            using (var uow = new LibUnitOfWork())
            {
                var sect = uow.SectionRepository.FindById(section.Id);

                if (sect == null)
                {
                    uow.SectionRepository.Add(section);
                }
                else
                {
                    uow.SectionRepository.Update(section);
                }

                uow.SaveChanges();
            }
        }
        public void AddOrUpdate(Course c)
        {
            using (LibUnitOfWork uow = new LibUnitOfWork())
            {
                var course = uow.CourseRepository.FindById(c.Id);

                if (course == null)
                {
                    uow.CourseRepository.Add(c);
                }
                else
                {
                    uow.CourseRepository.Update(c);
                }

                uow.SaveChanges();
            }
        }
        public void AddOrUpdateBook(BookInfo bookInfo)
        {
            using (LibUnitOfWork uow = new LibUnitOfWork())
            {
                var book = uow.BookInfoRepository.FindById(bookInfo.Id);

                if (book == null)
                {
                    uow.BookInfoRepository.Add(bookInfo);
                }
                else
                {
                    uow.BookInfoRepository.Update(bookInfo);
                }

                uow.SaveChanges();
            }
        }
        public LibraryUser GetAuthenticatedUser(string username, string password)
        {
            using (var uow = new LibUnitOfWork())
            {
                var user = uow.LibraryUserRepository.FindByUsername(username);

                if (user == null)
                {
                    return(null);
                }

                if (user.Password == password)
                {
                    return(user);
                }

                return(null);
            }
        }
Пример #24
0
        public override void Execute()
        {
            using (var uow = new LibUnitOfWork())
            {
                BookCopy.IsBorrowed = true;

                var bookInfo = uow.BookInfoRepository.BookInfoOf(BookCopy);
                var section  = uow.SectionRepository.Where(s => s.Id.Equals(bookInfo.SectionId)).Single();

                if (section.MaxDaysAllowedForBorrowing == 0)
                {
                    return;
                }

                uow.BookCopyRepository.Update(BookCopy);
                uow.BookTransactionInfoRepository.Add(bookTransInfo);
                uow.SaveChanges();
            }
        }
Пример #25
0
        public static LibraryTransactionBase CreateTransaction(LibraryUser libraryUser, string bookTag)
        {
            using (var uow = new LibUnitOfWork())
            {
                var bookCopy = uow.BookCopyRepository.FindByShortRangeRFId(bookTag);

                if (bookCopy == null)
                {
                    throw new InvalidOperationException("Unknown Book!");
                }

                if (bookCopy.IsBorrowed == true)
                {
                    var lastBookTrans = uow.BookTransactionInfoRepository.GetLastBookTransaction(bookCopy.Id);

                    if (lastBookTrans == null)
                    {
                        throw new InvalidOperationException("The book has no known borrowed information.");
                    }

                    else if (libraryUser.LibraryUserType == LibraryUser.UserType.Instructor || libraryUser.LibraryUserType == LibraryUser.UserType.Employee)
                    {
                        return(new ReturnBookIgnorePaymentTransaction(bookCopy, lastBookTrans));
                    }

                    else if (libraryUser.Id != lastBookTrans.LibraryUserId)
                    {
                        throw new InvalidOperationException("Please surrender this book to admin");
                    }

                    else
                    {
                        return(new ReturnBookTransaction(bookCopy, lastBookTrans));
                    }
                }
                else
                {
                    return(new BorrowBookTransaction(libraryUser, bookCopy));
                }
            }
        }
Пример #26
0
        public void MarkSatSunAsHolidays()
        {
            using (var uow = new LibUnitOfWork())
            {
                var startDay = DateTime.Now.Date;

                while (startDay != new DateTime(startDay.Year, 12, 31))
                {
                    if (startDay.DayOfWeek == DayOfWeek.Sunday || startDay.DayOfWeek == DayOfWeek.Saturday)
                    {
                        //todo : add this day to database
                        var newHoliday = new Holiday();
                        newHoliday.Day         = startDay;
                        newHoliday.Description = "Weekends";
                        uow.HolidayRepository.AddOrUpdate(newHoliday);
                    }
                    startDay = startDay.AddDays(1);
                }
                uow.SaveChanges();
            }
        }
        public void AddOrUpdateLibraryUser(LibraryUser libraryUser)
        {
            using (LibUnitOfWork uow = new LibUnitOfWork())
            {
                var libUser = uow.LibraryUserRepository.FindById(libraryUser.Id);

                var _libuser = uow.LibraryUserRepository.FindByUsername(libraryUser.Username);
                if (_libuser != null && _libuser.Id != libraryUser.Id)
                {
                    throw new InvalidOperationException("Username already exists");
                }

                if (libUser == null)
                {
                    uow.LibraryUserRepository.Add(libraryUser);
                }
                else
                {
                    uow.LibraryUserRepository.Update(libraryUser);
                }

                uow.SaveChanges();
            }
        }
Пример #28
0
        public IEnumerable <BookSearchResultDTO> Search(string keyword)
        {
            List <BookSearchResultDTO> bookSearchDTO = new List <BookSearchResultDTO>();

            using (var uow = new LibUnitOfWork())
            {
                var books = uow.BookInfoRepository.SearchForBooks(keyword);

                foreach (var book in books)
                {
                    var section    = uow.SectionRepository.GetBookSection(book);
                    var booksearch = new BookSearchResultDTO
                    {
                        BookInfo = book,
                        Section  = section
                    };
                    booksearch.AvailableCopies = uow.BookInfoRepository.GetNumberOfAvailableCopies(book);
                    booksearch.NumberOfCopies  = uow.BookInfoRepository.GetNumberOfCopies(book);
                    bookSearchDTO.Add(booksearch);
                }

                return(bookSearchDTO);
            }
        }
Пример #29
0
        public void AddOrUpdateBookCopy(BookCopy bookCopy)
        {
            using (var uow = new LibUnitOfWork())
            {
                var existingBookCopy = uow.BookCopyRepository.Where(bc => bc.Id == bookCopy.Id).FirstOrDefault();
                if (existingBookCopy != null)
                {
                    var existing = uow.BookCopyRepository.Where(bc => bc.BookTagLong == bookCopy.BookTagLong && bc.Id != bookCopy.Id).FirstOrDefault();
                    if (existing != null)
                    {
                        throw new InvalidOperationException("That long-ranged RFID tag is already used");
                    }

                    existing = uow.BookCopyRepository.Where(bc => bc.BookTagShort == bookCopy.BookTagShort && bc.Id != bookCopy.Id).FirstOrDefault();
                    if (existing != null)
                    {
                        throw new InvalidOperationException("That short-ranged RFID tag is already used");
                    }

                    existing = uow.BookCopyRepository.Where(bc => bc.AcquisitionNumber == bookCopy.AcquisitionNumber && bc.Id != bookCopy.Id).FirstOrDefault();
                    if (existing != null)
                    {
                        throw new InvalidOperationException("Duplicate in Acquisition Number!");
                    }

                    bookCopy.IsBorrowed = false;

                    var lastTrans = uow.BookTransactionInfoRepository.GetLastBookTransaction(bookCopy.Id);
                    if (lastTrans != null)
                    {
                        lastTrans.ReturnDate  = DateTime.Now;
                        lastTrans.AmountToPay = 0;
                        uow.BookTransactionInfoRepository.Update(lastTrans);
                    }

                    uow.BookCopyRepository.Update(bookCopy);
                }
                else
                {
                    var existing = uow.BookCopyRepository.FindByLongRangeRFId(bookCopy.BookTagLong);
                    if (existing != null)
                    {
                        throw new InvalidOperationException("That long-ranged RFID tag is already used");
                    }

                    existing = uow.BookCopyRepository.FindByShortRangeRFId(bookCopy.BookTagShort);
                    if (existing != null)
                    {
                        throw new InvalidOperationException("That short-ranged RFID tag is already used");
                    }

                    if (uow.BookCopyRepository.Where(bc => bc.AcquisitionNumber == bookCopy.AcquisitionNumber).Any())
                    {
                        throw new InvalidOperationException("Duplicate in Acquisition Number!");
                    }

                    uow.BookCopyRepository.Add(bookCopy);
                }
                uow.SaveChanges();
            }
        }