public async Task <ServiceResponse <PollAnswerDto> > Handle(CreatePollAnswerCommand command, CancellationToken cancellationToken) { var pollAnswerToCreate = _mapper.Map <PollAnswer>(command); var createdPollAnswer = await _pollAnswerRepository.CreateAsync(pollAnswerToCreate); return(ServiceResponse <PollAnswerDto> .Success(_mapper.Map <PollAnswerDto>(createdPollAnswer))); }
public async Task AddAnswerAsync(UpdateMessage message) { var pollId = message.PollAnswer.PollId; var userId = message.PollAnswer.User.Id.ToString(); var isYesAnswer = message.PollAnswer.OptionIds.First() == 0; var pollEntity = _pollRepository.Find(x => x.RowKey == pollId).FirstOrDefault(); if (pollEntity == null) { return; } var answer = _pollAnswerRepository.Find(x => x.PartitionKey == pollEntity.ChatId && x.PollId == pollId && x.UserId == userId).FirstOrDefault(); if (answer == null) { answer = new PollAnswerEntity { PartitionKey = pollEntity.ChatId, RowKey = Guid.NewGuid().ToString(), Timestamp = _dateTimeService.TableEntityTimeStamp, PollId = pollId, UserId = userId, IsYesAnswer = isYesAnswer }; } else { answer.Timestamp = _dateTimeService.TableEntityTimeStamp; answer.IsYesAnswer = isYesAnswer; } await _pollAnswerRepository.CreateAsync(answer); }