Exemple #1
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);
        }