2017-03-06 4 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 DrアイバーのID 開始日 金額 isIncreaseOnPolicy

再ポスト 私が動作するように見えるんゲルト・アーノルドによってオプションを試してみましたが、私はまた、これは、タスクであるポリシー

の開始日の追加functionallityを必要とします

•最年少ドライバーが20%

すなわちBaseAmount = 500で保険料を上げるように10%の増加がそのS 50ポンドであろう政策の開始日の21と25との間熟成される場合開始日に21歳から25歳の時に追加されます

+0

ストア各年齢層のための変数は、すでに保存されているものに対して、各ループ反復でそれをチェックし、それがすでに保存されているものよりも、「若い」だ場合には、値を交換してください。 –

+0

まず、>と<の代わりに>と<が必要です。また、量パラメータも無駄です。 –

+0

@AntoinePelletier機能が適用されていないときはどうしたらいいですか?私はそれらのゴープアップに行くように頼まれました – 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

関連する問題