public Database.Entities.Other.PollVote Convert(Models.Other.CRUD.PollVote source, Database.Entities.Other.PollVote destination, ResolutionContext context) { return(new Database.Entities.Other.PollVote { PollSelectionId = source.PollSelectionId, VotedByUserId = source.VotedByUserId, Created = DateTime.Now }); }
public async Task <List <Result> > CreateVoteOnPollAsync(Models.Other.CRUD.PollVote pollVote) { if (await _dbClient.UserHasAlreadyVotedOnPollAsync(pollVote)) { return(new List <Result> { new Result(false, "Du har redan röstat!") }); } return(await new List <Result>().Get(_dbClient.CreateVoteOnPollAsync(_mapper.Map <Database.Entities.Other.PollVote>(pollVote)), ResultMessages.CreatePollVote)); }
public async Task <bool> UserHasAlreadyVotedOnPollAsync(Models.Other.CRUD.PollVote pollVote) { var poll = await _dbContext.Polls.IncludeAll().FirstOrDefaultAsync(x => x.Selections.Select(y => y.Id).Contains(pollVote.PollSelectionId)); return(poll != null && poll.Selections.Any(selection => selection.Votes.Select(x => x.VotedByUserId).Contains(pollVote.VotedByUserId))); }
public Task <List <Result> > Vote(int pollId, [FromBody] Models.Other.CRUD.PollVote pollVote) { _logger.Debug("Requesting to create a new vote on poll with id {pollId}", pollId); return(_pollRepository.CreateVoteOnPollAsync(pollVote)); }