Exemplo n.º 1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        _isbn       = Request.QueryString["isbn"];
        _borrowerId = Session["user"].ToString();
        if (!string.IsNullOrEmpty(_isbn))
        {
            var book = new Book();
            book.Find(_isbn);
            lblIsbn.Text      = book.Isbn;
            lblTitle.Text     = book.Title;
            lblAuthor.Text    = book.Author;
            lblPublisher.Text = book.Publisher;
            lblPubYear.Text   = book.PubYear;
            lblEdition.Text   = book.Edition.ToString();
            lblGenre.Text     = book.GetGenreDescription(book.GenreCode);



            var bookCopies = new BookCopyCollection(_isbn).BookCopies;
            var loans      = new LoanCollection();
            loans.FilterActiveLoansByIsbn(_isbn);
            DataTable copyDisplay = new DataTable();
            var       list        = loans.LoanList;
            copyDisplay.Columns.Add("Barcode", typeof(string));
            copyDisplay.Columns.Add("Shelf", typeof(string));
            copyDisplay.Columns.Add("LoanType", typeof(string));
            copyDisplay.Columns.Add("Status", typeof(string));
            List <bool> copyAvailability = new List <bool>();
            int         copiesAvailable  = 0;
            foreach (var bookCopy in bookCopies)
            {
                DataRow row = copyDisplay.NewRow();
                row["Barcode"]  = bookCopy.Barcode;
                row["Shelf"]    = book.ShelfNo;
                row["LoanType"] = bookCopy.LoanType;
                var activeLoan =
                    loans.LoanList.Find(loan => loan.CopyBarcode.Trim() == bookCopy.Barcode.Trim());
                var isReservable = activeLoan != null;
                row["Status"] = !isReservable
                    ? "Available"
                    : activeLoan.LoanDueDate < DateTime.Now
                        ? $"Overdue (was due back {activeLoan.LoanDueDate.ToString("d MMMM")})"
                        : $"Due on {activeLoan.LoanDueDate.ToString("d MMMM yyyy")}";
                copyDisplay.Rows.Add(row);
                copiesAvailable += !isReservable ? 1 : 0;
                copyAvailability.Add(isReservable && bookCopy.LoanType.Contains("Normal"));
            }

            btnReserve.Enabled = copyAvailability.Exists(available => available) && copyDisplay.Rows.Count != 0;

            btnReserve.Text = copyAvailability.Exists(available => available) && copyDisplay.Rows.Count != 0
                ? "Reserve"
                : "Not Reservable";
            lblAvailableCopy.Text    = $"{copiesAvailable} copy/copies available at {book.ShelfNo}";
            rptBookCopies.DataSource = copyDisplay;
            rptBookCopies.DataBind();
        }
    }
Exemplo n.º 2
0
        public IActionResult PutLoanCollection([FromBody] LoanCollection loan)
        {
            var model = _context.LoanCollection.Find(loan.Id);

            model.LoanCollectAmount = loan.LoanCollectAmount;
            model.LoanCollectDate   = loan.LoanCollectDate;
            _context.SaveChanges();
            return(Json(loan));
        }
 public LoanController()
 {
     loanCollection = new LoanCollection();
     if (loanCollection.LoanCellection != null)
     {
         loans = loanCollection.LoanCellection;
     }
     else
     {
         loans = new List<Loan>();
     }
 }
Exemplo n.º 4
0
        public async Task <IActionResult> Update(string id, LoanCollection updatedLoanCollection)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var collection = await _collectionService.GetByIdAsync(id);

            if (collection == null)
            {
                return(NotFound());
            }

            await _collectionService.UpdateAsync(id, updatedLoanCollection);

            return(NoContent());
        }
Exemplo n.º 5
0
 public async Task UpdateAsync(string id, LoanCollection loanCollection)
 {
     await _collection.ReplaceOneAsync(s => s.Id == id, loanCollection);
 }
Exemplo n.º 6
0
        public async Task <LoanCollection> CreateAsync(LoanCollection collation)
        {
            await _collection.InsertOneAsync(collation);

            return(collation);
        }
Exemplo n.º 7
0
 public IActionResult GetLoanCollection([FromBody] LoanCollection loan)
 {
     _context.LoanCollection.Add(loan);
     _context.SaveChanges();
     return(Json(loan));
 }