Example #1
0
        // 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;
        }
Example #2
0
        // 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);
            }
        }