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.")); }
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)); }