예제 #1
0
        public async Task <IHttpActionResult> CastVote(int id, VoteCreate model)
        {
            _service.SetUserId(User.Identity.GetUserId());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (model == null)
            {
                return(BadRequest("Request body cannot be empty."));
            }

            if (model.OrderOfBusinessId != id)
            {
                return(BadRequest($"Body ID ({model.OrderOfBusinessId}) and URI ID ({id}) mismatch."));
            }

            if (await _service.CastVoteAsync(model))
            {
                return(Ok("Vote cast."));
            }

            return(BadRequest("Vote cannot be submitted."));
        }
예제 #2
0
        public async Task <ActionResult <VoteGetViewModel> > PostAsync([FromBody] VoteCreateRequest model)
        {
            var voteCreateModel = _mapper.Map <VoteCreateModel>(model);
            var vote            = await _voteService.CastVoteAsync(voteCreateModel);

            await _eventPublisher.PublishAll();

            var voteResponseModel = _mapper.Map <VoteGetViewModel>(vote);

            return(CreatedAtRoute("GetVote", new { voteId = vote.Id }, voteResponseModel));
        }