Exemplo n.º 1
0
        public async Task <EligibleProductsResponse> GetEligibleProducts(EligibleProductsRequest request)
        {
            using var httpClient = new HttpClient();

            StringContent content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");

            using var response = await httpClient.PostAsync(_configuration["ApiUrl"] + "/Products/EligibleProducts", content);

            string apiResponse = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <EligibleProductsResponse>(apiResponse));
        }
Exemplo n.º 2
0
 public EligibleProductsResponse EligibleProducts(EligibleProductsRequest request)
 {
     try
     {
         return(_productService.GetProducts(request));
     }
     catch (System.Exception)
     {
         return(new EligibleProductsResponse()
         {
             ErrorMessage = "Api Error"
         });
     }
 }
Exemplo n.º 3
0
        public EligibleProductsResponse GetProducts(EligibleProductsRequest request)
        {
            //Check we are of age... or return nothing
            var validate = ValidateRequest(request);

            if (validate != null)
            {
                return new EligibleProductsResponse()
                       {
                           BanksWithProducts = new List <BankDTO>(),
                           ErrorMessage      = validate
                       }
            }
            ;

            return(new EligibleProductsResponse()
            {
                BanksWithProducts = GetBanksProductsForLTV(Helpers.Helpers.CalculateLoanToValue(request.Deposit, request.HouseValue))
            });
        }
Exemplo n.º 4
0
        private string ValidateRequest(EligibleProductsRequest request)
        {
            var users = _context.Users.ToList();

            var user = _context.Users.FirstOrDefault(x => x.Id == request.UserId);

            // Save today's date.
            var today = DateTime.UtcNow;
            // Calculate the age.
            var age = today.Year - user.DateOfBirth.Year;

            // Go back to the year the person was born in case of a leap year
            if (user.DateOfBirth.Date > today.AddYears(-age))
            {
                age--;
            }

            var lowestLTVProduct = _context.Products.OrderByDescending(x => x.MaximumLTV).FirstOrDefault();

            if (lowestLTVProduct == null || Helpers.Helpers.CalculateLoanToValue(request.Deposit, request.HouseValue) >= lowestLTVProduct.MaximumLTV)
            {
                return("No Valid Products");
            }

            if (age < 18)
            {
                return("Not Old Enough");
            }

            if (request.Deposit >= request.HouseValue)
            {
                return("Deposit cannot be greater or equal to house value");
            }

            return(null);
        }