Exemplo n.º 1
0
        /// <summary>
        /// Create a new competition.
        /// </summary>
        /// <param name="item">
        /// The item.
        /// </param>
        /// <returns>
        /// The <see cref="HttpResponseMessage"/>.
        /// </returns>
        /// <remarks>
        /// POST competition
        /// </remarks>
        public HttpResponseMessage Post(PostCompetition item)
        {
            var competition = new Competition()
            {
                Question       = item.Question,
                ClosingDate    = item.ClosingDate,
                CompetitionKey = item.CompetitionKey,
                CreatedBy      = _userDataMapper.FindByAuthToken(RequestToken)
            };

            SetAnswers(item.Answers, item.CorrectAnswerKey, competition);

            if (competition.IsValid)
            {
                _competitionDataMapper.Insert(competition);

                var createdItem = _mapper.Map <Competition, GetCompetition>(competition);
                return(CreatedHttpResponse(createdItem.Id, createdItem));
            }

            return(Request.CreateResponse(HttpStatusCode.BadRequest, competition.ValidationErrors));
        }