Exemplo n.º 1
0
        private static SuggestionsOfRegionByTermAndLanguageIdQuery Query()
        {
            var dispatcherMock = new Mock <IQueryDispatcher>();

            var query = new SuggestionsOfRegionByTermAndLanguageIdQuery(dispatcherMock.Object);

            return(query);
        }
        public void HandleAsync_Returns_Task_Of_IEnumerable_Of_Suggestion()
        {
            //Arrange
            var type    = typeof(Task <IEnumerable <Suggestion> >);
            var handler = Handler();

            var dispatcherMock = new Mock <IQueryDispatcher>();
            var query          = new SuggestionsOfRegionByTermAndLanguageIdQuery(dispatcherMock.Object);

            //Act
            var result = handler.HandleAsync(query);

            //Assert
            Assert.IsInstanceOf(type, result);
        }
Exemplo n.º 3
0
        private IQueryable <Suggestion> ProjectionToSuggestions(IQueryable <LocalizedRegion> localizedRegions, SuggestionsOfRegionByTermAndLanguageIdQuery query)
        {
            //var regionsToTypes = Source.Where(p => p.ToId > 1 && p.ToId < 8);

            //var areas = regionsToTypes.Select(p => p.Region);

            //var localizedAreas = areas.SelectMany(p => p.LocalizedRegions)
            //    .Where(p => p.LanguageId == query.LanguageId);

            //localizedAreas = localizedAreas.Where(predicate);

            //localizedAreas = localizedAreas.Where(a => query.Terms.All(p => a.Name.Contains(p))).Take(6);

            var ids = localizedRegions.Select(p => p.Region).Where(p => p.Subtype.Id > 1 && p.Subtype.Id < 8).Select(p => p.Id);

            var localizedRegionsInOneLanguage = localizedRegions.Where(p => p.LanguageId == query.LanguageId);

            var localizedAreas = localizedRegionsInOneLanguage.Where(p => ids.Contains(p.Id));

            localizedAreas = query.Terms.Aggregate(localizedAreas, (current, term) => current.Where(p => p.Name.StartsWith(term) || p.Name.Contains(term)));

            return(ProjectTo <Suggestion>(localizedAreas.Take(6)));
        }
Exemplo n.º 4
0
 public override async Task <IEnumerable <Suggestion> > HandleAsync(SuggestionsOfRegionByTermAndLanguageIdQuery query, CancellationToken cancellationToken)
 {
     return(await ProjectionToSuggestions(Source, query).ToArrayAsync(cancellationToken));
 }