public async Task <IPDetails> Execute(string ip) { var dbIpDetails = new IPDetails(); var details = new IPDetails(); var cacheIpDetails = this.FetchIpDetailsFromCache(ip); if (cacheIpDetails == null) { dbIpDetails = await this.FetchIpDetailsFromDb(ip); if (dbIpDetails != null) { return(dbIpDetails); } } else { return(cacheIpDetails); } if (cacheIpDetails == null && dbIpDetails == null) { IIPInfoProvider ipProvider = IPInfoProviderFactory.GetProvider(); details = await ipProvider.GetDetails(ip); // Store data to Db await this.AddIpDetailsToDb(ip, details); // Store data to cache this.AddIpDetailsToCache(ip, details); } return(details); }
public GetIpDetailsHandler(IMapper mapper, IIPInfoProvider ipInfoProvider, GeolocationContext geolocationContext, ICacheProvider cacheProvider) { _mapper = mapper; _ipInfoProvider = ipInfoProvider; _geolocationContext = geolocationContext; _cacheProvider = cacheProvider; }
public ExternalAPIIPDetailsService( IIPInfoProvider provider, ILogger <ExternalAPIIPDetailsService> logger, IMapper mapper) { this.provider = provider; this.logger = logger; this.mapper = mapper; }
public IPDetailsService( SqlDbContext ctx, IIPInfoProvider ipInfoProvider, IMemoryCacheService memory ) { _ctx = ctx; _memory = memory; _ipInfoProvider = ipInfoProvider; }
public IpStackService( ILogger <IpStackService> logger, IIPInfoProvider iPInfoProvider, IMemoryCache memoryCache, IIpRepository ipRepository, IJobRepository jobRepository, IBackgroundTaskQueue backgroundTaskQueue, IConfiguration configuration) { _logger = logger; _ipInfoProvider = iPInfoProvider; _memoryCache = memoryCache; _ipRepository = ipRepository; _jobRepository = jobRepository; _backgroundTaskQueue = backgroundTaskQueue; int.TryParse(configuration.GetSection("MaxBatchSize").Value, out MaxBatchSize); }
public CachedIPDetailsRepositoryDecorator(AppDbContext appDbContext, IMemoryCache cache, IIPInfoProvider ipInfoProvider, IConfiguration configuration, ILogger <CachedIPDetailsRepositoryDecorator> logger) { _repository = new IPDetailsRepository(appDbContext); _cache = cache; _IIPInfoProvider = ipInfoProvider; _logger = logger; _cacheLock = new SemaphoreSlim(1); int AbsoluteExpirationTimeInSeconds; if (!int.TryParse(configuration["MemoryCacheOptions:AbsoluteExpirationTimeInSeconds"], out AbsoluteExpirationTimeInSeconds)) { _logger.LogError($"Could not find the absolute expiration time in seconds for the in memory cache in the provided configuration."); throw new Exception($"Could not find the absolute expiration time in seconds for the in memory cache in the provided configuration."); } _memoryCacheEntryOptions = new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromSeconds((double)AbsoluteExpirationTimeInSeconds)); }
public IPRequestHandlerService(IIPInfoProvider ipInfoProvider, IMemoryCache memoryCache) { IpInfoProvider = ipInfoProvider; MemoryCache = memoryCache; }
public IPController(ILogger <IPController> logger, IIPInfoProvider infoProvider) { _logger = logger; _infoProvider = infoProvider; }
public MainIpService(IDataBaseService dbService, IIPInfoProvider infoProvider, IMemoryCacheImplementation cacheService) { this.dbService = dbService; this.infoProvider = infoProvider; this.cacheService = cacheService; }
public IPStackServiceExternalApi(IIPInfoProvider iIPInfoProvider) { _iIPInfoProvider = iIPInfoProvider; }