public static void ValidateStartDate(PolicyDetails details) { if (details.StartDate < DateTime.Now.Date) { throw new PolicyValidationException(DeclineReason.StartDateOfPolicy); } }
public void Create_Policy_WithCriteria() { //Login PolicyDetails policydetails = new PolicyDetails(); Navigate_To_Policy(); policydetails.ClickAddPolicyButton(); String policyName = policydetails.setPolicyName(); String policyDescription = policydetails.setPolicyDescription(); policydetails.ClickAddCriteriaDialog(); policydetails.ClickAddCriteriaButton(); String CriteriaName = policydetails.setCriteriaName(); policydetails.SetCriteriaType("Number"); policydetails.setCriteriaDescription(); policydetails.ClickSaveCriteriaButton(); policydetails.ClickSelectCriteriaButton(); policydetails.setCriteriaPriority(); policydetails.ClickSaveButton(); policydetails.WaitForStatus(); policydetails.SearchByName(policyName); PurgeLinkedData.DeletAdmissionPolicyCriteriaRelation(policyName); PurgeLinkedData.DeletAdmissionCriteria(CriteriaName); PurgeLinkedData.DeletAdmissionPolicy(policyName); }
public ActionResult Details(PolicyDetails cusObj) { string con = ConfigurationManager.ConnectionStrings["Myconnection"].ConnectionString; SqlConnection sqlCon = new SqlConnection(con); sqlCon.Open(); SqlCommand sqlCmd = new SqlCommand("select cover_amount,payout_option,policy_term,payment_term,plan_type,add_on from POLICY_DETAILS where policy_id=(Select max (policy_id) From POLICY_DETAILS)", sqlCon); SqlDataReader sdr = sqlCmd.ExecuteReader(); if (sdr.Read()) { cusObj.cover_amount = Convert.ToInt32(sdr["cover_amount"]); cusObj.payout_option = sdr["payout_option"].ToString(); cusObj.policy_term = Convert.ToInt32(sdr["policy_term"]); cusObj.payment_term = Convert.ToInt32(sdr["payment_term"]); cusObj.plan_type = sdr["plan_type"].ToString(); cusObj.add_on = sdr["add_on"].ToString(); } else { ViewData["Message"] = "User Login Failed"; } sqlCon.Close(); return(View(cusObj)); }
public static void ValidateDriverClaimCount(PolicyDetails details) { int drivers = details.Drivers?.Count() ?? 0; if (drivers == 0) { throw new PolicyValidationException(DeclineReason.NoDriversSpecified); } if (drivers < Calculator.MinDrivers) { throw new PolicyValidationException(DeclineReason.InsufficientDriversSpecified); } if (drivers > Calculator.MaxDrivers) { throw new PolicyValidationException(DeclineReason.TooManyDriversSpecified); } int maxClaims = 0; maxClaims = details.Drivers .Select(x => Math.Max(maxClaims, x.PreviousClaims?.Count() ?? 0)) .Max(); if (maxClaims > Calculator.MaxClaimsPerDriver) { throw new PolicyValidationException(DeclineReason.TooManyPreviousClaims); } }
public async Task <IActionResult> Edit(int id, [Bind("Policyid,Userid,Policynumber,Inscompanyid,Inscompanyname,Inscontactname,Inscompanywebsite,Inscontactphone,Inscontactemail,Policynickname,Policytype")] PolicyDetails policyDetails) { if (id != policyDetails.Policyid) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(policyDetails); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PolicyDetailsExists(policyDetails.Policyid)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } //ViewData["Userid"] = new SelectList(_context.PolicyHolder, "Userid", "Email", policyDetails.Userid); return(View(policyDetails)); }
public static void DriverIsAccountant(PolicyDetails details) { if (details.Drivers .FirstOrDefault(x => x.Occupation.Equals("Accountant", StringComparison.InvariantCultureIgnoreCase)) != null) { details.Premium -= details.Premium / 10M; } }
public static void ValidateAgeOldestDriver(PolicyDetails details) { var oldestDriver = details.Drivers.OrderBy(x => x.DateOfBirth).First(); var age = oldestDriver.DateOfBirth.GetAgeInYears(details.StartDate); if (age >= 75) { throw new PolicyValidationException(DeclineReason.AgeOfOldestDriver, oldestDriver.Name); } }
public void TestRuleValidation_Age() { // Setup policy details with a driver who is 21. var policyDetails = new PolicyDetails() { StartDate = DateTime.Now.AddDays(1).Date, Drivers = new Driver[] { new Driver() { Name = "William Orr", Occupation = "Developer", DateOfBirth = new DateTime(1962, 6, 21), }, new Driver() { Name = "William Young", Occupation = "Youth", DateOfBirth = DateTime.Now.AddYears(-21).Date, } } }; this.premiumCalculator.Validate += Validators.ValidateDriverClaimCount; this.premiumCalculator.Validate += Validators.ValidateAgeYoungestDriver; this.premiumCalculator.Validate += Validators.ValidateAgeOldestDriver; this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.None, policyDetails.DeclineReason); Assert.AreEqual(this.premiumCalculator.StartingPoint * 1.2M, policyDetails.Premium); // Change the second driver to be 26 policyDetails.Drivers.Skip(1).First().DateOfBirth = DateTime.Now.AddYears(-26).Date; this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.None, policyDetails.DeclineReason); Assert.AreEqual(this.premiumCalculator.StartingPoint * 0.9M, policyDetails.Premium); // Change the second driver to be 76 policyDetails.Drivers.Skip(1).First().DateOfBirth = DateTime.Now.AddYears(-76).Date; this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.AgeOfOldestDriver, policyDetails.DeclineReason); // Change the second driver to be 20 policyDetails.Drivers.Skip(1).First().DateOfBirth = DateTime.Now.AddYears(-20).Date; this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.AgeOfYoungestDriver, policyDetails.DeclineReason); }
public void Navigate_To_Policy() { //Login String[] featureList = { "Admission PoliciesandCriteria" }; FeatureBee.FeatureBeeLogin.LoginWithFeatureBee(featureList, FeatureBee.FeatureBeeLogin.iSIMSUserType.AdmissionsOfficer); AutomationSugar.NavigateMenu("Tasks", "Admissions", "Manage Admission Policies"); PolicyDetails policydetails = new PolicyDetails(); String policyTitle = policydetails.getPolicyTitle(); Assert.IsTrue(policyTitle.Contains("Admission Policies")); }
public ActionResult Index(PolicyDetails cusObj) { Response.Write("Phone NUmber = " + TempData["Phone_Number"]); long Phone = (long)Convert.ToDouble(TempData["Phone_Number"]); string con = ConfigurationManager.ConnectionStrings["myConnection"].ConnectionString; SqlConnection sqlCon = new SqlConnection(con); SqlCommand command = new SqlCommand("spGETPKCUSTOMER", sqlCon); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@phone_number", Phone); SqlDataAdapter myadapter = new SqlDataAdapter(command); myds = new DataSet(); myadapter.Fill(myds, "CUSTOMER"); rc = myds.Tables["CUSTOMER"].Rows.Count; if (rc > 0) { ViewBag.customer_id = myds.Tables["CUSTOMER"].Rows[0][0].ToString(); } Response.Write("customer id + " + ViewBag.customer_id); SqlCommand sqlCmd = new SqlCommand("INSERT into POLICY_DETAILS (customer_id,cover_amount,payout_option,policy_term,payment_term,plan_type,add_on,policy_start_date,policy_active_flag,policy_applied) values (@customer_id,@cover_amount,@payout_option,@policy_term,@payment_term,@plan_type,@add_on,@policy_start_date,@policy_active_flag,@policy_applied)", sqlCon); sqlCon.Open(); sqlCmd.Parameters.AddWithValue("@customer_id", ViewBag.customer_id); sqlCmd.Parameters.AddWithValue("@cover_amount", cusObj.cover_amount); sqlCmd.Parameters.AddWithValue("@payout_option", cusObj.payout_option); sqlCmd.Parameters.AddWithValue("@policy_term", cusObj.policy_term); sqlCmd.Parameters.AddWithValue("@payment_term", cusObj.payment_term); sqlCmd.Parameters.AddWithValue("@plan_type", cusObj.plan_type); sqlCmd.Parameters.AddWithValue("@add_on", String.IsNullOrWhiteSpace(cusObj.add_on) ? (object)DBNull.Value : (object)cusObj.add_on); sqlCmd.Parameters.AddWithValue("@policy_start_date", DateTime.Now); //sqlCmd.Parameters.AddWithValue("@policy_end_date", ); sqlCmd.Parameters.AddWithValue("@policy_active_flag", 0); sqlCmd.Parameters.AddWithValue("@policy_applied", DateTime.Now); SqlDataReader sdr = sqlCmd.ExecuteReader(); sqlCon.Close(); return(RedirectToRoute(new { controller = "Policy", action = "Details" })); }
public void TestRuleValidation_Occupation() { var policyDetails = new PolicyDetails() { StartDate = DateTime.Now.AddDays(1).Date, Drivers = new Driver[] { new Driver() { Name = "William Orr", Occupation = "Developer", DateOfBirth = new DateTime(1962, 6, 21), PreviousClaims = new Claim[] { new Claim() { ClaimDate = new DateTime(1980, 1, 1) } } } } }; this.premiumCalculator.Validate += Validators.ValidateDriverClaimCount; this.premiumCalculator.Validate += Validators.DriverIsChauffeur; this.premiumCalculator.Validate += Validators.DriverIsAccountant; this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.None, policyDetails.DeclineReason); Assert.AreEqual(this.premiumCalculator.StartingPoint, policyDetails.Premium); // Change occupation to "Chauffeur". policyDetails.Drivers.First().Occupation = "Chauffeur"; this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.None, policyDetails.DeclineReason); Assert.AreEqual(this.premiumCalculator.StartingPoint * 1.1M, policyDetails.Premium); // Change occupation to "Accountant". policyDetails.Drivers.First().Occupation = "Accountant"; this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.None, policyDetails.DeclineReason); Assert.AreEqual(this.premiumCalculator.StartingPoint * 0.9M, policyDetails.Premium); }
public void Create_Basic_Policy() { //Login PolicyDetails policydetails = new PolicyDetails(); Navigate_To_Policy(); policydetails.ClickAddPolicyButton(); String policyName = policydetails.setPolicyName(); String policyDescription = policydetails.setPolicyDescription(); policydetails.ClickSaveButton(); policydetails.ClickNoCriteriaDialogButton(); policydetails.WaitForStatus(); //Purge created data PurgeLinkedData.DeletAdmissionPolicy(policyName); }
public void CalculatePremium(PolicyDetails policyDetails) { if (policyDetails == null) { throw new ArgumentNullException(nameof(policyDetails)); } try { policyDetails.Reset(this.StartingPoint); this.Validate?.Invoke(policyDetails); } catch (PolicyValidationException exception) { policyDetails.Update(exception); } }
public void Delete_Policy_WIthout_Criteria() { //Login PolicyDetails policydetails = new PolicyDetails(); //Insert a policy into database Guid policyId = Guid.NewGuid(); string policyName = CoreQueries.GetColumnUniqueString("AdmissionsPolicy", "Name", 10, tenantID); string policyDescription = CoreQueries.GetColumnUniqueString("AdmissionsPolicy", "Description", 10, tenantID); using (new DataSetup(GetPolicyRecord(policyId, policyName, policyDescription))) { //Act Navigate_To_Policy(); policydetails.SearchByName(policyName); policydetails.ClickDeleteButton(); } }
public async Task <IActionResult> Create([Bind("Policynickname,Policytype,Userid,Policynumber,Inscompanyname,Inscontactname,Inscompanywebsite,Inscontactphone,Inscontactemail")] PolicyDetails policyDetails) { if (ModelState.IsValid) { var user = await _userManager.GetUserAsync(HttpContext.User); var currentEmail = user.Email; var newUserId = await _context.PolicyHolder.FirstOrDefaultAsync(p => p.Email == currentEmail); policyDetails.Userid = newUserId.Userid; _context.Add(policyDetails); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } //ViewData["Userid"] = new SelectList(_context.PolicyHolder, "Userid", "Email", policyDetails.Userid); return(View(policyDetails)); }
public static void ValidateAgeYoungestDriver(PolicyDetails details) { var youngestDriver = details.Drivers.OrderByDescending(x => x.DateOfBirth).First(); var age = youngestDriver.DateOfBirth.GetAgeInYears(details.StartDate); if (age < 21) { throw new PolicyValidationException(DeclineReason.AgeOfYoungestDriver, youngestDriver.Name); } if (age >= 21 && age <= 25) { details.Premium += details.Premium / 5M; } else if (age > 25 && age < 75) { details.Premium -= details.Premium / 10M; } }
private void CalculateButtonClick(object sender, EventArgs e) { var details = new PolicyDetails() { StartDate = this.startDateTimePicker.Value.Date, Drivers = this.driversList.Items.OfType <Driver>() }; this.premiumCalculator.CalculatePremium(details); if (details.IsApproved) { this.resultTextLabel.Text = $"Approved: Premium is £ {details.Premium.ToString("0.00")}"; } else { this.resultTextLabel.Text = $"Declined: {details.ReasonDeclined}"; } }
public void Search_Policy_ByName() { //Login PolicyDetails policydetails = new PolicyDetails(); //Insert a policy into database Guid policyId = Guid.NewGuid(); string policyName = CoreQueries.GetColumnUniqueString("AdmissionsPolicy", "Name", 10, tenantID); string policyDescription = CoreQueries.GetColumnUniqueString("AdmissionsPolicy", "Description", 10, tenantID); using (new DataSetup(GetPolicyRecord(policyId, policyName, policyDescription))) { //Act Navigate_To_Policy(); policydetails.ClickAddPolicyButton(); policydetails.SearchByName(policyName); } //Purge created data PurgeLinkedData.DeletAdmissionPolicy(policyId); }
public static void ValidatePreviousClaims(PolicyDetails details) { const int MaxDriverClaims = 2; const int MaxTotalClaims = 3; int totalNumberOfClaims = 0; foreach (var driver in details.Drivers.Where(x => x.PreviousClaims != null)) { int driverClaims = 0; foreach (var claim in driver.PreviousClaims) { ++driverClaims; ++totalNumberOfClaims; if (driverClaims > MaxDriverClaims) { throw new PolicyValidationException(DeclineReason.DriverHasTooManyClaims, driver.Name, MaxDriverClaims); } if (totalNumberOfClaims > MaxTotalClaims) { throw new PolicyValidationException(DeclineReason.PolicyHasTooManyClaims, MaxTotalClaims); } var age = claim.ClaimDate.GetAgeInYears(details.StartDate); if (age < 1) { details.Premium += details.Premium / 5M; } else if (age < 5) { details.Premium += details.Premium / 10M; } } } }
public void Initialize() { _policyDetailsService = Substitute.For <IPolicyDetailsService>(); _mapper = Substitute.For <AutoMapper.IMapper>(); _log = Substitute.For <Logger.IMapper>(); _policyDetails = new PolicyDetails { IDPolicyDetails = 1, IDTypeFuel = 4 }; _policyDetailsService.AllPolicys() .Returns(Task.FromResult((IEnumerable <PolicyDetails>) new List <PolicyDetails>() { _policyDetails }) ); _policyDetailsService.FindById(Arg.Is <int>(x => x == 1)) .Returns(_policyDetails); }
public void TestInvalidEntries() { // Empty policy (no drivers, also then less than minimum 1). var policyDetails = new PolicyDetails() { StartDate = DateTime.Now.AddDays(1).Date, }; this.premiumCalculator.Validate += Validators.ValidateDriverClaimCount; this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.NoDriversSpecified, policyDetails.DeclineReason); // Create drivers, adding one too many. List <Driver> drivers = new List <Driver>(); for (int i = 1; i <= Calculator.MaxDrivers + 1; i++) { drivers.Add(new Driver() { Name = $"Driver {i}", Occupation = $"Job {i}", DateOfBirth = new DateTime(1970 + i - 1, i % 12, i % 28) }); } policyDetails.Drivers = drivers; this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.TooManyDriversSpecified, policyDetails.DeclineReason); // Remove drivers so that there is no more than the max allowed. policyDetails.Drivers = policyDetails.Drivers.Take(Calculator.MaxDrivers); // Add claims to each driver, increasing the number each time so that at least one driver has too many. foreach (var driver in policyDetails.Drivers) { int i = driver.DateOfBirth.Year - 1968; List <Claim> claims = new List <Claim>(); do { claims.Add(new Claim() { ClaimDate = new DateTime(1980, 1, i) }); }while (--i > 0); driver.PreviousClaims = claims; } this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.TooManyPreviousClaims, policyDetails.DeclineReason); // Remove excessive claims. foreach (var driver in policyDetails.Drivers .Where(x => (x.PreviousClaims?.Count() ?? 0) > Calculator.MaxClaimsPerDriver)) { driver.PreviousClaims = driver.PreviousClaims.Take(Calculator.MaxClaimsPerDriver); } this.premiumCalculator.CalculatePremium(policyDetails); Assert.AreEqual(DeclineReason.None, policyDetails.DeclineReason); }
public void AddPolicyDetails(PolicyDetails policyDetails) { _context.PolicyDetails.Add(policyDetails); }
public void DeletePolicyDetails(PolicyDetails policy) { _context.PolicyDetails.Remove(policy); }
public void DeletePolicyDetails(PolicyDetails policy) { _policyDetailsRepository.DeletePolicyDetails(policy); }
public void AddPolicyDetails(PolicyDetails policyDetails) { _policyDetailsRepository.AddPolicyDetails(policyDetails); }