-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWorker.aspx.cs
More file actions
115 lines (102 loc) · 4.36 KB
/
Worker.aspx.cs
File metadata and controls
115 lines (102 loc) · 4.36 KB
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
using System;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace findWorker2
{
public partial class Worker : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Username"] == null)
{
Response.Redirect("Login.aspx");
}
if (!IsPostBack)
{
BindWorksGrid();
}
}
protected void btnSignOut_Click(object sender, EventArgs e)
{
Session.Clear();
Session.Abandon();
Response.Redirect("Login.aspx");
}
private void BindWorksGrid()
{
string workerUsername = Session["Username"].ToString();
string connectionString = ConfigurationManager.ConnectionStrings["connectUser"].ConnectionString;
string query = @"SELECT w.WorkID, w.ProviderUsername, w.Title, w.Description, w.Status, w.DateOfWork, w.WorkerUsername,
CASE WHEN r.RequestID IS NOT NULL THEN 1 ELSE 0 END AS HasApplied
FROM Works w
LEFT JOIN Requests r ON w.WorkID = r.WorkID AND r.WorkerUsername = @WorkerUsername";
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@WorkerUsername", workerUsername);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
gvWorks.DataSource = reader;
gvWorks.DataBind();
}
}
protected void btnViewRequests_Click(object sender, EventArgs e)
{
Response.Redirect("WorkerRequests.aspx");
}
protected void gvWorks_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Apply")
{
int workID = Convert.ToInt32(e.CommandArgument);
string workerUsername = Session["Username"].ToString();
string connectionString = ConfigurationManager.ConnectionStrings["connectUser"].ConnectionString;
string checkQuery = "SELECT COUNT(*) FROM Requests WHERE WorkID = @WorkID AND WorkerUsername = @WorkerUsername";
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand checkCmd = new SqlCommand(checkQuery, con);
checkCmd.Parameters.AddWithValue("@WorkID", workID);
checkCmd.Parameters.AddWithValue("@WorkerUsername", workerUsername);
con.Open();
int count = (int)checkCmd.ExecuteScalar();
if (count > 0)
{
lblMessage.Text = "You have already applied for this work.";
lblMessage.Visible = true;
return;
}
}
string insertQuery = "INSERT INTO Requests (WorkID, WorkerUsername) VALUES (@WorkID, @WorkerUsername)";
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(insertQuery, con);
cmd.Parameters.AddWithValue("@WorkID", workID);
cmd.Parameters.AddWithValue("@WorkerUsername", workerUsername);
try
{
con.Open();
int result = cmd.ExecuteNonQuery();
if (result > 0)
{
lblMessage.Text = "Request sent successfully!";
lblMessage.Visible = true;
BindWorksGrid();
}
else
{
lblMessage.Text = "Failed to send request.";
lblMessage.Visible = true;
}
}
catch (Exception ex)
{
lblMessage.Text = "An error occurred: " + ex.Message;
lblMessage.Visible = true;
}
}
}
}
}
}