private string BuildQuery(GetTweetsWithHashtagQuery query) { // TODO: inject Tweets table name from outside? // TODO: Note that LIKE can be pretty slow -> consider fulltext index, see https://crate.io/docs/reference/sql/queries.html#like // TODO: escape hashtag string? return($"SELECT * FROM Tweets where Text LIKE '%{query.Hashtag}%'"); }
public override async Task <QueryResult <IList <Tweet> > > HandleAsync(GetTweetsWithHashtagQuery query) { var response = await GetResponse <Tweet>(BuildQuery(query)); return(GetResultOrThrow(response)); }
public async Task <QueryResult <IList <Tweet> > > GetQueryResultAsync(GetTweetsWithHashtagQuery query) { var handler = new GetTweetsWithHashtagQueryHandler(this.client); return(await handler.HandleAsync(query)); }
public async Task <QueryResult <IList <Tweet> > > GetQueryResultAsync(GetTweetsWithHashtagQuery query) { var handler = new GetTweetsWithHashtagQueryHandler(new CrateClient(_crateUrl)); return(await handler.HandleAsync(query)); }
public override async Task <QueryResult <IList <Tweet> > > HandleAsync(GetTweetsWithHashtagQuery query) { var response = await GetResponse <Tweet>(t => t.Text.Contains(query.Hashtag)); return(GetResultOrThrow(response)); }