Skip to content

Commit f3ce8eb

Browse files
waiting list feature #33
1 parent 614089c commit f3ce8eb

3 files changed

Lines changed: 94 additions & 33 deletions

File tree

Controllers/EventRegistrationResultController.cs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ public ActionResult OnSelectTreeViewItem(long id)
131131
{
132132
EventRegistrationResultModel model = new EventRegistrationResultModel();
133133
model.Results = GetEventResults(id);
134+
model.WaitingListResults = GetWaitingListResults(id);
134135

135136
model.EventId = id;
136137

@@ -147,13 +148,28 @@ public ActionResult OnSelectTreeViewItem(long id)
147148
return View("EventRegistrationResults", model);
148149
}
149150

151+
public ActionResult MoveFromWaitingList(long id, long eventId)
152+
{
153+
using (EventRegistrationManager erManager = new EventRegistrationManager())
154+
{
155+
var registration = erManager.EventRegistrationRepo.Get(a => a.Id == id).FirstOrDefault();
156+
if (registration.WaitingList == true)
157+
registration.WaitingList = false;
158+
159+
erManager.UpdateEventRegistration(registration);
160+
}
161+
162+
return RedirectToAction("OnSelectTreeViewItem", new { id = eventId });
163+
}
164+
150165
#endregion
151166

152167
#region Xml to DataTable
153168

154169
private DataTable GetEventResults(long eventId)
155170
{
156171
DataTable results = new DataTable();
172+
results.Columns.Add("Id");
157173
results.Columns.Add("Deleted");
158174

159175
using (EventRegistrationManager erManager = new EventRegistrationManager())
@@ -170,7 +186,7 @@ private DataTable GetEventResults(long eventId)
170186
foreach (EventRegistration er in eventRegistrations)
171187
{
172188
XmlNodeReader xmlNodeReader = new XmlNodeReader(er.Data);
173-
results.Rows.Add(AddDataRow(XElement.Load(xmlNodeReader), results, er.Deleted.ToString()));
189+
results.Rows.Add(AddDataRow(XElement.Load(xmlNodeReader), results, er.Deleted.ToString(), er.Id));
174190
xmlNodeReader.Dispose();
175191
}
176192
}
@@ -181,7 +197,9 @@ private DataTable GetEventResults(long eventId)
181197
private DataTable GetWaitingListResults(long eventId)
182198
{
183199
DataTable results = new DataTable();
200+
results.Columns.Add("Id");
184201
results.Columns.Add("Deleted");
202+
results.Columns.Add("Action");
185203

186204
using (EventRegistrationManager erManager = new EventRegistrationManager())
187205
{
@@ -197,7 +215,7 @@ private DataTable GetWaitingListResults(long eventId)
197215
foreach (EventRegistration er in eventRegistrations)
198216
{
199217
XmlNodeReader xmlNodeReader = new XmlNodeReader(er.Data);
200-
results.Rows.Add(AddDataRow(XElement.Load(xmlNodeReader), results, er.Deleted.ToString()));
218+
results.Rows.Add(AddDataRow(XElement.Load(xmlNodeReader), results, er.Deleted.ToString(), er.Id));
201219
xmlNodeReader.Dispose();
202220
}
203221
}
@@ -237,9 +255,10 @@ private DataTable CreateDataTableColums(DataTable dataTable, XElement x)
237255
return dt;
238256
}
239257

240-
private DataRow AddDataRow(XElement x, DataTable dt, string deleted)
258+
private DataRow AddDataRow(XElement x, DataTable dt, string deleted, long id)
241259
{
242260
DataRow dr = dt.NewRow();
261+
dr["Id"] = id;
243262
dr["Deleted"] = deleted;
244263
foreach (XElement xe in x.Descendants())
245264
{

Services/BExIS.Emm.Services/Event/EventRegistrationManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public E.EventRegistration UpdateEventRegistration(E.EventRegistration eventRegi
114114

115115
public List<E.EventRegistration> GetAllRegistrationsByEvent(long id)
116116
{
117-
return EventRegistrationRepo.Query(a=>a.Event.Id == id).ToList();
117+
return EventRegistrationRepo.Query(a=>a.Event.Id == id && a.WaitingList == false).ToList();
118118
}
119119

120120
public List<E.EventRegistration> GetAllWaitingListRegsByEvent(long id)

Views/EventRegistrationResult/EventRegistrationResults.cshtml

Lines changed: 71 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,38 +19,79 @@
1919
{
2020
if (Model.UserHasRights)
2121
{
22-
<table id="regResults">
23-
<thead>
24-
<tr>
25-
@for (int c = 0; c < Model.Results.Columns.Count; c++)
26-
{
27-
<th>
28-
@Model.Results.Columns[c].ColumnName
29-
</th>
30-
}
31-
</tr>
32-
</thead>
33-
<tbody>
34-
@for (int i = 0; i < Model.Results.Rows.Count; i++)
35-
{
36-
<tr>
37-
@for (int c = 0; c < Model.Results.Columns.Count; c++)
38-
{
39-
<td>
40-
@Model.Results.Rows[i][c].ToString()
41-
</td>
42-
43-
}
44-
</tr>
45-
}
46-
47-
</tbody>
48-
</table>
49-
50-
22+
<table id="regResults">
23+
<thead>
24+
<tr>
25+
@for (int c = 0; c < Model.Results.Columns.Count; c++)
26+
{
27+
<th>
28+
@Model.Results.Columns[c].ColumnName
29+
</th>
30+
}
31+
</tr>
32+
</thead>
33+
<tbody>
34+
@for (int i = 0; i < Model.Results.Rows.Count; i++)
35+
{
36+
<tr>
37+
@for (int c = 0; c < Model.Results.Columns.Count; c++)
38+
{
39+
<td>
40+
@Model.Results.Rows[i][c].ToString()
41+
</td>
42+
43+
}
44+
</tr>
45+
}
46+
47+
</tbody>
48+
</table>
5149

5250
@Html.ActionLink("Export (csv)", "Export", "EventRegistrationResult", new { id = Model.EventId }, new { @class = "bx-button function" })
5351
<span class="bx-button function" id="" onclick="Delete(@Model.EventId)" title="Delete event">Delete</span>
52+
53+
if (Model.WaitingListResults.Rows.Count > 0)
54+
{
55+
<h3>Waiting list</h3>
56+
<table id="regWaitingListResults">
57+
<thead>
58+
<tr>
59+
@for (int c = 0; c < Model.WaitingListResults.Columns.Count; c++)
60+
{
61+
<th>
62+
@Model.WaitingListResults.Columns[c].ColumnName
63+
</th>
64+
}
65+
</tr>
66+
</thead>
67+
<tbody>
68+
@for (int i = 0; i < Model.WaitingListResults.Rows.Count; i++)
69+
{
70+
<tr>
71+
@for (int c = 0; c < Model.WaitingListResults.Columns.Count; c++)
72+
{
73+
if (Model.WaitingListResults.Columns[c].ColumnName == "Action")
74+
{
75+
<td>
76+
@Html.ActionLink("Move to list", "MoveFromWaitingList", "EventRegistrationResult", new { id = Model.WaitingListResults.Rows[i][0], eventId = Model.EventId }, new { @class = "bx bx-grid-function"})
77+
</td>
78+
}
79+
else
80+
{
81+
<td>
82+
@Model.WaitingListResults.Rows[i][c].ToString()
83+
</td>
84+
}
85+
86+
}
87+
</tr>
88+
}
89+
90+
91+
</tbody>
92+
</table>
93+
}
94+
5495
}
5596
else
5697
{
@@ -72,6 +113,7 @@
72113
73114
$(document).ready(function () {
74115
$('#regResults').DataTable();
116+
$('#regWaitingListResults').DataTable();
75117
});
76118
77119

0 commit comments

Comments
 (0)