Skip to content

Commit 2530898

Browse files
committed
update event presque ok
1 parent 19c2050 commit 2530898

File tree

8 files changed

+210
-95
lines changed

8 files changed

+210
-95
lines changed

Zenergy/Zenergy/Controllers/ApiControllers/ponctualEventsController.cs

+23
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ namespace Zenergy.Controllers.ApiControllers
1717
public class ponctualEventsController : ApiController
1818
{
1919
private ZenergyContext db = new ZenergyContext();
20+
private EventService eventServices;
21+
22+
public ponctualEventsController()
23+
{
24+
eventServices = new EventService(db);
25+
}
2026

2127
// GET: api/ponctualEvents
2228
public IQueryable<ponctualEvent> GetponctualEvent()
@@ -37,6 +43,21 @@ public async Task<IHttpActionResult> GetponctualEvent(int id)
3743
return Ok(ponctualEvent);
3844
}
3945

46+
// GET: api/ponctualEvents/findByManagerId/5
47+
[Route("api/ponctualEvents/findByManagerId/{managerId}")]
48+
[HttpGet]
49+
[ResponseType(typeof(ponctualEvent[]))]
50+
public async Task<IHttpActionResult> findPonctualEventsByManagerId(int managerId)
51+
{
52+
ponctualEvent[] ponctualEvents = await eventServices.findPonctualEventsByManagerId(managerId);
53+
if (ponctualEvents == null)
54+
{
55+
return NotFound();
56+
}
57+
58+
return Ok(ponctualEvents);
59+
}
60+
4061
// PUT: api/ponctualEvents/5
4162
[ResponseType(typeof(void))]
4263
public async Task<IHttpActionResult> PutponctualEvent(int id, ponctualEvent ponctualEvent)
@@ -51,6 +72,8 @@ public async Task<IHttpActionResult> PutponctualEvent(int id, ponctualEvent ponc
5172
return BadRequest();
5273
}
5374

75+
//eventServices.updateEvent(ponctualEvent.@event);
76+
db.ponctualEvent.SqlQuery("UPDATE event SET roomId={0}, activityId={1}, eventName={2}, eventPrice={3}, eventDurationHours={4}, eventMaxPeople={5}, eventDescription={6}, timeBegin={7} WHERE eventId={8}", ponctualEvent.@event.roomId, ponctualEvent.@event.activityId, ponctualEvent.@event.eventName, ponctualEvent.@event.eventPrice, ponctualEvent.@event.eventDurationHours, ponctualEvent.@event.eventMaxPeople, ponctualEvent.@event.eventDescription, ponctualEvent.@event.timeBegin, ponctualEvent.@event.eventId);
5477
db.Entry(ponctualEvent).State = EntityState.Modified;
5578

5679
try

Zenergy/Zenergy/Pages/eventsManagement.html

+57-26
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,61 @@
11
<h2>My events</h2>
22

3-
<div class="container " ng-controller="accountManagementPageController">
3+
<div class="container ">
4+
<br />
45
<div class="row">
6+
<!-- Update modal view -->
7+
<script type="text/ng-template" id="updateModalContent.html">
8+
<div class="modal-header">
9+
<h3 class="modal-title">Update {{eventToUpdate.event.eventName}}</h3>
10+
</div>
11+
<div class="modal-body">
12+
13+
<div class="form-group">
14+
<div class="input-group">
15+
<div class="input-group-btn">
16+
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Select a room <span class="caret"></span></button>
17+
<ul class="dropdown-menu" ng-repeat="room in filtered = (rooms | filter: query)">
18+
<li><a ng-click="roomSelected(room)">{{room.roomName}}</a></li>
19+
</ul>
20+
</div>
21+
<input type="text" class="form-control" id="selectedRoom" value="{{eventToUpdate.event.room.roomName}}" disabled>
22+
</div>
23+
</div>
24+
25+
<div class="form-group">
26+
<input type="date" format="yyyy-MM-dd" name="eventToUpdate.eventDate" class="form-control" ng-model="eventToUpdate.eventDate" placeholder="Date" value="{{eventToUpdate.eventDate}}" required>
27+
<p class="text-danger" ng-if="dateError">You can't create an event in the past. Unless you are a wizard. Which I doubt.</p>
28+
</div>
29+
30+
<div class="form-group">
31+
<input type="time" format="HH:mm" min="08:00" max="22:00" name="eventToUpdate.event.timeBegin" class="form-control" ng-model="eventToUpdate.event.timeBegin" placeholder="Time of the event beginning" value="{{eventToUpdate.event.timeBegin}}" required>
32+
</div>
33+
34+
<div class="form-group">
35+
<input type="number" min="0.5" step="0.5" name="eventToUpdate.event.eventDurationHours" class="form-control" ng-model="eventToUpdate.event.eventDurationHours" placeholder="Duration in hours (can be 1.5)" value="{{eventToUpdate.event.eventDurationHours}}" required>
36+
</div>
37+
38+
<div class="form-group">
39+
<input name="eventToUpdate.event.eventDescription" class="form-control" ng-model="eventToUpdate.event.eventDescription" placeholder="Description" value="{{eventToUpdate.event.eventDescription}}" required>
40+
</div>
41+
42+
<div class="form-group">
43+
<input type="number" min="0" step="0.01" name="eventToUpdate.event.eventPrice" class="form-control" ng-model="eventToUpdate.event.eventPrice" placeholder="Price (€)" value="{{eventToUpdate.event.eventPrice}}" required>
44+
</div>
45+
46+
<div class="form-group">
47+
<input type="number" min="0" name="eventToUpdate.event.eventMaxPeople" class="form-control" ng-model="eventToUpdate.event.eventMaxPeople" placeholder="Maximum number of participants" value="{{eventToUpdate.event.eventMaxPeople}}" required>
48+
</div>
49+
50+
</div>
51+
<div class="modal-footer">
52+
<button class="btn btn-warning" type="button" ng-click="cancel()">Cancel</button>
53+
<button class="btn btn-primary" type="button" ng-click="ok()">OK</button>
54+
</div>
55+
</script>
56+
<!-- UpdateModal end -->
57+
58+
559
<div class="panel panel-default">
660
<!-- Default panel contents -->
761
<div class="panel-heading">Here are the events you created</div>
@@ -23,35 +77,12 @@
2377
<td>{{ponctual.event.room.roomName}}</td>
2478
<td>{{ponctual.eventDate | date:'yyyy-MM-dd'}}</td>
2579
<td>{{ponctual.event.timeBegin}}</td>
26-
<td><form ng-submit="updateEvent($index)"><input value="Update" type="submit" class="btn btn-warning" /></form></td>
80+
<td><input class="btn btn-warning btn-sm" value="Update" ng-click="open(ponctual)" /></td>
2781
<td><button type="button" class="btn btn-danger">Delete</button></td>
28-
</tr>
2982
</table>
3083
</div>
3184
</div>
3285
<div class="row">
33-
<a href="#/CreatePonctualEvent" class="btn btn-success btn-lg">Create a new ponctual event!</a>
86+
<a href="#/CreateEvent" class="btn btn-success btn-lg">Create a new event!</a>
3487
</div>
3588
</div>
36-
37-
<!-- Modal -->
38-
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
39-
<div class="modal-dialog" role="document">
40-
<div class="modal-content">
41-
<div class="modal-header">
42-
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
43-
<h4 class="modal-title" id="myModalLabel">Update my event</h4>
44-
</div>
45-
<div class="modal-body">
46-
47-
<!--update form here-->
48-
49-
</div>
50-
<div class="modal-footer">
51-
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
52-
<!--<td><form ng-submit="commitUpdateEvent()"><input value="Save changes" type="submit" class="btn btn-primary" /></form></td> onclick="commitUpdateEvent();"-->
53-
<!----><button type="button" id="commitUpdateButton" class="btn btn-primary" data-dismiss="modal">Save changes</button>
54-
</div>
55-
</div>
56-
</div>
57-
</div>

Zenergy/Zenergy/Pages/ponctualEventCreation.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<h1>Create a new ponctual event</h1>
1+
<h1>Create a new event</h1>
22
<div class="container " ng-controller="ponctualEventCreationPageController">
33

44
<div class="row">
@@ -41,7 +41,7 @@
4141
</div>
4242

4343
<div class="form-group">
44-
<input type="time" format="HH:mm" min="08:00" max="20:00" name="ponctualEvent.event.timeBegin" class="form-control" ng-model="ponctualEvent.event.timeBegin" placeholder="Time of the event beginning" required>
44+
<input type="time" format="HH:mm" min="08:00" max="22:00" name="ponctualEvent.event.timeBegin" class="form-control" ng-model="ponctualEvent.event.timeBegin" placeholder="Time of the event beginning" required>
4545
</div>
4646

4747
<div class="form-group">
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,109 @@
1-
zenergyApp.controller("eventsManagementPageController", ["$scope", "$http", "tokenService", "$window", "$location", function ($scope, $http, tokenService, $window, $location) {
1+
zenergyApp.controller("eventsManagementPageController", ["$scope", "$http", "tokenService", "$window", "$uibModal", "$location", function ($scope, $http, tokenService, $window, $uibModal, $location) {
22

3-
// Get manager events
4-
// TODO : get THIS MANAGER events
3+
if ($scope.isManager()) {
4+
// Get manager events
5+
var response = $http({
6+
url: '/api/ponctualEvents/findByManagerId/' + tokenService.getUserId(),
7+
method: 'GET',
8+
headers: {
9+
'Content-Type': 'application/json'
10+
}
11+
}).then(function successCallback(response) {
12+
$scope.hasError = false;
13+
$scope.ponctualEvents = [];
14+
$scope.ponctualEvents = $.parseJSON(JSON.stringify(response.data));
15+
console.log($scope.ponctualEvents);
16+
});
17+
18+
19+
// modal management
20+
$scope.open = function (ponctual) {
21+
22+
$scope.eventToUpdate = ponctual;
23+
24+
var modalInstance = $uibModal.open({
25+
animation: true,
26+
templateUrl: 'updateModalContent.html',
27+
controller: 'UpdateModalInstanceCtrl',
28+
resolve: {
29+
eventToUpdate: function () {
30+
return $scope.eventToUpdate;
31+
}
32+
}
33+
});
34+
35+
modalInstance.result.then(function (eventToUpdate) {
36+
// Event Update
37+
console.log(eventToUpdate);
38+
39+
var date = new Date(eventToUpdate.event.timeBegin);
40+
eventToUpdate.event.timeBegin = date.getHours().toString() + ":" + date.getMinutes().toString();
41+
42+
var response = $http({
43+
url: '/api/ponctualEvents/' + eventToUpdate.eventId,
44+
method: 'PUT',
45+
data: {
46+
eventId: eventToUpdate.eventId,
47+
eventDate: eventToUpdate.eventDate,
48+
event: {
49+
eventId: eventToUpdate.event.eventId,
50+
roomId: eventToUpdate.event.roomId,
51+
activityId: eventToUpdate.event.activitytId,
52+
eventName: eventToUpdate.event.eventName,
53+
eventPrice: eventToUpdate.event.eventPrice,
54+
eventDurationHours: eventToUpdate.event.eventDurationHours,
55+
eventMaxPeople: eventToUpdate.event.eventMaxPeople,
56+
eventDescription: eventToUpdate.event.eventDescription,
57+
timeBegin: eventToUpdate.event.timeBegin
58+
}
59+
},
60+
headers: {
61+
'Content-Type': 'application/json'
62+
}
63+
}).then(function successCallback(response) {
64+
console.log("update ok");
65+
//window.location.reload(true);
66+
}, function errorCallback(response) {
67+
console.log("update error");
68+
});
69+
}, function () {
70+
});
71+
};
72+
}
73+
else
74+
$location.path("/");
75+
}]);
76+
77+
zenergyApp.controller('UpdateModalInstanceCtrl', function ($scope, $http, $uibModalInstance, eventToUpdate) {
78+
79+
$scope.eventToUpdate = $.extend(true, {}, eventToUpdate);
80+
$scope.eventToUpdate.eventDate = new Date($scope.eventToUpdate.eventDate);
81+
82+
// Get rooms
583
var response = $http({
6-
url: '/api/ponctualEvents',
84+
url: '/api/rooms',
785
method: 'GET',
886
headers: {
987
'Content-Type': 'application/json'
1088
}
1189
}).then(function successCallback(response) {
1290
$scope.hasError = false;
13-
$scope.ponctualEvents = [];
14-
$scope.ponctualEvents = $.parseJSON(JSON.stringify(response.data));
15-
console.log($scope.ponctualEvents);
91+
$scope.rooms = [];
92+
$scope.rooms = $.parseJSON(JSON.stringify(response.data));
93+
console.log($scope.rooms);
1694
});
1795

18-
$scope.updateEvent = function (eventRow) {
19-
console.log(eventRow);
20-
21-
// Store the event rw in the events array
22-
$scope.eventToUpdate = eventRow;
23-
// $scope.eventToUpdate = ponctualEvents[eventRow];
24-
// comme ça on met ça en paramettre du put, on se fait plus chier avec les index
25-
26-
// Show modal to update infos
27-
$('#myModal').modal('show');
28-
29-
// Set the function for the modal "ok" button
30-
$(document).ready(function () {
31-
$('#commitUpdateButton').click(function () {
32-
commitUpdateEvent();
33-
});
34-
});
35-
};
36-
37-
// Add membership
38-
commitUpdateEvent = function () {
39-
// launch http request with updated event
96+
// When a room is selected in the form
97+
$scope.roomSelected = function (room) {
98+
$('#selectedRoom').attr("placeholder", room.roomName);
99+
$scope.eventToUpdate.event.roomId = room.roomId;
100+
}
40101

41-
/*var today = new Date();
102+
$scope.ok = function () {
103+
$uibModalInstance.close($scope.eventToUpdate);
104+
};
42105

43-
var response = $http({
44-
url: '/api/members/',
45-
method: 'POST',
46-
data: {
47-
userId: tokenService.getUserId(),
48-
dateMembership: today
49-
},
50-
headers: {
51-
'Content-Type': 'application/json'
52-
}
53-
}).then(function successCallback(response) {
54-
$scope.hasError = false;
55-
window.location.reload(true);
56-
}, function errorCallback(response) {
57-
$scope.hasError = true;
58-
});*/
106+
$scope.cancel = function () {
107+
$uibModalInstance.dismiss('cancel');
59108
};
60-
}]);
109+
});

Zenergy/Zenergy/Scripts/Controllers/ponctualEventCreationPageController.js

-14
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
});
3030

3131
$scope.ponctualEvent = { eventId: 1, eventDate: new Date(), event: { eventId: 1, roomId: '', activityId: '', eventName: '', eventPrice: '', eventDurationHours: '', eventMaxPeople: '', eventDescription: '', timeBegin: '' } };
32-
$scope.regular = false;
3332

3433
// When an activity is selected in the form
3534
$scope.activitySelected = function (activity) {
@@ -43,19 +42,6 @@
4342
$scope.ponctualEvent.event.roomId = room.roomId;
4443
}
4544

46-
// If user wants to create a ponctual event
47-
$scope.ponctualSelected = function () {
48-
$('#ponctualSelect').attr("class", "active");
49-
$('#regularSelect').attr("class", "");
50-
$scope.regular = false;
51-
}
52-
53-
$scope.regularSelected = function () {
54-
$('#ponctualSelect').attr("class", "");
55-
$('#regularSelect').attr("class", "active");
56-
$scope.regular = true;
57-
}
58-
5945
$scope.createEvent = function () {
6046
console.log($scope.ponctualEvent);
6147

Zenergy/Zenergy/Scripts/zenergyApp.js

+1-6
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,10 @@ zenergyApp.config(function ($routeProvider) {
3939
controller: 'eventsManagementPageController'
4040
})
4141

42-
.when('/CreatePonctualEvent', {
42+
.when('/CreateEvent', {
4343
templateUrl: 'Pages/ponctualEventCreation.html',
4444
controller: 'ponctualEventCreationPageController'
4545
})
46-
47-
.when('/CreateRegularEvent', {
48-
templateUrl: 'Pages/regularEventCreation.html',
49-
controller: 'regularEventCreationPageController'
50-
})
5146
});
5247

5348

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
using System.Web;
6+
using Zenergy.Models;
7+
8+
namespace Zenergy.Services
9+
{
10+
public class EventService
11+
{
12+
private ZenergyContext db;
13+
14+
public EventService(ZenergyContext context)
15+
{
16+
this.db = context;
17+
}
18+
19+
public async Task<ponctualEvent[]> findPonctualEventsByManagerId(int managerId)
20+
{
21+
return await db.ponctualEvent.SqlQuery("SELECT pe.* FROM ponctualEvent pe, Event e, Activity act WHERE pe.eventId=e.eventId AND e.activityId=act.activityId AND act.managerId = {0}", managerId).ToArrayAsync();
22+
}
23+
24+
public void updateEvent (@event event1) {
25+
db.ponctualEvent.SqlQuery("UPDATE event SET roomId={0}, activityId={1}, eventName={2}, eventPrice={3}, eventDurationHours={4}, eventMaxPeople={5}, eventDescription={6}, timeBegin={7} WHERE eventId={8}", event1.roomId, event1.activityId, event1.eventName, event1.eventPrice, event1.eventDurationHours, event1.eventMaxPeople, event1.eventDescription, event1.timeBegin, event1.eventId);
26+
//db.Entry(event1).State = System.Data.Entity.EntityState.Modified;
27+
db.SaveChanges();
28+
}
29+
}
30+
}

0 commit comments

Comments
 (0)