public void ShouldReturnPollStatsWhenPollIdIsValid()
        {
            //act
            var poll = _polls.AsQueryable().Where(PollQueries.GetById(_polls[0].Id)).FirstOrDefault();

            //Asserts
            Assert.IsNotNull(poll);
            Assert.IsTrue(poll.Equals(_polls[0]));
        }
        public void ShouldReturnNullWhenPollIdIsInvalid()
        {
            //arrange
            var id = Guid.NewGuid();
            //act
            var poll = _polls.AsQueryable().Where(PollQueries.GetById(id)).FirstOrDefault();

            //Asserts
            Assert.IsNull(poll);
        }
        public async Task <GenericQueryResult> GetStatsById(GetPollStatsQuery query)
        {
            query.Validate();
            if (query.Invalid)
            {
                return(new GenericQueryResult(true, "Enquete inválida", query.Notifications));
            }

            var poll = await _context.Polls.Where(PollQueries.GetById(query.Poll_Id)).Include(p => p.OptionsPoll).FirstOrDefaultAsync();

            if (poll == null)
            {
                return(new GenericQueryResult(true, "Enquete não encontrada", null));
            }

            GetPollStatsByIdQueryResult getPollStatsByIdQueryResult = new GetPollStatsByIdQueryResult(poll.Id, poll.Views);

            foreach (var item in poll.OptionsPoll)
            {
                getPollStatsByIdQueryResult.options.Add(new GetOptionsPollByPolIdQueryResult(item.Id, item.Qty));
            }

            return(new GenericQueryResult(true, "Status da enquete obtida com sucesso", getPollStatsByIdQueryResult));
        }
 public async Task <Poll> GetById(Guid id)
 {
     return(await _context.Polls.Where(PollQueries.GetById(id)).Include(p => p.OptionsPoll).FirstOrDefaultAsync());
 }