예제 #1
0
        public override async Task <GetMeaningForWordRequest> HandleAsync(GetMeaningForWordRequest command, CancellationToken cancellationToken = new CancellationToken())
        {
            var query = new GetMeaningsByWordIdQuery {
                DictionaryId = command.DictionaryId, WordId = command.WordId
            };
            var result = await _queryProcessor.ExecuteAsync(query, cancellationToken);

            command.Result = result.Select(x => _meaningRenderer.Render(x, command.DictionaryId));
            return(await base.HandleAsync(command, cancellationToken));
        }
예제 #2
0
        public override async Task <IEnumerable <MeaningModel> > ExecuteAsync(GetMeaningsByWordIdQuery query, CancellationToken cancellationToken = new CancellationToken())
        {
            using (var database = _databaseProvider.GetDatabaseForDictionary(query.DictionaryId))
            {
                var meanings = await database.Meaning
                               .Where(t => t.WordId == query.WordId)
                               .ToListAsync(cancellationToken);

                return(meanings.Select(m => m.Map <Meaning, MeaningModel>()));
            }
        }
예제 #3
0
 public override async Task <IEnumerable <MeaningModel> > ExecuteAsync(GetMeaningsByWordIdQuery query, CancellationToken cancellationToken = new CancellationToken())
 {
     return(await _apiClient.Get <IEnumerable <MeaningModel> >($"api/dictionaries/{query.DictionaryId}/words/{query.WordId}/meanings"));
 }