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);