Example #1
0
        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)));
        }
Example #2
0
        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);
        }