-
Notifications
You must be signed in to change notification settings - Fork 1
/
SeatReservation.cs
88 lines (77 loc) · 2.65 KB
/
SeatReservation.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DatabaseCodeFirst.contextDB;
using DatabaseCodeFirst.Models;
using DatabaseCodeFirst.DAL;
using testProj.Models;
namespace testProj
{
public partial class SeatReservation : MetroFramework.Forms.MetroForm
{
private List<int> seatsChosen;
private SeatsDAL seatsDAL = new SeatsDAL();
private BusesDAL busesDAL = new BusesDAL();
private Trip trip;
private LoginUser loggedUser;
private string customerName;
public SeatReservation(LoginUser _loggedUser,Trip _trip,string _customerName)
{
InitializeComponent();
trip = _trip;
loggedUser = _loggedUser;
customerName = _customerName;
}
private void SeatReservation_Load(object sender, EventArgs e)
{
InitSeats(trip.BusId);
seatsChosen = new List<int>();
}
private void btnSeat_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
if (btn.BackColor == Color.FromArgb(1, 113, 187))
{
if (seatsChosen.Count < 3)
{
seatsChosen.Add(int.Parse(btn.Text));
btn.BackColor = Color.LightGreen;
}
}
else
{
seatsChosen.Remove(int.Parse(btn.Text));
btn.BackColor = Color.FromArgb(1,113,187);
}
}
private void btnNext_Click(object sender, EventArgs e)
{
seatsDAL.Reserve(seatsChosen.ToArray(),trip.BusId);
Ticket formTicket = new Ticket(loggedUser, trip,seatsChosen,customerName);
this.Hide();
formTicket.ShowDialog();
this.Close();
}
private void InitSeats(int _busId)
{
List<Seat> availableSeats = busesDAL.GetAvailableSeats(_busId);
var buttons = Controls.OfType<Button>().Where(b=>b.Name != "btnNext");
foreach (var btn in buttons)
{
btn.Enabled = false;
btn.BackColor = Color.Red;
}
foreach (var seat in availableSeats)
{
buttons.FirstOrDefault(b => b.Text == seat.SeatNumber.ToString()).Enabled = true;
buttons.FirstOrDefault(b => b.Text == seat.SeatNumber.ToString()).BackColor = Color.FromArgb(1, 113, 187);
}
}
}
}