public static bool isBookLoanExceeds30Days(Book book, ref LibraryBooksOperationResult result, InfoRequest infoReq)
        {
            if (book.LoanDate.Value.AddDays(30) < infoReq.ReturnDate)
            {
                result.Message = ValidationMessages.BookLoanExceeds30Days;
                return true;
            }

            return false;
        }
        public static bool isBookAlreadyRegistered(Book book, ref LibraryBooksOperationResult result)
        {
            if (book != null)
            {
                result.Message = ValidationMessages.BookAlreadyRegistered;
                return true;
            }

            return false;
        }
        public static bool isBookLoaned(Book book, ref LibraryBooksOperationResult result)
        {
            if (book != null && book.IsLoaned.HasValue && book.IsLoaned.Value)
            {
                result.Message = ValidationMessages.BookAlreadyLoaned;
                return true;
            }

            return false;
        }
        public static bool isBookNull(Book book, ref LibraryBooksOperationResult result)
        {
            if (book == null)
            {
                result.Message = ValidationMessages.BookNotExist;
                return true;
            }

            return false;
        }
        private LibraryBooksOperationResult validate(InfoRequest infoReq, Book book)
        {
            var result = new LibraryBooksOperationResult();
            
            result.Success = !LibraryValidator.isBookNull(book, ref result)
                && LibraryValidator.isBookLoaned(book, ref result)
                && LibraryValidator.isBookLoanExceeds30Days(book, ref result, infoReq);

            return result;
        }
 private void Return(InfoRequest infoRequest, Book book)
 {            
     book.IsLoaned = false;
     book.ReturnDate = infoRequest.ReturnDate;
     this._bookRepository.Edit(book);
 }