2017-03-06 53 views
0

我需要能够计算出最年轻的驾驶员,然后将策略变化量应用于其值,即如果在某个年龄段之间。我如何计算出谁是驾驶员名单中最年轻的人

public void UpdatePolicyPremium(int policyid,Decimal amount) 
    { 

     List<tblDriver> driver = appliedDB.tblDrivers.Where(b => b.policy_Id == policyid).ToList(); 
     foreach (var drivers in driver) 
     { 
     if (drivers.age >21 && drivers.age <25) i should increase by 20% if youngest driver 
      { 

       tblPolicy _policy = appliedDB.tblPolicies.Where(b => b.id == policyid).SingleOrDefault(); 

       _policy.amount = _policy.amount + amount; 
      } 

      if (drivers.age > 26 && drivers.age < 75)// i should increase by 10 percent if youngest driver 
      { 

       tblPolicy _policy = appliedDB.tblPolicies.Where(b => b.id == policyid).SingleOrDefault(); 

       _policy.amount = _policy.amount + amount; 
      } 
     } 

     appliedDB.SaveChanges(); 

    } 

但该过程必须找出谁是括号内yongest司机,我不知道我怎么会去那个

驱动程序表 ID 名 姓 DOB 年龄

策略表 ID 博士艾弗ID 开始日期 金额 isIncreaseOnPolicy

回复帖子 我曾尝试格特·阿诺德的选项,确实出现了工作,但我还需要政策

的开始日期的附加functionallity这是任务

•如果年龄在21和25之间的最小的驱动器在策略的开始日期20%

即BaseAmount = 500提高保险费所以10%的增加将50磅是s如果在开始日期年龄在21岁到25岁之间,则应该添加。

+0

存储每个年龄段的变量,检查它在反对什么已经存储在每个循环迭代和替换值,如果它比已经存储的“年轻化”。 –

+0

首先你需要=>和<=而不是>和<,你的金额参数也是没用的 –

+0

@AntoinePelletier当你不用时,它是无用的如果功能在后面应用我只被要求去那些gorups – david

回答

2

按年龄排序并获得第一个驱动程序。这个驱动程序将是这一群中最年轻的。代号为波纹管(没有compilled吧)

public void UpdatePolicyPremium(int policyid, Decimal amount) 
{ 
    tblDriver driver = appliedDB.tblDrivers.Where(b => b.policy_Id == policyid).OrderBy(r =>r.Age).FirstOrDefault(); 
    if (driver != null) 
    { 
     if (driver.age > 21 && driver.age < 25) //i should increase by 20 % if youngest driver 
     { 
     tblPolicy _policy = appliedDB.tblPolicies.Where(b => b.id == policyid).SingleOrDefault(); 
     _policy.amount = _policy.amount * 1.2; 
     } 

     if (driver.age > 26 && driver.age < 75)// i should increase by 10 percent if youngest driver 
     { 
     tblPolicy _policy = appliedDB.tblPolicies.Where(b => b.id == policyid).SingleOrDefault(); 
     _policy.amount = _policy.amount * 1.1; 
     } 
    } 
    appliedDB.SaveChanges(); 
} 
+0

我需要能够通过策略的开始日期来安排此策略表的开始日期规则在上面写入新的编辑? – david

+0

我该如何将开始日期的要求添加到此请求中 – david