public async Task GetAnswersDateFilter_JustInvoked_ShouldReturnWithLaterDate()
        {
            // Arrange
            var freshIntervalMin = 15;
            var currentDate      = DateTime.UtcNow;
            var boundDate        = currentDate.Subtract(TimeSpan.FromMinutes(freshIntervalMin + 1));

            var onBoundAnswer = new Answer
            {
                Id         = Guid.NewGuid(),
                LastUpdate = boundDate
            };

            var freshAnswer = new Answer
            {
                Id         = Guid.NewGuid(),
                LastUpdate = currentDate
            };

            var questions = new List <Question>
            {
                new Question
                {
                    Answers = new List <Answer> {
                        freshAnswer, onBoundAnswer
                    }
                }
            };

            _questionDaoMock.Setup(m =>
                                   m.FindWithProjectionAndFilterAsync(It.IsAny <ProjectionDefinition <Question, Question> >(),
                                                                      It.IsAny <FilterDefinition <Question> >()))
            .ReturnsAsync(questions);

            // Act
            var searchableAnswers = await _service.GetAnswersAsync(boundDate);

            // Assert
            var searchableAnswersList = searchableAnswers.ToList();

            Assert.NotEmpty(searchableAnswersList);
            Assert.DoesNotContain(searchableAnswersList, a => a.Id == onBoundAnswer.Id.ToString());
            _questionDaoMock.Verify(m => m.FindWithProjectionAndFilterAsync(It.IsAny <ProjectionDefinition <Question, Question> >(),
                                                                            It.IsAny <FilterDefinition <Question> >()), Times.Once);
            _questionDaoMock.VerifyNoOtherCalls();
        }
        private async Task IndexAnswers(DateTime startDate)
        {
            var answers = await _searchableTextService.GetAnswersAsync(startDate);

            if (answers.Count == 0)
            {
                _logger.LogInformation("{JobName} | There are no new answers to index", nameof(MongoIndexingForElasticJob));
                return;
            }

            var request = new AnswersElasticUpsertRequest
            {
                Entities = answers.ToList()
            };

            await _elasticsearchClient.UpsertManyAsync(request);
        }