Skip to content

Commit 8d1b4c3

Browse files
committed
Rebase
2 parents 048acb2 + 0f0d5d1 commit 8d1b4c3

22 files changed

+1711
-16
lines changed

Diff for: Zenergy/Zenergy/Controllers/AccountController.cs

+15-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using System.Threading.Tasks;
77
using System.Web;
88
using System.Web.Http;
9-
using System.Web.Http.ModelBinding;
109
using Microsoft.AspNet.Identity;
1110
using Microsoft.AspNet.Identity.EntityFramework;
1211
using Microsoft.AspNet.Identity.Owin;
@@ -19,7 +18,7 @@
1918
using Zenergy.Services;
2019
using System.Net;
2120
using Newtonsoft.Json;
22-
using System.Web.Http.Results;
21+
2322

2423
namespace Zenergy.Controllers
2524
{
@@ -276,7 +275,7 @@ public async Task<IHttpActionResult> GetExternalLogin(string provider, string er
276275
ClaimsIdentity cookieIdentity = await user.GenerateUserIdentityAsync(UserManager,
277276
CookieAuthenticationDefaults.AuthenticationType);
278277

279-
AuthenticationProperties properties = ApplicationOAuthProvider.CreateProperties(user.UserName);
278+
AuthenticationProperties properties = ApplicationOAuthProvider.CreateProperties(null, user.UserName);
280279
Authentication.SignIn(properties, oAuthIdentity, cookieIdentity);
281280
}
282281
else
@@ -515,3 +514,16 @@ public static string Generate(int strengthInBits)
515514
#endregion
516515
}
517516
}
517+
518+
519+
520+
namespace Zenergy.Controllers
521+
{
522+
public class AccountManagementController : System.Web.Mvc.Controller
523+
{
524+
public System.Web.Mvc.ActionResult Index()
525+
{
526+
return View();
527+
}
528+
}
529+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Data.Entity;
4+
using System.Data.Entity.Infrastructure;
5+
using System.Linq;
6+
using System.Threading.Tasks;
7+
using System.Web;
8+
using System.Web.Http;
9+
using System.Web.Http.Description;
10+
using Zenergy.Models;
11+
using System.Web.Http.Results;
12+
13+
using Zenergy.Services;
14+
15+
namespace Zenergy.Controllers.ApiControllers
16+
{
17+
public class eventsController : ApiController
18+
{
19+
private ZenergyContext db = new ZenergyContext();
20+
21+
/// <summary>
22+
/// Register user to the event.
23+
/// </summary>
24+
/// <param name="model"></param>
25+
/// <returns></returns>
26+
// POST: api/events/PostRegisterToEvent
27+
[HttpPost]
28+
[ResponseType(typeof(EventRegistrationModel))]
29+
public async Task<IHttpActionResult> PostRegisterToEvent(EventRegistrationModel model)
30+
{
31+
if (EventExists(model.eventId))
32+
{
33+
if (!UserAlreadyRegisteredToEvent(model.userId, model.eventId))
34+
{
35+
var myUser = await db.user.Where(u => u.userId == model.userId).FirstAsync();
36+
var myEvent = await db.@event.Where(e => e.eventId == model.eventId).FirstAsync();
37+
38+
try
39+
{
40+
myEvent.user.Add(myUser);
41+
db.Entry(myEvent).State = EntityState.Modified;
42+
await db.SaveChangesAsync();
43+
return CreatedAtRoute("DefaultApi", new { id = model.userId }, model);
44+
}
45+
catch (DbUpdateException)
46+
{
47+
return BadRequest("Sorry an error occured. Please try again.");
48+
}
49+
}
50+
else return BadRequest("You are already registered to this event");
51+
}
52+
else return BadRequest("This event does not exist.");
53+
54+
}
55+
56+
57+
/// <summary>
58+
/// Unsubscribe a user to an event.
59+
/// </summary>
60+
/// <param name="eventId"></param>
61+
/// <param name="userId"></param>
62+
/// <returns></returns>
63+
// DELETE: api/events/DeleteRegistration
64+
[HttpDelete]
65+
[ResponseType(typeof(EventRegistrationModel))]
66+
public async Task<IHttpActionResult> DeleteRegistration(int eventId, int userId)
67+
{
68+
if (EventExists(eventId))
69+
{
70+
if(UserAlreadyRegisteredToEvent(userId, eventId))
71+
{
72+
var myEvent = await db.@event.FindAsync(eventId);
73+
var myUser = await db.user.FindAsync(userId);
74+
myEvent.user.Remove(myUser);
75+
await db.SaveChangesAsync();
76+
return Ok(new EventRegistrationModel() { eventId = eventId, userId = userId });
77+
}
78+
return BadRequest("You are not registered to this event.");
79+
}
80+
return BadRequest("The event does not exist.");
81+
}
82+
83+
84+
protected override void Dispose(bool disposing)
85+
{
86+
if (disposing)
87+
{
88+
db.Dispose();
89+
}
90+
base.Dispose(disposing);
91+
}
92+
93+
public bool EventExists(int eventId)
94+
{
95+
return db.@event.Where(e => e.eventId == eventId).Any();
96+
}
97+
98+
public bool UserAlreadyRegisteredToEvent(int userId, int eventId)
99+
{
100+
return db.@event.Where(e => e.eventId == eventId).First().user.Where(u => u.userId == userId).Any();
101+
}
102+
103+
104+
}
105+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Data;
4+
using System.Data.Entity;
5+
using System.Data.Entity.Infrastructure;
6+
using System.Linq;
7+
using System.Net;
8+
using System.Net.Http;
9+
using System.Threading.Tasks;
10+
using System.Web.Http;
11+
using System.Web.Http.Description;
12+
using Zenergy.Models;
13+
14+
namespace Zenergy.Controllers.ApiControllers
15+
{
16+
[Authorize]
17+
public class membersController : ApiController
18+
{
19+
private ZenergyContext db = new ZenergyContext();
20+
21+
// GET: api/members/5
22+
[ResponseType(typeof(member))]
23+
public async Task<IHttpActionResult> Getmember(int id)
24+
{
25+
member member = await db.member.FindAsync(id);
26+
if (member == null)
27+
{
28+
return NotFound();
29+
}
30+
31+
return Ok(member);
32+
}
33+
34+
// POST: api/members
35+
[ResponseType(typeof(member))]
36+
public async Task<IHttpActionResult> Postmember(member member)
37+
{
38+
if (!ModelState.IsValid)
39+
{
40+
return BadRequest(ModelState);
41+
}
42+
43+
db.member.Add(member);
44+
45+
try
46+
{
47+
await db.SaveChangesAsync();
48+
}
49+
catch (DbUpdateException)
50+
{
51+
if (memberExists(member.userId))
52+
{
53+
return Conflict();
54+
}
55+
else
56+
{
57+
throw;
58+
}
59+
}
60+
61+
return CreatedAtRoute("DefaultApi", new { id = member.userId }, member);
62+
}
63+
64+
// DELETE: api/members/5
65+
[ResponseType(typeof(member))]
66+
[Authorize(Roles = "Admin")]
67+
public async Task<IHttpActionResult> Deletemember(int id)
68+
{
69+
member member = await db.member.FindAsync(id);
70+
if (member == null)
71+
{
72+
return NotFound();
73+
}
74+
75+
db.member.Remove(member);
76+
await db.SaveChangesAsync();
77+
78+
return Ok(member);
79+
}
80+
81+
protected override void Dispose(bool disposing)
82+
{
83+
if (disposing)
84+
{
85+
db.Dispose();
86+
}
87+
base.Dispose(disposing);
88+
}
89+
90+
private bool memberExists(int id)
91+
{
92+
return db.member.Count(e => e.userId == id) > 0;
93+
}
94+
}
95+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Data;
4+
using System.Data.Entity;
5+
using System.Data.Entity.Infrastructure;
6+
using System.Linq;
7+
using System.Net;
8+
using System.Net.Http;
9+
using System.Threading.Tasks;
10+
using System.Web.Http;
11+
using System.Web.Http.Description;
12+
using Zenergy.Models;
13+
using Zenergy.Services;
14+
15+
namespace Zenergy.Controllers.ApiControllers
16+
{
17+
public class ponctualEventsController : ApiController
18+
{
19+
private ZenergyContext db = new ZenergyContext();
20+
21+
// GET: api/ponctualEvents
22+
public IQueryable<ponctualEvent> GetponctualEvent()
23+
{
24+
return db.ponctualEvent;
25+
}
26+
27+
// GET: api/ponctualEvents/5
28+
[ResponseType(typeof(ponctualEvent))]
29+
public async Task<IHttpActionResult> GetponctualEvent(int id)
30+
{
31+
ponctualEvent ponctualEvent = await db.ponctualEvent.FindAsync(id);
32+
if (ponctualEvent == null)
33+
{
34+
return NotFound();
35+
}
36+
37+
return Ok(ponctualEvent);
38+
}
39+
40+
// PUT: api/ponctualEvents/5
41+
[ResponseType(typeof(void))]
42+
public async Task<IHttpActionResult> PutponctualEvent(int id, ponctualEvent ponctualEvent)
43+
{
44+
if (!ModelState.IsValid)
45+
{
46+
return BadRequest(ModelState);
47+
}
48+
49+
if (id != ponctualEvent.eventId)
50+
{
51+
return BadRequest();
52+
}
53+
54+
db.Entry(ponctualEvent).State = EntityState.Modified;
55+
56+
try
57+
{
58+
await db.SaveChangesAsync();
59+
}
60+
catch (DbUpdateConcurrencyException)
61+
{
62+
if (!ponctualEventExists(id))
63+
{
64+
return NotFound();
65+
}
66+
else
67+
{
68+
throw;
69+
}
70+
}
71+
72+
return StatusCode(HttpStatusCode.NoContent);
73+
}
74+
75+
// POST: api/ponctualEvents
76+
[ResponseType(typeof(ponctualEvent))]
77+
public async Task<IHttpActionResult> PostponctualEvent(ponctualEvent ponctualEvent)
78+
{
79+
if (!ModelState.IsValid)
80+
{
81+
return BadRequest(ModelState);
82+
}
83+
84+
db.ponctualEvent.Add(ponctualEvent);
85+
86+
try
87+
{
88+
await db.SaveChangesAsync();
89+
}
90+
catch (DbUpdateException)
91+
{
92+
if (ponctualEventExists(ponctualEvent.eventId))
93+
{
94+
return Conflict();
95+
}
96+
else
97+
{
98+
throw;
99+
}
100+
}
101+
102+
return CreatedAtRoute("DefaultApi", new { id = ponctualEvent.eventId }, ponctualEvent);
103+
}
104+
105+
// DELETE: api/ponctualEvents/5
106+
[ResponseType(typeof(ponctualEvent))]
107+
public async Task<IHttpActionResult> DeleteponctualEvent(int id)
108+
{
109+
ponctualEvent ponctualEvent = await db.ponctualEvent.FindAsync(id);
110+
if (ponctualEvent == null)
111+
{
112+
return NotFound();
113+
}
114+
115+
db.ponctualEvent.Remove(ponctualEvent);
116+
await db.SaveChangesAsync();
117+
118+
return Ok(ponctualEvent);
119+
}
120+
121+
protected override void Dispose(bool disposing)
122+
{
123+
if (disposing)
124+
{
125+
db.Dispose();
126+
}
127+
base.Dispose(disposing);
128+
}
129+
130+
private bool ponctualEventExists(int id)
131+
{
132+
return db.ponctualEvent.Count(e => e.eventId == id) > 0;
133+
}
134+
}
135+
}

0 commit comments

Comments
 (0)