public async Task <Option <IEnumerable <Repository>, RepoCounterApiException> > GetUserRepositoriesAsync(string username) { return(await _memoryCache.GetOrCreateAsync(username, async (entry) => { entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromDays(1); return await _innerRepositoryService.GetUserRepositoriesAsync(username); })); }
public async Task <Option <UserStatistics, AllegroApiException> > GetRepositoryStatisticsAsync(string username) { var optionTaskResult = await _repositoryStore.GetUserRepositoriesAsync(username); return(optionTaskResult.Match( some: repos => { var repositories = repos.ToList(); if (repositories.Any()) { return Option.Some <UserStatistics, AllegroApiException>( TransformStatistics(username, repositories)); } else { return Option.None <UserStatistics, AllegroApiException>( new AllegroApiException(ErrorCodes.UserHasNoRepositories)); } }, none: exception => Option.None <UserStatistics, AllegroApiException>(exception) )); }