private LibraryBooksOperationResult validate(InfoRequest infoReq)
        {
            var result = new LibraryBooksOperationResult();
            var book = this._bookRepository.FindBy(x => x.Code == infoReq.BookCode).Result.FirstOrDefault();

            result.Success = !LibraryValidator.isBookAlreadyRegistered(book, ref result);

            return result;
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        public static bool isBookAlreadyRegistered(Book book, ref LibraryBooksOperationResult result)
        {
            if (book != null)
            {
                result.Message = ValidationMessages.BookAlreadyRegistered;
                return(true);
            }

            return(false);
        }
Exemple #4
0
        public static bool isUserFined(User user, ref LibraryBooksOperationResult result)
        {
            if (user.isFined.Value)
            {
                result.Message = ValidationMessages.UserFined;
                return(true);
            }

            return(false);
        }
Exemple #5
0
        public static bool isMaxLoanReached(IEnumerable <Book> userBookList, ref LibraryBooksOperationResult result)
        {
            if (userBookList.Count() > maxNumberBooks)
            {
                result.Message = ValidationMessages.MaxBookLoanReached;
                return(true);
            }

            return(false);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        public static bool isBookNull(Book book, ref LibraryBooksOperationResult result)
        {
            if (book == null)
            {
                result.Message = ValidationMessages.BookNotExist;
                return(true);
            }

            return(false);
        }
        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 isUserFined(User user, ref LibraryBooksOperationResult result)
        {
            if (user.isFined.Value)
            {
                result.Message = ValidationMessages.UserFined;
                return true;
            }

            return false;
        }
        public static bool isMaxLoanReached(IEnumerable<Book> userBookList, ref LibraryBooksOperationResult result)
        {
            if (userBookList.Count() > maxNumberBooks)
            {
                result.Message = ValidationMessages.MaxBookLoanReached;
                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 LibraryBooksOperationResult validate(InfoRequest infoReq)
        {
            var result = new LibraryBooksOperationResult();

            var user = this._usersRepository.GetUserByUsername(infoReq.Username).Result;
            var book = this._bookRepository.FindBy(x => x.Code == infoReq.BookCode).Result.FirstOrDefault();
            var userBookList = this._bookRepository.GetBookListByUsername(infoReq.Username).Result;

            result.Success = !LibraryValidator.isBookNull(book, ref result)
                && !LibraryValidator.isBookLoaned(book, ref result)
                && !LibraryValidator.isMaxLoanReached(userBookList,ref result)
                && !LibraryValidator.isUserFined(user, ref result);

            return result;
        }
        private static void Register()
        {
            var infoReq = new InfoRequest();
            AskForValue(Resource.EnterName);
            infoReq.Username = inputValue;
            AskForValue(Resource.EnterBook);
            infoReq.BookCode = inputValue;            

            result = libraryService.ExecuteBookOperation(infoReq).Result;

            if (result.Success)
            {
                PrintMessage(Resource.RegisterBookSuccess);
            }
            else
            {
                PrintMessage(result.Message.ToString());
            }
        }