Esempio n. 1
0
        public async Task <ActionResult <bool> > IsInRange([FromQuery] List <AddressModel> addresses)
        {
            var start = new Lib.Address
            {
                Id      = addresses[0].Id,
                Street  = addresses[0].Street,
                City    = addresses[0].City,
                State   = addresses[0].State,
                Country = addresses[0].Country,
                ZipCode = addresses[0].ZipCode
            };
            var end = new Lib.Address
            {
                Id      = addresses[1].Id,
                Street  = addresses[1].Street,
                City    = addresses[1].City,
                State   = addresses[1].State,
                Country = addresses[1].Country,
                ZipCode = addresses[1].ZipCode
            };

            if (await _addressLogic.IsInRangeAsync(start, end, 20))
            {
                _logger.LogInformation("These addresses are within range of each other");
                return(true);
            }
            else
            {
                _logger.LogError("These addresses are not in range of each other");
                return(false);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Converts Business Library address object into DataAccess address object
 /// </summary>
 /// <param name="address"></param>
 /// <returns>Returns DataAccess address object</returns>
 public Entities.Address MapAddress(Lib.Address address)
 {
     return(new Entities.Address
     {
         Id = address.Id,
         Street = address.Street,
         City = address.City,
         State = address.State,
         Country = address.Country,
         ZipCode = address.ZipCode,
     });
 }
Esempio n. 3
0
        public async Task <ActionResult <Lib.Address> > GetAddress([FromQuery] AddressModel address)
        {
            var newAddress = new Lib.Address
            {
                Id      = address.Id,
                Street  = address.Street,
                City    = address.City,
                State   = address.State,
                Country = address.Country,
                ZipCode = address.ZipCode
            };
            var checkAddress = (await _db.GetAddressAsync(address: newAddress)).FirstOrDefault();

            if (checkAddress == null)
            {
                _logger.LogInformation("Address does not exist in the database");
                newAddress.Id = Guid.NewGuid();
                if (await _addressLogic.IsValidAddressAsync(newAddress))
                {
                    try
                    {
                        var normalAddress = await _addressLogic.NormalizeAddressAsync(newAddress);

                        await _db.AddAddressAsync(normalAddress);

                        await _db.SaveAsync();

                        _logger.LogInformation("Address successfully created");
                        return(newAddress);
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError("{0}", ex);
                        return(BadRequest($"Address entry failed"));
                    }
                }
                else
                {
                    _logger.LogError("Address does not exist");
                    return(BadRequest("Address does not exist"));
                }
            }
            else
            {
                _logger.LogError("Address already exists in the database");
                return(checkAddress);
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Checks if address already exists in database,
 /// if it doesn't it converts it and adds it to the database
 /// </summary>
 /// <param name="address"></param>
 /// <returns></returns>
 public async Task <bool> AddAddressAsync(Lib.Address address)
 {
     try
     {
         var newAddress = (await GetAddressAsync(address: address)).FirstOrDefault();
         if (newAddress == null)
         {
             await _context.AddAsync(_mapper.MapAddress(address));
         }
     }
     catch (Exception ex)
     {
         _logger.LogError("{0}", ex);
         _logger.LogError($"Address Id: {address.Id} failed to add to database");
         return(false);
     }
     return(true);
 }
Esempio n. 5
0
        /// <summary>
        /// Given either an id or an address it retrieves an address from the database
        /// </summary>
        /// <param name="id"></param>
        /// <param name="address"></param>
        /// <returns>Returns an address</returns>
        public async Task <ICollection <Lib.Address> > GetAddressAsync(Guid?id = null, Lib.Address address = null)
        {
            var addresses = await _context.Addresses.AsNoTracking().ToListAsync();

            if (id != null)
            {
                addresses = addresses.Where(a => a.Id == id).ToList();
            }
            if (address != null)
            {
                addresses = addresses.Where(a => a.Street == address.Street && a.City == address.City && a.State == address.State && a.ZipCode == address.ZipCode && a.Country == address.Country).ToList();
            }
            return(addresses.Select(_mapper.MapAddress).ToList());
        }