Ejemplo n.º 1
0
        /// <summary>
        /// Check out tickets and check to see if that ticket is valid to check out
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCheckout_Click(object sender, EventArgs e)
        {
            int    availableSlot = AvailableSlot();
            string message;
            int    ticketOut;// index of the ticket you want to check out in TicketArray[]


            if (radBtnCheckOut.Checked == false)
            {
                message = ("Please check on the \"Check OUT\" box to check in");
                MessageBox.Show(message);
            }
            else if (!Int32.TryParse(txtBxTicketNumber.Text, out int number) || txtBxTicketNumber.Text == "")
            {
                MessageBox.Show("Please Enter YourTicket number to check out");
            }
            //!Int32.TryParse(txtBxTicketNumber.Text, out int number)
            else
            {
                // instantiate a student object with the text box data

                if (number >= idx || number < 0 || IfCheckedOut(number))
                {
                    MessageBox.Show("Cannot find this ticket number in the system.\nPlease try again.");
                }
                else
                {
                    Ticket aTicket = new Ticket();
                    aTicket.TicketNo = txtBxTicketNumber.Text;
                    //DateTime timeNow = DateTime.Now.AddHours(24).AddMinutes(15).TimeOfDay;
                    // TimeSpan trimmedTimeNow = new TimeSpan(timeNow.Hours, timeNow.Minutes, timeNow.Seconds); // Get time if format (get rid of the milliseconds)
                    aTicket.TimeOut = DateTime.Now;
                    //aTicket.TimeOut = DateTime.Now.AddHours(25).AddMinutes(59);

                    for (ticketOut = 0; ticketOut < Ticket.TicketArray.Length; ticketOut++)
                    {
                        if (Ticket.TicketArray[ticketOut] != null)
                        {
                            if (Ticket.TicketArray[ticketOut].TicketNo == aTicket.TicketNo)
                            {
                                break;
                            }
                        }
                    }
                    Ticket.TicketArray[ticketOut].TimeOut = aTicket.TimeOut;
                    decimal chargeAmount = Ticket.CalculateCharege(Ticket.TicketArray[ticketOut].TimeIn, Ticket.TicketArray[ticketOut].TimeOut);
                    MessageBox.Show($"Check Out Ticket #{Ticket.TicketArray[ticketOut].TicketNo}\n" +
                                    $"Time In:     {Ticket.TicketArray[ticketOut].TimeIn}\n" +
                                    $"Time Out: {Ticket.TicketArray[ticketOut].TimeOut}\n" +
                                    $"Charge amount: {chargeAmount:C}");

                    checkoutList.Add(number);
                    /// Delete Ticket from Garage and TicketArray
                    Ticket.Garage[ticketOut]      = (false);
                    Ticket.TicketArray[ticketOut] = null;////
                    #region XML Writer
                    // establish our xml writer settings
                    XmlWriterSettings settings = new XmlWriterSettings();
                    settings.Indent          = true;
                    settings.NewLineHandling = NewLineHandling.Replace;
                    using (XmlWriter writer = XmlWriter.Create("Tickets.xml", settings))
                    {
                        writer.WriteStartDocument();                           // write the xml header
                        writer.WriteStartElement("Tickets");                   // write our root tag
                        for (int i = 0; i < Ticket.TicketArray.Length; i++)
                        {
                            if (Ticket.TicketArray[i] != null)
                            {
                                writer.WriteStartElement("Ticket");                                               // write a Ticket tag
                                writer.WriteElementString("TicketNo", Ticket.TicketArray[i].TicketNo.ToString()); // add Ticket fields
                                writer.WriteElementString("TimeIn", Ticket.TicketArray[i].TimeIn.ToString());
                                writer.WriteElementString("TimeOut", aTicket.TimeOut.ToString());
                                writer.WriteEndElement();
                            }
                        }
                    }
                    #endregion
                    ListUpdate();
                }//End of Else
            }
            txtBxTicketNumber.Text = "";
        }// enmd of checkout button