public async Task <Option <TimedData <TweetDto> > > GetAll(Guid?from, bool ascending, int count) { using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( JwtBearerDefaults.AuthenticationScheme, this.HttpContext.Request.Headers[HeaderNames.Authorization].ToString().Replace("Bearer ", "")); var tweetClient = new TweetClient(this.externals.Tweet, client); this.logger.LogInformation($"Tweet client: {this.externals.Tweet}"); try { return(Option <TimedData <TweetDto> > .FromResult( (await tweetClient.TweetqueryGetallAsync(from, ascending, count)).DeserializeTimedData())); } catch (Exception e) { this.logger.LogError(e, "Error during query."); return(Option <TimedData <TweetDto> > .FromError(e.Message)); } }
public static Option <T> OrElse <T>(this T?source, string error) where T : class => source is null ? Option <T> .FromError(error) : Option <T> .FromResult(source);