Exemplo n.º 1
0
        public async Task <IActionResult> GetByEmail(string email)
        {
            if (String.IsNullOrEmpty(email))
            {
                return(StatusCode(400, "Invalid parameter(s)."));
            }

            // Check if email address is valid
            if (!Regex.Match(email, @"^([\w\.\-]+)@((?!\.|\-)[\w\-]+)((\.(\w){2,3})+)$").Success)
            {
                return(StatusCode(400, "This e-mail address is not valid."));
            }

            //Get debtor
            var data = await _repo.GetDebtorByEmail(email);

            if (data == null)
            {
                return(StatusCode(500, "Debtor could not be found."));
            }

            //Debtor --> Address
            var hasAddress = data.Addresses.ToList()[0];
            var address    = await _addressRepository.GetAddressByPostalAndNumber(hasAddress.Number, hasAddress.PostalCode);

            //Address model
            var addressViewModel = new AddressViewModel();

            addressViewModel.SetProperties(address);

            //Debtor model
            var result = new DebtorViewModel();

            result.Address = addressViewModel;
            result.SetProperties(data, false, false);

            return(Ok(result));
        }