private void DisplayBorrowerDeails(int bookId)
        {
            try
            {
                BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();
                Borrower borrower = dbOperations.RetrieveBookBorrowerDetails(bookId);

                if (borrower != null)
                {
                    lblName.Text          = borrower.Name;
                    lblMobile.Text        = borrower.MobileNo;
                    lblReqReturnDate.Text = borrower.ReturnDate.ToString();
                    lblReturnDate.Text    = DateTime.Now.ToString();
                    hdnField.Value        = borrower.Book.ModifiedOn.ToJson();
                    double penaltyAmount = Utilities.Instance.CalcultePenaltyAmount(DateTime.Now, borrower.ReturnDate);
                    lblPenaltyAmount.Text = String.Format("{0:#,##0.00}", penaltyAmount);
                }
                else
                {
                    btnCheckIn.Enabled = false;
                    Utilities.Instance.SetPageMessage("Book is either already checked in or was not found.", Utilities.Severity.Error, Page.Master);
                    return;
                }
            }
            catch (Exception ex)
            {
                btnCheckIn.Enabled = false;
                Utilities.Instance.SetPageMessage(ex.Message, Utilities.Severity.Error, Page.Master);
            }
        }
        private void DisplayBookDetails(int bookId)
        {
            BusinessLogicDBOperations dbOp = new BusinessLogicDBOperations();

            try
            {
                Book book = dbOp.RetrieveBookDetails(bookId);
                lblBookTitle.Text   = book.Title;
                lblISBN.Text        = book.ISBN;
                lblPrice.Text       = book.CoverPrice.ToString("0.##", CultureInfo.InvariantCulture);
                lblPublishYear.Text = book.PublishYear;
                lblStatus.Text      = book.CheckOutStatusDescription;

                if (lblStatus.Text == "Check out")
                {
                    Borrower borrower = dbOp.RetrieveBookBorrowerDetails(bookId);
                    lblCurrentBorrower.Text = borrower.Name;
                }
                else
                {
                    lblCurrentBorrower.Text = "None";
                }
            }
            catch (Exception ex)
            {
                Utilities.Instance.SetPageMessage(ex.Message, Utilities.Severity.Error, Page.Master);
                return;
            }
        }
Ejemplo n.º 3
0
        private double calcultePenaltyAmount(DateTime ActualReturnDate, DateTime ReturnDate)
        {
            // if ReturnDate is greater and equal today as per i understand no fine
            BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();
            List <GazetteHoliday>     holidays     = dbOperations.RetriveGazetteHoliday();

            if (ReturnDate.Date >= DateTime.Now.Date)
            {
                return(0);
            }
            else
            {
                // how days exceed total days * planty amount which is 5
                double lateDays = 0;


                lateDays = (DateTime.Now.Date - ReturnDate.Date).TotalDays;
                //while (ReturnDate != DateTime.Now.Date)
                //{
                //    if (!(ReturnDate.DayOfWeek == DayOfWeek.Saturday || ReturnDate.DayOfWeek == DayOfWeek.Sunday || Utilities.Utilities.CheckHoliday(ReturnDate, holidays)))
                //    {
                //        lateDays++;
                //    }
                //    ReturnDate = ReturnDate.AddDays(1);
                //}
                return(lateDays * 5);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// This function is responsible for populating the book history grid.
        /// </summary>
        /// <param name="bookID">Book ID</param>
        private void displayBookCheckOutHistory(int bookID)
        {
            BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();
            List <Borrower>           borrowers    = dbOperations.RetrieveBookCheckOutHistory(bookID);

            HistoryList.DataSource = borrowers;
            HistoryList.DataBind();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Check Out button event handler
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnCheckOut_Click(object sender, EventArgs e)
        {
            int selectedBookID = 0;

            if (!String.IsNullOrWhiteSpace(Request.QueryString["bookID"]))
            {
                selectedBookID = int.Parse(Request.QueryString["bookID"]);
            }
            else
            {
                Utilities.Utilities.setPageMessage("Please select a book.", Utilities.Utilities.severity.error, Page.Master);
                return;
            }

            BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();


            string   bookName     = txtName.Text;
            string   mobileNo     = txtMobile.Text;
            string   nationalID   = txtNationalID.Text;
            DateTime checkOutDate = DateTime.Parse(lblCheckOutDate.Text);
            DateTime returnDate   = DateTime.Parse(lblReturnDate.Text);

            var book = dbOperations.RetrieveBooksList().Where(x => x.BookID == selectedBookID).FirstOrDefault();

            if (book != null && book.CheckOutStatusID == 1) // CheckOutStatusID 1 is check in
            {
                int result = dbOperations.CheckOut(selectedBookID,
                                                   bookName,
                                                   mobileNo,
                                                   nationalID,
                                                   checkOutDate,
                                                   returnDate
                                                   );

                if (result == 0)
                {
                    Utilities.Utilities.setPageMessage("Encountered an error while checking out.", Utilities.Utilities.severity.error, Page.Master);
                    return;
                }

                Utilities.Utilities.setPageMessage("Book has been checked out in the name of " + txtName.Text, Utilities.Utilities.severity.info, Page.Master);

                displayBookCheckOutHistory(selectedBookID);
            }
            else
            {
                Utilities.Utilities.setPageMessage("Book is already checkout", Utilities.Utilities.severity.error, Page.Master);
            }
        }
Ejemplo n.º 6
0
        private void DisplayBookInfo(int BookID)
        {
            try
            {
                BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();
                Book book = dbOperations.RetrieveBooksList(BookID).Where(x => x.BookID == BookID).FirstOrDefault();

                if (book != null)
                {
                    lblBookTitle.Text     = book.Title;
                    lblCheckInStatus.Text = book.CheckOutStatusDescription;
                    lblCoverPrice.Text    = book.CoverPrice.ToString("N0");
                    lblISBN.Text          = book.ISBN;
                    lblName.Text          = "";
                    lblPublishYear.Text   = book.PublishYear;

                    //Get book borrower history
                    BusinessLogicDBOperations dbBorrowers = new BusinessLogicDBOperations();
                    List <Borrower>           borrowers   = dbOperations.RetrieveBookCheckOutHistory(BookID);

                    if (book.CheckOutStatusID == 1)
                    {
                        Borrower borrower = borrowers.LastOrDefault();
                        if (borrower != null)
                        {
                            lblName.Text = borrower.Name;
                        }
                    }
                    else
                    {
                        lblName.Text = "Book is checked in.";
                    }

                    HistoryList.DataSource = borrowers;
                    HistoryList.DataBind();
                }
                else
                {
                    Utilities.Utilities.setPageMessage("Book is either already checked in or was not found.",
                                                       Utilities.Utilities.severity.error, Page.Master);
                    return;
                }
            }
            catch (Exception ex)
            {
                BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();
                dbOperations.ErrorLog(ex.Message, Request.Url.AbsoluteUri);
            }
        }
Ejemplo n.º 7
0
        private void DisplayBookDetails(int bookId)
        {
            BusinessLogicDBOperations dbOp = new BusinessLogicDBOperations();

            try
            {
                var bookInfo = dbOp.RetrieveBookDetails(bookId);
                hdnField.Value = bookInfo.ModifiedOn.ToJson();
            }
            catch (Exception ex)
            {
                Utilities.Instance.SetPageMessage(ex.Message, Utilities.Severity.Error, Page.Master);
                return;
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// This function is responsible for populating the book history grid.
        /// </summary>
        /// <param name="bookId">Book ID</param>
        private void DisplayBookCheckOutHistory(int bookId)
        {
            try
            {
                BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();
                List <Borrower>           borrowers    = dbOperations.RetrieveBookCheckOutHistory(bookId);

                HistoryList.DataSource = borrowers;
                HistoryList.DataBind();
            }
            catch (Exception ex)
            {
                Utilities.Instance.SetPageMessage(ex.Message, Utilities.Severity.Error, Page.Master);
            }
        }
        protected void BtnCheckIn_Click(object sender, EventArgs e)
        {
            btnCheckIn.Enabled = false;
            BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();

            int selectedBookID = 0;

            if (!String.IsNullOrWhiteSpace(Request.QueryString["bookID"]))
            {
                selectedBookID = int.Parse(Request.QueryString["bookID"]);


                DateTime dt;
                try
                {
                    dt = hdnField.Value.FromJson <DateTime>();
                }
                catch (Exception)
                {
                    Utilities.Instance.SetPageMessage("Either the book is not available or already checked out. Please try to refresh again", Utilities.Severity.Error, Page.Master);
                    return;
                }

                int result = dbOperations.CheckIn(selectedBookID, dt);
                switch (result)
                {
                case 0:
                {
                    Utilities.Instance.SetPageMessage("There was an error occured. Request can not be fulfil at the current movement.", Utilities.Severity.Error, Page.Master);
                    return;
                }

                case 404:
                {
                    Utilities.Instance.SetPageMessage("Either the book is already checked in or was not found.", Utilities.Severity.Error, Page.Master);
                    return;
                }

                default:
                    Utilities.Instance.SetPageMessage("Book has been checked in successfully.", Utilities.Severity.Info, Page.Master);
                    break;
                }
            }
            else
            {
                Utilities.Instance.SetPageMessage("The resource which you are trying to access is not available.", Utilities.Severity.Error, Page.Master);
            }
        }
Ejemplo n.º 10
0
        private void DisplayBooks()
        {
            BusinessLogicDBOperations dbOp = new BusinessLogicDBOperations();

            try
            {
                BooksList.DataSource = Books;
                BooksList.DataBind();
            }
            catch (Exception ex)
            {
                BusinessLogicExceptionOperations logger = new BusinessLogicExceptionOperations();
                logger.SaveException(ex.Message);
                base.SetPageMessage(ex.Message, Utilities.Utilities.Severity.error);
                return;
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// This function calculates the date after specified number of work/business days
        /// Friday and Saturday are treated as off days.
        /// </summary>
        /// <param name="days">Business days</param>
        /// <returns>Target Date</returns>
        public static DateTime getDateAfterSpecifiedBusinessDays(int days)
        {
            BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();
            List <GazetteHoliday>     holidays     = dbOperations.RetriveGazetteHoliday();
            DateTime TargetDate = DateTime.Now;

            for (int i = 0; i < 15;)
            {
                if (!(TargetDate.DayOfWeek == DayOfWeek.Saturday || TargetDate.DayOfWeek == DayOfWeek.Sunday || CheckHoliday(TargetDate, holidays)))
                {
                    i++;
                }
                TargetDate = TargetDate.AddDays(1);
            }

            return(TargetDate);
        }
Ejemplo n.º 12
0
        private void displayBooks()
        {
            BusinessLogicDBOperations dbOp = new BusinessLogicDBOperations();

            try
            {
                List <Book> books = dbOp.RetrieveBooksList();

                BooksList.DataSource = books;
                BooksList.DataBind();
            }
            catch (Exception ex)
            {
                Utilities.Utilities.setPageMessage(ex.Message, Utilities.Utilities.severity.error, Page.Master);
                return;
            }
        }
Ejemplo n.º 13
0
        private void DisplayBooks()
        {
            try
            {
                BusinessLogicDBOperations dbOp = new BusinessLogicDBOperations();
                List <Book> books = dbOp.RetrieveBooksList();

                BooksList.DataSource = books;
                BooksList.DataBind();
            }
            catch (Exception ex)
            {
                Utilities.Instance.SetPageMessage(ex.Message, Utilities.Severity.Error, Page.Master);
                btnCheckIn.Enabled  = false;
                btnCheckOut.Enabled = false;
                btnDetails.Enabled  = false;
                return;
            }
        }
Ejemplo n.º 14
0
        private void displayBorrowerDeails(int BookID)
        {
            BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();
            Borrower borrower = dbOperations.RetrieveBookBorrowerDetails(BookID);

            if (borrower != null)
            {
                lblName.Text          = borrower.Name;
                lblMobile.Text        = borrower.MobileNo;
                lblReqReturnDate.Text = borrower.ReturnDate.ToShortTimeString();
                lblReturnDate.Text    = DateTime.Now.ToString();

                double penaltyAmount = calcultePenaltyAmount(DateTime.Now, borrower.ReturnDate);
                lblPenaltyAmount.Text = String.Format("{0:#,##0.00}", penaltyAmount);
            }
            else
            {
                Utilities.Utilities.setPageMessage("Book is either already checked in or was not found.", Utilities.Utilities.severity.error, Page.Master);
                return;
            }
        }
Ejemplo n.º 15
0
        private void displayBookDeails(int BookID)
        {
            BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();
            Book book = dbOperations.RetrieveBookDetails(BookID);

            if (book != null)
            {
                lblTitle.Text          = book.Title;
                lblISBN.Text           = book.ISBN;
                lblpublishDate.Text    = book.PublishYear;
                lblcoverprice.Text     = book.CoverPrice.ToString();
                lblcheckoutstatus.Text = book.CheckOutStatusDescription;

                // double penaltyAmount = calcultePenaltyAmount(DateTime.Now, borrower.ReturnDate);
                // lblPenaltyAmount.Text = String.Format("{0:#,##0.00}", penaltyAmount);
            }
            else
            {
                Utilities.Utilities.setPageMessage("Book is either already checked in or was not found.", Utilities.Utilities.severity.error, Page.Master);
                return;
            }
        }
Ejemplo n.º 16
0
        protected void btnCheckIn_Click(object sender, EventArgs e)
        {
            BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();

            int selectedBookID = 0;

            if (!String.IsNullOrWhiteSpace(Request.QueryString["bookID"]))
            {
                selectedBookID = int.Parse(Request.QueryString["bookID"]);
            }
            else
            {
            }

            int result = dbOperations.CheckIn(selectedBookID);

            if (result == 0)
            {
                Utilities.Utilities.setPageMessage("Encountered an error while checking in.", Utilities.Utilities.severity.error, Page.Master);
                return;
            }

            Utilities.Utilities.setPageMessage("Book has been checked in successfully.", Utilities.Utilities.severity.info, Page.Master);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Check Out button event handler
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnCheckOut_Click(object sender, EventArgs e)
        {
            btnCheckOut.Enabled = false;
            int selectedBookID = 0;

            if (!String.IsNullOrWhiteSpace(Request.QueryString["bookID"]))
            {
                selectedBookID = int.Parse(Request.QueryString["bookID"]);
                BusinessLogicDBOperations dbOperations = new BusinessLogicDBOperations();

                string   bookName     = txtName.Text;
                string   mobileNo     = txtMobile.Text;
                string   nationalID   = txtNationalID.Text;
                DateTime checkOutDate = DateTime.Parse(lblCheckOutDate.Text);
                DateTime returnDate   = DateTime.Parse(lblReturnDate.Text);

                DateTime dt;
                try
                {
                    dt = hdnField.Value.FromJson <DateTime>();
                }
                catch (Exception)
                {
                    Utilities.Instance.SetPageMessage("Either the book is not available or already checked out. Please try to refresh again", Utilities.Severity.Error, Page.Master);
                    return;
                }

                int result = dbOperations.CheckOut(selectedBookID,
                                                   bookName,
                                                   mobileNo,
                                                   nationalID,
                                                   checkOutDate,
                                                   returnDate,
                                                   dt
                                                   );
                switch (result)
                {
                case 0:
                {
                    Utilities.Instance.SetPageMessage("There was an error occured. Request can not be fulfil at the current movement.", Utilities.Severity.Error, Page.Master);
                    return;
                }

                case 404:
                {
                    Utilities.Instance.SetPageMessage("Either the book is not available or already checked out", Utilities.Severity.Error, Page.Master);
                    return;
                }

                default:
                {
                    Utilities.Instance.SetPageMessage("Book has been checked out in the name of " + txtName.Text, Utilities.Severity.Info, Page.Master);
                    DisplayBookCheckOutHistory(selectedBookID);
                    break;
                }
                }
            }
            else
            {
                Utilities.Instance.SetPageMessage("The resource you are trying to access is not available", Utilities.Severity.Error, Page.Master);
            }
        }