public override async Task <GetRelationshipsByWordRequest> HandleAsync(GetRelationshipsByWordRequest command, CancellationToken cancellationToken = new CancellationToken())
        {
            var query = new GetRelationshipsByWordIdQuery
            {
                DictionaryId = command.DictionaryId,
                WordId       = command.WordId
            };
            var result = await _queryProcessor.ExecuteAsync(query, cancellationToken);

            command.Result = result.Select(r => _relationRenderer.Render(r, command.DictionaryId));
            return(await base.HandleAsync(command, cancellationToken));
        }
示例#2
0
        public override async Task <IEnumerable <RelationshipModel> > ExecuteAsync(GetRelationshipsByWordIdQuery query, CancellationToken cancellationToken = new CancellationToken())
        {
            using (var database = _databaseProvider.GetDatabaseForDictionary(query.DictionaryId))
            {
                var relations = await database.WordRelation
                                .Include(r => r.RelatedWord)
                                .Include(r => r.SourceWord)
                                .Where(t => t.SourceWordId == query.WordId)
                                .ToListAsync(cancellationToken);

                return(relations.Select(r => r.Map <WordRelation, RelationshipModel>()));
            }
        }
 public override async Task <IEnumerable <RelationshipModel> > ExecuteAsync(GetRelationshipsByWordIdQuery query, CancellationToken cancellationToken = new CancellationToken())
 {
     return(await _apiClient.Get <IEnumerable <RelationshipModel> >($"/api/dictionaries/{query.DictionaryId}/words/{query.WordId}/relationships"));
 }