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)); }
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")); }