Exemplo n.º 1
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);
            }
        }