// POST api/session /// <summary> /// Insert a session /// </summary> /// <param name="session">The session object</param> /// <returns></returns> public HttpResponseMessage Post(Session session) { _unitOfWork.SessionRepository.Add(session); // We need to create new teams for this session session.TeamList = new Collection<Team>(); for (int i = 1; i <= _numberOfTeams; i++) { var teamName = "Team " + i; var teamLogin = (teamName + session.Name).Replace(" ", ""); var password = Helpers.PasswordHelper.GeneratePassword(); try { // Il faut créer l'user pour que le groupe puisse se connecter à l'application WebSecurity.CreateUserAndAccount(teamLogin, password); Roles.AddUserToRole(teamLogin, "Team"); } catch (MembershipCreateUserException e) { Request.CreateErrorResponse(HttpStatusCode.BadRequest, e); } session.TeamList.Add(new Team() { Name = teamName, Login = teamLogin, Password = password }); } _unitOfWork.Save(); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, session); response.Headers.Location = new Uri(Url.Link("ApiControllerAndIntegerId", new { id = session.Id })); return response; }
// PUT api/session/5 /// <summary> /// Update a session /// </summary> /// <param name="id">The value of Id</param> /// <param name="session">The session object</param> /// <returns></returns> public HttpResponseMessage Put(int id, Session session) { if (id == session.Id) { _unitOfWork.SessionRepository.Update(session); try { _unitOfWork.Save(); } catch (DbUpdateConcurrencyException) { return Request.CreateResponse(HttpStatusCode.NotFound); } return Request.CreateResponse(HttpStatusCode.OK, session); } else { return Request.CreateResponse(HttpStatusCode.BadRequest); } }