Beispiel #1
0
        public async Task <IPDetailsDTO> GetIPDetails(string ip, CancellationToken cancellationToken)
        {
            //Check if value exists in DB
            IPDetailsDTO ipDetailsEntity = await _iPStackRepository.GetIPDetailsIfExist(ip, cancellationToken);

            if (ipDetailsEntity == null)
            {
                var ipDetails = await _iPServiceProvider.GetIPDetails(ip, cancellationToken);

                IPDetailsExtDTO temp = new IPDetailsExtDTO()
                {
                    IP         = ip, City = ipDetails.City,
                    Contintent = ipDetails.Contintent, Country = ipDetails.Country,
                    Latitude   = ipDetails.Latitude, Longitude = ipDetails.Longitude
                };

                //create db record
                ipDetailsEntity = await _iPStackRepository.CreateIPDetails(temp, cancellationToken);

                return(ipDetailsEntity);
            }
            else
            {
                return(ipDetailsEntity);
            }
        }
 public async Task <IPDetailsExtDTO> GetIPDetailsIfExist(string ip, CancellationToken cancellationToken) =>
 await _repository.GetIPDetailsIfExist(ip, cancellationToken);