Esempio n. 1
0
        public BorrowResult BorrowBook(RelationUserBookCopyViewModel viewModel, UserSessionObject user)
        {
            var result = new BorrowResult();

            viewModel.DateOfIssue      = DateTime.Now;
            viewModel.DateDueForReturn = DateTime.Now.AddDays(14);

            RelationUserBookCopyDomainModelBuilder builder = BuilderResolverService.Get
                                                             <RelationUserBookCopyDomainModelBuilder, RelationUserBookCopyViewModel>(viewModel);

            Constructor.ConstructDomainModelData(builder);
            RelationUserBookCopyData domainModel = builder.GetDataModel();

            if (viewModel.Id == 0)
            {
                domainModel.RefUserCreatedBy = user.UserId;
            }

            int loanId = RelationUserBookCopyRepository.SaveData(domainModel);

            if (loanId != 0)
            {
                var saveResult = UpdateCopyAndBook(domainModel.BookCopyId, user);
                if (saveResult.Success)
                {
                    string username = UserService.Get(domainModel.UserId).Username;
                    result = new BorrowResult(loanId, domainModel.BookCopyId, username);
                }
            }

            return(result);
        }
Esempio n. 2
0
        public List <RelationUserBookCopyViewModel> GetLoans(bool active)
        {
            var viewModels   = new List <RelationUserBookCopyViewModel>();
            var domainModels = new List <RelationUserBookCopyData>();

            if (active)
            {
                domainModels = RelationUserBookCopyRepository.GetAllActiveData();
            }
            else
            {
                domainModels = RelationUserBookCopyRepository.GetAllData();
            }

            viewModels = ConvertToViewModels(domainModels);

            return(viewModels);
        }
Esempio n. 3
0
        public BorrowResult ReturnBook(int loandId, UserSessionObject user)
        {
            var result = new BorrowResult();
            RelationUserBookCopyData loanData = RelationUserBookCopyRepository.GetDataById(loandId);

            if (loanData != null)
            {
                loanData.DateReturned      = DateTime.Now;
                loanData.DateTimeDeletedOn = DateTime.Now;
                loanData.RefUserDeletedBy  = user.UserId;
                loanData.IsActive          = false;

                BookCopyData bookCopy = BookCopyRepository.GetDataById(loanData.BookCopyId);
                if (bookCopy != null)
                {
                    bookCopy.OnLoan = false;
                    BookData book = BookRepository.GetDataById(bookCopy.BookId);
                    if (book != null)
                    {
                        book.NumOfAvailableCopies = book.NumOfAvailableCopies + 1;

                        int bookId     = BookRepository.SaveData(book);
                        int bookCopyId = BookCopyRepository.SaveData(bookCopy);
                        int loanId     = RelationUserBookCopyRepository.SaveData(loanData);

                        result = new BorrowResult(loandId, bookCopyId);
                    }
                    else
                    {
                        result.Message = "Book not found.";
                    }
                }
                else
                {
                    result.Message = "Book copy not found.";
                }
            }
            else
            {
                result.Message = "Loan with id " + loandId + "doesn't exist.";
            }

            return(result);
        }
Esempio n. 4
0
        public DeleteUserResult Delete(int?userId, UserSessionObject currentUser)
        {
            var result = new DeleteUserResult();

            if (userId.HasValue)
            {
                UserData domainModel = UserRepository.GetDataById(userId.Value);
                if (domainModel != null)
                {
                    List <RelationUserBookCopyData> loans = RelationUserBookCopyRepository.GetLoansForUser(userId.Value);
                    if (loans.Count == 0)
                    {
                        UserRepository.DeleteById(userId.Value, currentUser.UserId);
                        result = new DeleteUserResult(userId.Value, domainModel.FullFirstAndLastName);
                    }
                    else
                    {
                        result.Message = "Can't delete this user. There are some not returned loans.";
                    }
                }
            }

            return(result);
        }