Example #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);
            }
        }
Example #2
0
 /// <summary>
 /// Add an IPDetail item to Queue of Buffer
 /// </summary>
 /// <param name="iPDetailsExtDTOs"></param>
 public void Put(IPDetailsExtDTO iPDetailsExtDTOs)
 {
     if (_ipDetailsQueue != null)
     {
         _ipDetailsQueue.Enqueue(iPDetailsExtDTOs);
     }
     else
     {
         throw new IPDetailsUpdateRequestInternalError("Buffer is not initialized");
     }
 }
Example #3
0
 public async Task<IPDetailsExtDTO> CreateIPDetails(IPDetailsExtDTO iPDetails, CancellationToken cancellationToken)
 {
      var obj = _appContext.IPDetails.Find(iPDetails.IP);
     if (obj == null)
     {
         _appContext.IPDetails.Add(iPDetails);
         await _appContext.SaveChangesAsync(cancellationToken);
         return iPDetails;
     }
     else
         return obj;
 }
 public async Task <bool> UpdateIPDetails(IPDetailsExtDTO iPDetails, CancellationToken cancellationToken) =>
 await _repository.UpdateIPDetails(iPDetails, cancellationToken);
 public async Task <IPDetailsExtDTO> CreateIPDetails(IPDetailsExtDTO iPDetails, CancellationToken cancellationToken) =>
 await _repository.CreateIPDetails(iPDetails, cancellationToken);
Example #6
0
 public async Task<bool> UpdateIPDetails(IPDetailsExtDTO iPDetails, CancellationToken cancellationToken)
 {
     _appContext.Entry(iPDetails).State = EntityState.Modified;
     await _appContext.SaveChangesAsync(cancellationToken);
     return true;
 }