Exemple #1
0
        public void T1_Checkout_CreatesACheckoutRecord()
        {
            Patron testPatron = new Patron("Judy");
              testPatron.Save();

              Copy testCopy = new Copy(5);
              testCopy.Save();

              DateTime checkoutDate = new DateTime(2016,08,04);
              DateTime dueDate = new DateTime(2017,01,02);

              Checkout newCheckout = new Checkout(testCopy.GetId(), testPatron.GetId(), checkoutDate, dueDate);
              newCheckout.Save();

              List<Checkout> result = Checkout.GetAll();

              Assert.Equal(newCheckout, result[0]);
        }
Exemple #2
0
        public static void Return(int id)
        {
            SqlConnection conn = DB.Connection();

            conn.Open();

            if (Checkout.Find(id).GetDueDate() != "Returned")
            {
                SqlCommand copyCmd = new SqlCommand("UPDATE books SET copies = @BookCopies WHERE id = @BookId;", conn);
                copyCmd.Parameters.Add(new SqlParameter("@BookCopies", (Book.Find(Checkout.Find(id).GetBookId()).GetCopies() + 1)));
                copyCmd.Parameters.Add(new SqlParameter("@BookId", Checkout.Find(id).GetBookId()));
                copyCmd.ExecuteNonQuery();
            }

            SqlCommand cmd = new SqlCommand("UPDATE checkouts SET due_date = 'Returned' WHERE id=@CheckoutId;", conn);

            cmd.Parameters.Add(new SqlParameter("@CheckoutId", id));
            cmd.ExecuteNonQuery();


            DB.CloseSqlConnection(conn);
        }
Exemple #3
0
 public void Checkout_EmptyOnLoad_0()
 {
     Assert.Equal(0, Checkout.GetAll().Count);
 }
Exemple #4
0
        public static List<Checkout> GetAll()
        {
            List<Checkout> allCheckouts = new List<Checkout>{};

              SqlConnection conn = DB.Connection();
              conn.Open();

              SqlCommand cmd = new SqlCommand("SELECT * FROM checkouts;", conn);
              SqlDataReader rdr = cmd.ExecuteReader();

              while (rdr.Read())
              {
            int id = rdr.GetInt32(0);
            int copyId = rdr.GetInt32(1);
            int patronId = rdr.GetInt32(2);
            DateTime checkoutDate = rdr.GetDateTime(3);
            DateTime dueDate = rdr.GetDateTime(4);

            Checkout newCheckout = new Checkout(copyId, patronId, checkoutDate, dueDate, id);
            allCheckouts.Add(newCheckout);
              }
              if (rdr != null)
              {
            rdr.Close();
              }
              if (conn != null)
              {
            conn.Close();
              }
              return allCheckouts;
        }
Exemple #5
0
 public void Dispose()
 {
     Checkout.DeleteAll();
 }
Exemple #6
0
        public Checkout Checkout(int copyId, int patronId, DateTime dueDate)
        {
            SqlConnection conn = DB.Connection();

            conn.Open();

            SqlCommand cmd = new SqlCommand("INSERT into checkouts(copy_id, patron_id, due, checkin) OUTPUT INSERTED.* VALUES(@CopyId, @PatronId, @DueDate, 0);", conn);

            SqlParameter copyIdParameter = new SqlParameter();

            copyIdParameter.ParameterName = "@CopyId";
            copyIdParameter.Value         = copyId;
            cmd.Parameters.Add(copyIdParameter);

            SqlParameter patronIdParameter = new SqlParameter();

            patronIdParameter.ParameterName = "@PatronId";
            patronIdParameter.Value         = this._id;
            cmd.Parameters.Add(patronIdParameter);


            SqlParameter dueDateParameter = new SqlParameter();

            dueDateParameter.ParameterName = "@DueDate";
            dueDateParameter.Value         = dueDate;
            cmd.Parameters.Add(dueDateParameter);

            SqlDataReader rdr           = cmd.ExecuteReader();
            int           newCheckoutId = 0;
            int           newCopyId     = 0;
            int           newPatronId   = 0;
            DateTime      due           = new DateTime(1900, 01, 01);
            bool          checkin       = false;


            while (rdr.Read())
            {
                newCheckoutId = rdr.GetInt32(0);
                newCopyId     = rdr.GetInt32(1);
                newPatronId   = rdr.GetInt32(2);
                due           = rdr.GetDateTime(3);
                if (rdr.GetByte(4) == 1)
                {
                    checkin = true;
                }
                else
                {
                    checkin = false;
                }
            }
            Checkout newCheckout = new Checkout(newCopyId, newPatronId, due, newCheckoutId);

            newCheckout.SetCheckInStatus(checkin);

            if (rdr != null)
            {
                rdr.Close();
            }
            if (conn != null)
            {
                conn.Close();
            }
            return(newCheckout);
        }
Exemple #7
0
        public HomeModule()
        {
            string thisDay = "1";

            Get["/"] = _ => {
                return(View["index.cshtml", ModelMaker()]);
            };

            Post["/overdue-date"] = _ => {
                thisDay = Request.Form["current-day"];
                Dictionary <string, object> model = ModelMaker();
                model.Add("Overdue", Checkout.GetAllOverdue(thisDay));
                return(View["overdue.cshtml", model]);
            };

            Post["/add-book"] = _ => {
                Book newBook = new Book(Request.Form["book-name"], Request.Form["copies"]);
                newBook.Save();

                if (Request.Form["author-name"] != null)
                {
                    Author newAuthor = new Author(Request.Form["author-name"]);
                    newAuthor.Save();
                    newBook.AddAuthor(newAuthor.GetId());
                }

                Dictionary <string, object> model = ModelMaker();
                model.Add("Book", newBook);

                return(View["book.cshtml", model]);
            };

            Post["/add-author"] = _ => {
                Author newAuthor = new Author(Request.Form["author-name"]);
                newAuthor.Save();

                Dictionary <string, object> model = ModelMaker();
                model.Add("Author", newAuthor);

                return(View["author.cshtml", model]);
            };

            Post["/patron/{patronId}/return/{id}"] = parameters => {
                Checkout.Return(parameters.id);

                Dictionary <string, object> model = ModelMaker();
                model.Add("Patron", Patron.Find(parameters.patronId));
                model.Add("Patron Checkouts", Patron.Find(parameters.patronId).GetCheckouts());

                return(View["patron.cshtml", model]);
            };

            Post["/add-patron"] = _ => {
                Patron newPatron = new Patron(Request.Form["patron-name"], Request.Form["patron-phone"]);
                newPatron.Save();

                Dictionary <string, object> model = ModelMaker();
                model.Add("Patron", newPatron);
                model.Add("Patron Checkouts", newPatron.GetCheckouts());

                return(View["patron.cshtml", model]);
            };

            Get["/patron/{id}"] = parameters => {
                Dictionary <string, object> model = ModelMaker();
                model.Add("Patron", Patron.Find(parameters.id));
                model.Add("Patron Checkouts", Patron.Find(parameters.id).GetCheckouts());

                return(View["patron.cshtml", model]);
            };

            Post["/patron/{id}"] = parameters => {
                Checkout newCheckout = new Checkout(Request.Form["due-date"], parameters.id, Request.Form["booklist"]);
                newCheckout.Save(Book.Find(Request.Form["booklist"]));
                Dictionary <string, object> model = ModelMaker();
                model.Add("Patron", Patron.Find(parameters.id));
                model.Add("Patron Checkouts", Patron.Find(parameters.id).GetCheckouts());

                return(View["patron.cshtml", model]);
            };

            Patch["/patron/{id}"] = parameters => {
                Patron.Find(parameters.id).Update(Request.Form["new-name"], Request.Form["new-phone"]);

                Dictionary <string, object> model = ModelMaker();
                model.Add("Patron", Patron.Find(parameters.id));
                model.Add("Patron Checkouts", Patron.Find(parameters.id).GetCheckouts());

                return(View["patron.cshtml", model]);
            };

            Get["/author/{id}"] = parameters => {
                Dictionary <string, object> model = ModelMaker();
                model.Add("Author", Author.Find(parameters.id));

                return(View["author.cshtml", model]);
            };

            Post["/author/{id}"] = parameters => {
                Author.Find(parameters.id).AddBook(Request.Form["book-id"]);

                Dictionary <string, object> model = ModelMaker();
                model.Add("Author", Author.Find(parameters.id));

                return(View["author.cshtml", model]);
            };

            Patch["/author/{id}"] = parameters => {
                Author.Find(parameters.id).Update(Request.Form["new-name"]);
                Dictionary <string, object> model = ModelMaker();
                model.Add("Author", Author.Find(parameters.id));

                return(View["author.cshtml", model]);
            };

            Delete["/author/{id}"] = parameters => {
                Author.Delete(parameters.id);
                return(View["index.cshtml", ModelMaker()]);
            };

            Get["/book/{id}"] = parameters => {
                Dictionary <string, object> model = ModelMaker();
                model.Add("Book", Book.Find(parameters.id));

                return(View["book.cshtml", model]);
            };

            Delete["/book/{id}"] = parameters => {
                Dictionary <string, object> model = ModelMaker();
                model.Add("Overdue", Checkout.GetAllOverdue(thisDay));
                Book.Delete(parameters.id);

                return(View["index.cshtml", model]);
            };

            Post["/book/{id}"] = parameters => {
                Book.Find(parameters.id).AddAuthor(Request.Form["author-id"]);

                Dictionary <string, object> model = ModelMaker();
                model.Add("Book", Book.Find(parameters.id));

                return(View["book.cshtml", model]);
            };

            Post["/book/{id}/remove_author"] = parameters => {
                Book.Find(parameters.id).RemoveAuthor(Request.Form["author-id"]);

                Dictionary <string, object> model = ModelMaker();
                model.Add("Book", Book.Find(parameters.id));

                return(View["book.cshtml", model]);
            };

            Patch["/book/{id}"] = parameters => {
                Book.Find(parameters.id).Update(Request.Form["new-name"], Request.Form["new-copies"]);
                Dictionary <string, object> model = ModelMaker();
                model.Add("Book", Book.Find(parameters.id));

                return(View["book.cshtml", model]);
            };
        }