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); } }
/// <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, }); }
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); } }
/// <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); }
/// <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()); }