winForms Booking Class Help

Posted by cameron on Stack Overflow See other posts from Stack Overflow or by cameron
Published on 2010-12-24T23:45:08Z Indexed on 2010/12/24 23:54 UTC
Read the original article Hit count: 313

Filed under:
|
|

Hi, I am using C# Windows Forms in visual studio with different classes performing different functions in my program.

I have a "Program" main class with the following information:

    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }

and a Screen class with the following information

class Screen
    {
        public List<Show> shows { get; private set; }
        public int ScreenNumber { get; private set; }

        public Screen(int screenNumber, params Show[] schedule)
        {
            this.ScreenNumber = screenNumber;
            this.shows = schedule.ToList<Show>();
        }   
    }

and a Seat class with the following information

public class Seat
    {
        private string name;
        public bool IsAvailable { get; set; }
        public decimal Price { get; private set; }
        public int Number { get; private set; }

        public Seat(bool isAvailable, int number)
        {
            this.IsAvailable = isAvailable;
            this.name = String.Format("Seat {0}",number);
            this.Price = 7.50m;
            this.Number = number;
        }

        public override string ToString()
        {
            return this.name;
        }

    }

and finally a Show class with the following information

public class Show
    {
        private List<Seat> seats = new List<Seat>();
        public string Title { get; private set; }
        public string Time { get; private set; }
        public int ScreenNumber { get; private set; }
        public List<Seat> Seats { get { return this.seats; } }

        public Show(string title, DateTime time, int screenNumber, int numberOfSeats)
        {
            this.Title = title;
            this.Time = time.ToShortTimeString();
            this.ScreenNumber = screenNumber;
            this.initSeats(numberOfSeats);
        }

        private void initSeats(int numberOfSeats)
        {
            for (int i = 0; i < numberOfSeats; i++) this.seats.Add(new Seat(true, i + 1));
        }
    }`

these all feed into two different winForms to create a booking system for shows.

therefore i need to collate the data given in program and output it into a txt file.

any help will be much appreciated

NOTE:

the code for FORM1 which allows the user to select which show they want is:

namespace CindysSeats
{
    public partial class Form1 : Form
    {
        private Cinema cinema = new Cinema();
        //booked show could be added to booking object when you create it so that it is easily writable to the external file
        private Show selectedShow;

        public Form1()
        { 
            InitializeComponent();
            this.showList_dg.DataSource = this.cinema.GetShowList();
        }

        private void showList_dg_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            Show selectedShow = this.selectedShow = this.cinema.GetShowList()[e.RowIndex];

            this.showTitle_lbl.Text = selectedShow.Title;
            this.showTime_lbl.Text = selectedShow.Time;
            this.showScreen_lbl.Text = selectedShow.ScreenNumber.ToString();
        }

        private void confirmShow_btn_Click(object sender, EventArgs e)
        {
            if (this.selectedShow == null) return;
            Form2 seats = new Form2(this.selectedShow);
            seats.Show();
        }

And the code for FORM2 which is where the user selects their seats they want is:

namespace CindysSeats
{
    public partial class Form2 : Form
    {
        //booked seats could be added to booking object when you create it so that it is easily writable to the external file
        private List<Seat> bookedSeats = new List<Seat>();

        private Show selectedShow;

        public Form2(Show selectedShow)
        {
            InitializeComponent();
            this.selectedShow = selectedShow;
            this.showSeats_dg.DataSource = this.selectedShow.Seats;
        }

        private void showSeats_dg_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            Seat selectedSeat = this.selectedShow.Seats[e.RowIndex];

            if(this.bookedSeats.Contains(selectedSeat)) return;
            if(!selectedSeat.IsAvailable) return;

            this.bookedSeats.Add(selectedSeat);
            this.bookedSeats_lv.Items.Add(selectedSeat.ToString() + " " + selectedSeat.Price.ToString()+"\n");
            this.bookedSeats_lv.Invalidate();
        }

        private void bookSeats_btn_Click(object sender, EventArgs e)
        {

        }
    }

thank you for helping

© Stack Overflow or respective owner

Related posts about c#

Related posts about winforms