예제 #1
0
        public object Post(PremiumInput request)
        {
            try
            {
                if (string.IsNullOrEmpty(request.Name))
                {
                    throw new ArgumentException("We require your name");
                }

                if (string.IsNullOrEmpty(request.Gender))
                {
                    throw new ArgumentException("We require your gender");
                }

                var age = request.DateOfBirth.CalculateAge();

                if (age < 18 || age > 65)
                {
                    throw new ArgumentException("Can only receive a Premium if between the age of 18 and 65");
                }

                var premium = PremiumCalculations.CalculatePremium(age, request.Gender);
                return(new PremiumInputResponse {
                    Result = $"Your premium is ${premium}"
                });
            }
            catch (ArgumentException e)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(new PremiumInputResponse {
                    Errors = e.Message
                });
            }
        }
예제 #2
0
        public static PremiumInput GetPremiumInput(int targetAgeToday, string name, string gender)
        {
            var genPremium = new PremiumInput
            {
                Name   = name,
                Gender = gender
            };

            genPremium.DateOfBirth = SameDateXYearsAgo(targetAgeToday);
            return(genPremium);
        }