Skip to content

Commit fd92491

Browse files
committed
adding features for my events
1 parent de5fa3d commit fd92491

File tree

6 files changed

+129
-3
lines changed

6 files changed

+129
-3
lines changed

Zenergy/Zenergy/Controllers/ApiControllers/eventRegistrationsController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public async Task<IHttpActionResult> PostRegisterToEvent(int userId, int eventId
118118
myEvent.user.Add(myUser);
119119
db.Entry(myEvent).State = EntityState.Modified;
120120
await db.SaveChangesAsync();
121-
return CreatedAtRoute("DefaultApi", new { id = userId }, new EventRegistrationModel() {userId = userId, eventId = eventId});
121+
return Created("api/users/{userId}/events/{eventId}/registration", new EventRegistrationModel() { userId = userId, eventId = eventId });
122122
}
123123
catch (DbUpdateException)
124124
{

Zenergy/Zenergy/Pages/myevents.html

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<h2>My Events</h2>
2+
3+
<div ="container ">
4+
5+
<date-picker ng-model="dateSelected" format-date="formatDate" on-date-selected="getEvent()"> </date-picker>
6+
<h2>{{dateSelected}}</h2>
7+
<br />
8+
<div class="row">
9+
<div>
10+
<table class="table">
11+
<tr>
12+
<th>Time</th>
13+
<th>Name</th>
14+
<th>Room</th>
15+
<th>Activity</th>
16+
<th>Price</th>
17+
<th>Register</th>
18+
</tr>
19+
<tr ng-repeat="e in events">
20+
<td>{{e.timeBegin}}</td>
21+
<td>{{e.name}}</td>
22+
<td>{{e.roomName}}</td>
23+
<td>{{e.activity}}</td>
24+
<td>{{e.price}}</td>
25+
<td> <button ng-click="unjoinEvent(e.Id)" class="btn btn-default">Unjoin</button></td>
26+
27+
</tr>
28+
29+
30+
</table>
31+
32+
</div>
33+
</div>
34+
</div>
35+

Zenergy/Zenergy/Scripts/Controllers/eventRegistrationPageController.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
// reister to an event
6969
var responseEvent = $http({
7070
url: '/api/users/' + tokenService.getUserId() + '/events/' + eventid + '/registration',
71-
method: 'POST',
71+
method: 'POST',
7272
headers: {
7373
'Content-Type': 'application/json'
7474
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
zenergyApp.controller("myEventsPageController", ["$scope", "$http", "tokenService", "$window", "$location", function ($scope, $http, tokenService, $window, $location) {
2+
3+
$scope.pastevent = false;
4+
//date format
5+
var today = new Date();
6+
$scope.dateSelected = today.getMonth() + 1 + "/" + today.getDate() + "/" + today.getFullYear();
7+
8+
$scope.formatDate = function (today) {
9+
function pad(n) {
10+
return n < 10 ? '0' + n : n;
11+
}
12+
return today && today.getMonth() + 1 + "/" + today.getDate() + "/" + today.getFullYear();
13+
};
14+
15+
//initialize array of events
16+
$scope.events = [];
17+
18+
//DateTime.Now.ToString("dd-MM-yyyy")
19+
20+
//function get ponctual event
21+
$scope.getEvent = function () {
22+
$scope.events = [];
23+
var responseEvent = $http({
24+
url: '/api/users/' + tokenService.getUserId() + '/events',
25+
method: 'GET',
26+
headers: {
27+
'Content-Type': 'application/json'
28+
}
29+
}).then(function successCallback(responseEvent) {
30+
console.log(responseEvent);
31+
32+
//var for displaying or not the join button
33+
if (new Date($scope.dateSelected) < today) {
34+
$scope.pastevent = true;
35+
}
36+
else {
37+
$scope.pastevent = false;
38+
}
39+
for (var e in responseEvent.data) {
40+
41+
var date = new Date(responseEvent.data[e].ponctualEvent.eventDate);
42+
date = date.getMonth() + 1 + "/" + date.getDate() + "/" + date.getFullYear();
43+
44+
// add this event to the list if it's current date
45+
if (date == $scope.dateSelected) {
46+
$scope.events.push({
47+
Id: responseEvent.data[e].eventId,
48+
roomName: responseEvent.data[e].room.roomName,
49+
Description: responseEvent.data[e].eventDescription,
50+
timeBegin: responseEvent.data[e].timeBegin,
51+
duration: responseEvent.data[e].eventDurationHours,
52+
price: responseEvent.data[e].eventPrice,
53+
name: responseEvent.data[e].eventName,
54+
activity: responseEvent.data[e].activity.activityName
55+
});
56+
}
57+
}
58+
if ($scope.events.length == 0) {
59+
bootbox.alert("There is no event for this day");
60+
}
61+
62+
});
63+
64+
};
65+
//Register to the event
66+
$scope.unjoinEvent = function (eventid) {
67+
// reister to an event
68+
var responseEvent = $http({
69+
url: '/api/users/' + tokenService.getUserId() + '/events/' + eventid + '/registration',
70+
method: 'DELETE',
71+
headers: {
72+
'Content-Type': 'application/json'
73+
}
74+
}).then(function successCallback(responseEvent) {
75+
bootbox.alert("You're are now unregistered from this event !");
76+
});
77+
};
78+
79+
$scope.getEvent();
80+
81+
82+
83+
}]);
84+

Zenergy/Zenergy/Scripts/zenergyApp.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
App = angular.module('zenergyApp', ['ngResource', 'ngRoute', 'ui.bootstrap','mp.datePicker']);
1+
var zenergyApp = angular.module('zenergyApp', ['ngResource', 'ngRoute', 'ui.bootstrap', 'mp.datePicker']);
22

33
zenergyApp.config(function ($routeProvider) {
44
$routeProvider
@@ -47,6 +47,11 @@ zenergyApp.config(function ($routeProvider) {
4747
templateUrl: 'Pages/rooms.html',
4848
controller: 'roomsPageController'
4949
})
50+
51+
.when('/MyEvents', {
52+
templateUrl: 'Pages/myEvents.html',
53+
controller: 'myEventsPageController'
54+
})
5055
});
5156

5257

Zenergy/Zenergy/Zenergy.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@
319319
<Content Include="Global.asax" />
320320
<Content Include="Pages\accountManagement.html" />
321321
<Content Include="Pages\eventRegistration.html" />
322+
<Content Include="Pages\myEvents.html" />
322323
<Content Include="Pages\products.html" />
323324
<Content Include="Pages\profile.html" />
324325
<Content Include="Pages\rooms.html" />
@@ -328,6 +329,7 @@
328329
<Content Include="Scripts\Controllers\homePageController.js" />
329330
<Content Include="Scripts\Controllers\loginPageController.js" />
330331
<Content Include="Scripts\Controllers\mainController.js" />
332+
<Content Include="Scripts\Controllers\myEventsPagecontroller.js" />
331333
<Content Include="Scripts\Controllers\productsPageController.js" />
332334
<Content Include="Scripts\Controllers\registerPageController.js" />
333335
<Content Include="Scripts\Controllers\profilePageController.js" />

0 commit comments

Comments
 (0)