-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmanageMemberships.cs
158 lines (142 loc) · 5.9 KB
/
manageMemberships.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Gym_Manager
{
public partial class manageMemberships : Form
{
string connectionString = ConfigurationManager.ConnectionStrings["GymManagementSystemDb"].ConnectionString;
public manageMemberships()
{
InitializeComponent();
}
private void GymMembersForms_Load(object sender, EventArgs e)
{
LoadMembershipsData();
AddButtonColumns();
}
private void LoadMembershipsData()
{
dataGridView1.DataSource = ExecuteQuery("select MembershipTypeID as 'Membership ID', TypeName as 'Membership Name', Description, DurationMonths as 'Duration (months)', Price as 'Price (PKR)' from membershipTypes;");
}
private void AddButtonColumns()
{
DataGridViewButtonColumn editButtonColumn = new DataGridViewButtonColumn();
editButtonColumn.Name = "Edit";
editButtonColumn.Text = "Edit";
editButtonColumn.UseColumnTextForButtonValue = true;
editButtonColumn.FlatStyle = FlatStyle.Flat;
dataGridView1.Columns.Add(editButtonColumn);
DataGridViewButtonColumn deleteButtonColumn = new DataGridViewButtonColumn();
deleteButtonColumn.Name = "Delete";
deleteButtonColumn.Text = "Delete";
deleteButtonColumn.UseColumnTextForButtonValue = true;
deleteButtonColumn.FlatStyle = FlatStyle.Flat;
dataGridView1.Columns.Add(deleteButtonColumn);
colorizeButtons();
}
private void colorizeButtons()
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Cells["Edit"].Style.BackColor = Color.DarkGreen;
row.Cells["Edit"].Style.ForeColor = Color.White;
row.Cells["Delete"].Style.BackColor = Color.DarkRed;
row.Cells["Delete"].Style.ForeColor = Color.White;
}
}
private DataTable ExecuteQuery(string query)
{
try
{
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(query, con))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
DataTable table = new DataTable();
table.Load(reader);
return table;
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "Edit")
{
int membershipID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["Membership ID"].Value);
EditMembership(membershipID);
}
else if (dataGridView1.Columns[e.ColumnIndex].Name == "Delete")
{
int membershipID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["Membership ID"].Value);
DeleteMembership(membershipID);
}
}
}
private void EditMembership(int membershipID)
{
AddMembership editForm = new AddMembership(membershipID);
editForm.ShowDialog();
LoadMembershipsData();
colorizeButtons();
}
private void DeleteMembership(int membershipID)
{
string checkMembersQuery = "SELECT COUNT(*) FROM members WHERE MembershipTypeID = @membershipID";
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
using (SqlCommand checkMembersCmd = new SqlCommand(checkMembersQuery, con))
{
checkMembersCmd.Parameters.AddWithValue("@membershipID", membershipID);
int memberCount = (int)checkMembersCmd.ExecuteScalar();
if (memberCount > 0)
{
MessageBox.Show($"Membership cannot be deleted because {memberCount} members have subscribed to it.", "Delete Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
var result = MessageBox.Show("Are you sure you want to delete this Membership?", "Confirm Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
string del_query = "DELETE FROM membershipTypes WHERE MembershipTypeID = @membershipID";
using (SqlCommand cmd = new SqlCommand(del_query, con))
{
cmd.Parameters.AddWithValue("@membershipID", membershipID);
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Membership deleted successfully.");
LoadMembershipsData();
colorizeButtons();
}
catch (Exception ex)
{
MessageBox.Show("Error deleting membership: " + ex.Message);
}
}
}
}
}
}
}