public async Task <bool> UpdateIPDetailsBatch(List <IPDetailsExtDTO> iPDetails, CancellationToken cancellationToken)
        {
            try
            {
                var success = await _repository.UpdateIPDetailsBatch(iPDetails, cancellationToken);

                foreach (var ipDetails in iPDetails)
                {
                    _iPMemoryCache.RemoveIfExists(ipDetails.IP);
                    _iPMemoryCache.TryCreateValue(ipDetails.IP, ipDetails);
                }
                return(true && success);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
        public async Task <IPDetailsDTO> GetIPDetails(string ip, CancellationToken cancellationToken)
        {
            //Check if value exists in cache
            IPDetailsDTO iPDetailsDTO;

            if (!_iPMemoryCache.TryGetIpDetails(ip, out iPDetailsDTO))
            {
                //Check if value exists in DB
                iPDetailsDTO = await _iPStackServiceRepo.GetIPDetails(ip, cancellationToken);

                _iPMemoryCache.TryCreateValue(ip, iPDetailsDTO);
                return(iPDetailsDTO);
            }
            else
            {
                //Value exist in cache
                return(iPDetailsDTO);
            }
        }