using Rule or by defining the Rules in an array
example below
var carryOverRules = new[]
{
//Full Time
new
{
Rule = (Func<dynamic, bool>) (x => x.FullTime==true && x.MaxCarryOver403020==true),
Value = 40.00m
},
new
{
Rule = (Func<dynamic, bool>) (x => x.FullTime==true && x.MaxCarryOver604530==true),
Value = 60.00m
},
new
{
Rule = (Func<dynamic, bool>) (x => x.FullTime==true && x.MaxCarryOver806040==true),
Value = 80.00m
},
// PartTime 75
new
{
Rule = (Func<dynamic, bool>) (x => x.PartTime75==true && x.MaxCarryOver403020==true),
Value = 30.00m
},
new
{
Rule = (Func<dynamic, bool>) (x => x.PartTime75==true && x.MaxCarryOver604530==true),
Value = 45.00m
},
new
{
Rule = (Func<dynamic, bool>) (x => x.PartTime75==true && x.MaxCarryOver806040==true),
Value = 60.00m
},
// PartTime 50
new
{
Rule = (Func<dynamic, bool>) (x => x.PartTime50==true && x.MaxCarryOver403020==true),
Value = 20.00m
},
new
{
Rule = (Func<dynamic, bool>) (x => x.PartTime50==true && x.MaxCarryOver604530==true),
Value = 30.00m
},
new
{
Rule = (Func<dynamic, bool>) (x => x.PartTime50==true && x.MaxCarryOver806040==true),
Value = 40.00m
},
new
{
Rule = (Func<dynamic, bool>) (x => true),
Value = 0.00m // Default Rule value if not match with any criteria
},
};
carryOver = carryOverRules.FirstOrDefault(x =>x.Rule(timeOffFlags)).Value;
No comments:
Post a Comment