Skip to content

Commit 126b1d8

Browse files
committed
Merge branch 'eventManagement' of https://github.com/damienmoulard/Zenergy.git
2 parents 2530898 + cb18564 commit 126b1d8

8 files changed

+112
-177
lines changed

Zenergy/Zenergy/Controllers/ApiControllers/accessoriesController.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public async Task<IHttpActionResult> Getaccessory(int id)
3939
}
4040

4141
// PUT: api/accessories/5
42+
[HttpPut]
43+
[Route("api/accessories/id")]
4244
[ResponseType(typeof(void))]
4345
public async Task<IHttpActionResult> Putaccessory(int id, accessory accessory)
4446
{
@@ -49,7 +51,7 @@ public async Task<IHttpActionResult> Putaccessory(int id, accessory accessory)
4951

5052
if (id != accessory.accessoryId)
5153
{
52-
return BadRequest();
54+
return BadRequest("AccessoryId not the same in url and in json");
5355
}
5456

5557
db.Entry(accessory).State = EntityState.Modified;

Zenergy/Zenergy/Controllers/ApiControllers/eventRegistrationsController.cs

+81-21
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,63 @@ public class eventRegistrationsController : ApiController
2222

2323
// GET: api/events
2424
[HttpGet]
25-
[Route("api/events")]
25+
[Route("api/eventregistrations")]
2626
[Authorize(Roles = "Admin, Manager")]
27-
public IQueryable<@event> GetAllEventRegistrations()
27+
[ResponseType(typeof(EventRegistrationModel))]
28+
public async Task<List<EventRegistrationModel>> GetAllEventRegistrations()
2829
{
29-
return db.@event.Where(e => e.user.Count != 0);
30+
var registeredUsers = await db.user.Where(u => u.@event.Count != 0).ToListAsync();
31+
var events = new List<EventRegistrationModel>();
32+
if (registeredUsers.Any())
33+
{
34+
foreach (user registeredUser in registeredUsers)
35+
{
36+
foreach (@event evt in registeredUser.@event)
37+
{
38+
var myevent = new EventRegistrationModel()
39+
{
40+
eventId = evt.eventId,
41+
eventname = evt.eventName,
42+
userId = registeredUser.userId,
43+
username = string.Format("{0} {1}", registeredUser.firstname, registeredUser.lastname)
44+
};
45+
events.Add(myevent);
46+
}
47+
}
48+
}
49+
return events;
50+
3051
}
3152

3253

3354
//GET: api/events/GetRegistrationsByEvent?eventId=1
3455
[HttpGet]
35-
[ResponseType(typeof(EventRegistrationModel))]
56+
[ResponseType(typeof(EventRegistrationByEventModel))]
3657
[Authorize(Roles = "Admin, Manager")]
3758
[Route("api/eventsregistration/{eventId}")]
3859
public async Task<IHttpActionResult> GetRegistrationsByEvent(int eventId)
3960
{
40-
var myEvent = db.@event.Where(e => e.eventId == eventId && e.user.Count != 0);
41-
if (!myEvent.Any())
61+
var myEvent = db.@event.Where(e => e.eventId == eventId && e.user.Count != 0).FirstOrDefaultAsync().Result;
62+
if (myEvent == null)
4263
{
43-
return NotFound();
64+
return BadRequest("There are not registration to this event yet or event does not exist.");
65+
}
66+
67+
var registrations = new EventRegistrationByEventModel() { eventId = myEvent.eventId, eventname = myEvent.eventName, registeredUsers = new List<RegisteredUser>() };
68+
69+
var users = myEvent.user.ToList();
70+
foreach(user usr in users)
71+
{
72+
var registeredUser = new RegisteredUser()
73+
{
74+
userId = usr.userId,
75+
firstname = usr.firstname,
76+
lastname = usr.lastname
77+
};
78+
registrations.registeredUsers.Add(registeredUser);
4479
}
45-
var registeredUsers = myEvent.FirstAsync().Result.user.ToList();
46-
return Ok(new EventRegistrationByEventModel() { eventId = eventId, registeredUsers = registeredUsers });
80+
81+
return Ok(registrations);
4782
}
4883

4984

@@ -57,16 +92,17 @@ public IOrderedQueryable<@event> SortEventsByActivity()
5792
}
5893

5994

60-
[HttpGet]
95+
[HttpPost]
6196
[ResponseType(typeof(List<EventModel>))]
62-
[Route("api/events/bydate/{datefilter}")]
6397
[Authorize(Roles = "Manager, Member")]
64-
public async Task<IHttpActionResult> SortEventsByDate(string filter)
98+
[Route("api/events/bydate")]
99+
public async Task<IHttpActionResult> SortEventsByDate(EventDateModel filter)
65100
{
66-
var datefilter = DateTime.Parse(filter.Replace("!",":"));
101+
var datefilter = filter.eventdate;
67102
var sortedEvents = new List<EventModel>();
68103
//Sorting punctual events;
69-
var punctualEvents = await db.ponctualEvent.Where(pe => pe.eventDate == datefilter).ToListAsync();
104+
var punctuals = await db.ponctualEvent.ToListAsync();
105+
var punctualEvents = punctuals.Where(pe => pe.eventDate.Value.Date == datefilter.Date);
70106
if (punctualEvents.Any())
71107
{
72108
foreach (ponctualEvent pe in punctualEvents)
@@ -88,18 +124,41 @@ public async Task<IHttpActionResult> SortEventsByDate(string filter)
88124
}
89125
}
90126

91-
//sorting regular events
92-
var regularEvents = await db.regularEvent.ToListAsync();
127+
//sorting regular events by day
128+
var regularEvents = new List<regularEvent>();
129+
if (datefilter.DayOfWeek.Equals(DayOfWeek.Monday))
130+
{
131+
regularEvents = await db.regularEvent.Where(re => re.dateDay.Equals("Monday")).ToListAsync();
132+
}
133+
else if (datefilter.Day.Equals(DayOfWeek.Tuesday))
134+
{
135+
regularEvents = await db.regularEvent.Where(re => re.dateDay.Equals("Tuesday")).ToListAsync();
136+
}
137+
else if (datefilter.Day.Equals(DayOfWeek.Wednesday))
138+
{
139+
regularEvents = await db.regularEvent.Where(re => re.dateDay.Equals("Wednesday")).ToListAsync();
140+
}
141+
else if (datefilter.Day.Equals(DayOfWeek.Thursday))
142+
{
143+
regularEvents = await db.regularEvent.Where(re => re.dateDay.Equals("Thursday")).ToListAsync();
144+
}
145+
else if (datefilter.Day.Equals(DayOfWeek.Friday))
146+
{
147+
regularEvents = await db.regularEvent.Where(re => re.dateDay.Equals("Friday")).ToListAsync();
148+
}
149+
else if (datefilter.Day.Equals(DayOfWeek.Saturday))
150+
{
151+
regularEvents = await db.regularEvent.Where(re => re.dateDay.Equals("Saturday")).ToListAsync();
152+
}
153+
93154
if (regularEvents.Any())
94155
{
95156
foreach (regularEvent re in regularEvents)
96157
{
97158
//creating EventModel from punctaul events
98159
var eventmodel = new EventModel();
99-
var eventdate = eventmodel.GetRegularEventDate(re.dateDay);
100-
if (eventdate.Equals(datefilter))
101160
{
102-
eventmodel.eventDate = eventdate;
161+
eventmodel.eventDate = datefilter;
103162
eventmodel.eventId = re.eventId;
104163
eventmodel.activityId = re.@event.activityId;
105164
eventmodel.eventDescription = re.@event.eventDescription;
@@ -108,10 +167,11 @@ public async Task<IHttpActionResult> SortEventsByDate(string filter)
108167
eventmodel.eventName = re.@event.eventName;
109168
eventmodel.eventPrice = re.@event.eventPrice;
110169
eventmodel.roomId = re.@event.roomId;
111-
sortedEvents.Add(eventmodel);
112170
}
171+
sortedEvents.Add(eventmodel);
113172
}
114173
}
174+
115175
return Ok(sortedEvents);
116176
}
117177

@@ -178,7 +238,7 @@ public async Task<IHttpActionResult> PostRegisterToEvent(int userId, int eventId
178238
myEvent.user.Add(myUser);
179239
db.Entry(myEvent).State = EntityState.Modified;
180240
await db.SaveChangesAsync();
181-
return CreatedAtRoute("DefaultApi", new { id = userId }, new EventRegistrationModel() {userId = userId, eventId = eventId});
241+
return Created("api/users/{userId}/events/{eventId}/registration", new EventRegistrationModel() {userId = userId, eventId = eventId});
182242
}
183243
catch (DbUpdateException)
184244
{

Zenergy/Zenergy/Controllers/ApiControllers/roomContentsController.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ public async Task<IHttpActionResult> GetroomContent(int id)
5353
/// <param name="accessoryId"></param>
5454
/// <param name="roomContent"></param>
5555
/// <returns></returns>
56-
// PUT: api/roomContents/5
56+
// PUT: api/roomContents/
57+
[HttpPut]
58+
[Route("api/roomContents")]
5759
[ResponseType(typeof(void))]
5860
public async Task<IHttpActionResult> PutroomContent(int roomId,int accessoryId, roomContent roomContent)
5961
{
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Web;
5+
6+
namespace Zenergy.Models
7+
{
8+
public class EventDateModel
9+
{
10+
public DateTime eventdate { get; set; }
11+
}
12+
}

Zenergy/Zenergy/Models/EventModel.cs

+1-153
Original file line numberDiff line numberDiff line change
@@ -19,159 +19,7 @@ public class EventModel
1919

2020
public DateTime eventDate { get; set; }
2121

22-
public DateTime GetRegularEventDate(string day)
23-
{
24-
var today = DateTime.Today;
25-
var dayofweek = today.DayOfWeek;
26-
var eventdate = new DateTime();
27-
28-
if (dayofweek.Equals(DayOfWeek.Monday))
29-
{
30-
switch (day)
31-
{
32-
case "Monday":
33-
eventdate = new DateTime(today.Year, today.Month, today.Day);
34-
break;
35-
case "Tuesday":
36-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(1).Day);
37-
break;
38-
case "Wednesday":
39-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(2).Day);
40-
break;
41-
case "Thursday":
42-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(3).Day);
43-
break;
44-
case "Friday":
45-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(4).Day);
46-
break;
47-
case "Saturday":
48-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(5).Day);
49-
break;
50-
}
51-
}
52-
else if (dayofweek.Equals(DayOfWeek.Tuesday))
53-
{
54-
switch (day)
55-
{
56-
case "Monday":
57-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-1).Day);
58-
break;
59-
case "Tuesday":
60-
eventdate = new DateTime(today.Year, today.Month, today.Day);
61-
break;
62-
case "Wednesday":
63-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(1).Day);
64-
break;
65-
case "Thursday":
66-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(2).Day);
67-
break;
68-
case "Friday":
69-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(3).Day);
70-
break;
71-
case "Saturday":
72-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(4).Day);
73-
break;
74-
}
75-
}
76-
else if (dayofweek.Equals(DayOfWeek.Wednesday))
77-
{
78-
switch (day)
79-
{
80-
case "Monday":
81-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-2).Day);
82-
break;
83-
case "Tuesday":
84-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-1).Day);
85-
break;
86-
case "Wednesday":
87-
eventdate = new DateTime(today.Year, today.Month, today.Day);
88-
break;
89-
case "Thursday":
90-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(1).Day);
91-
break;
92-
case "Friday":
93-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(2).Day);
94-
break;
95-
case "Saturday":
96-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(3).Day);
97-
break;
98-
}
99-
}
100-
else if (dayofweek.Equals(DayOfWeek.Thursday))
101-
{
102-
switch (day)
103-
{
104-
case "Monday":
105-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-3).Day);
106-
break;
107-
case "Tuesday":
108-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-2).Day);
109-
break;
110-
case "Wednesday":
111-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-1).Day);
112-
break;
113-
case "Thursday":
114-
eventdate = new DateTime(today.Year, today.Month, today.Day);
115-
break;
116-
case "Friday":
117-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(1).Day);
118-
break;
119-
case "Saturday":
120-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(2).Day);
121-
break;
122-
}
123-
}
124-
else if (dayofweek.Equals(DayOfWeek.Friday))
125-
{
126-
switch (day)
127-
{
128-
case "Monday":
129-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-4).Day);
130-
break;
131-
case "Tuesday":
132-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-3).Day);
133-
break;
134-
case "Wednesday":
135-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-2).Day);
136-
break;
137-
case "Thursday":
138-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-1).Day);
139-
break;
140-
case "Friday":
141-
eventdate = new DateTime(today.Year, today.Month, today.Day);
142-
break;
143-
case "Saturday":
144-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(1).Day);
145-
break;
146-
}
147-
}
148-
else
149-
{
150-
switch (day)
151-
{
152-
case "Monday":
153-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-5).Day);
154-
break;
155-
case "Tuesday":
156-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-4).Day);
157-
break;
158-
case "Wednesday":
159-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-3).Day);
160-
break;
161-
case "Thursday":
162-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-2).Day);
163-
break;
164-
case "Friday":
165-
eventdate = new DateTime(today.Year, today.Month, today.AddDays(-1).Day);
166-
break;
167-
case "Saturday":
168-
eventdate = new DateTime(today.Year, today.Month, today.Day);
169-
break;
170-
}
171-
}
172-
return eventdate;
173-
}
174-
22+
17523
}
17624

17725

Zenergy/Zenergy/Models/EventRegistrationByEventModel.cs

+9-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ namespace Zenergy.Models
88
public class EventRegistrationByEventModel
99
{
1010
public int eventId { get; set; }
11-
public List<user> registeredUsers { get; set; }
11+
public string eventname { get; set; }
12+
public List<RegisteredUser> registeredUsers { get; set; }
13+
}
14+
15+
public class RegisteredUser
16+
{
17+
public int userId { get; set; }
18+
public string firstname { get; set; }
19+
public string lastname { get; set; }
1220
}
1321
}

Zenergy/Zenergy/Models/EventRegistrationModel.cs

+2
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,7 @@ public class EventRegistrationModel
99
{
1010
public int eventId { get; set; }
1111
public int userId { get; set; }
12+
public string eventname { get; set; }
13+
public string username { get; set; }
1214
}
1315
}

0 commit comments

Comments
 (0)