private Eligibility_Ruleset mapRuleSetToPoco(RuleContainer ruleContainer, SystemUser user, EligibilityRuleSet ruleSet, int? parentRuleSetId) { return new Eligibility_Ruleset { Eligibility_Type_Id = (int)ruleSet.EligibilityType, Rule_Container_Id = ruleContainer.Id, Created_By = user.Id, Date_Created = DateTime.Now, Is_Deleted = false, Ruleset_Aggregator_Id = (int)ruleSet.Aggregator, Parent_Ruleset_Id = parentRuleSetId }; }
public virtual EligibilityRuleSet BuildRootRuleSet(RuleContainer customer, EligibilityTypeEnum eligibilityType) { if (customer == null) throw new ArgumentNullException(nameof(customer)); var ruleSet = _eligibilityRepository.GetRootEligibilityRuleSet(customer, eligibilityType); if (ruleSet == null) throw new NoNullAllowedException($"There is no root {eligibilityType} Eligibility RuleSet for this {nameof(customer)}"); var finalRuleSet = buildRuleSet(ruleSet); return finalRuleSet; }
private int saveRuleSet(RuleContainer customer, SystemUser user, EligibilityRuleSet ruleSet, int? parentRuleSetId) { var ruleSetPoco = mapRuleSetToPoco(customer, user, ruleSet, parentRuleSetId); var ruleSetId = _eligibilityRepository.CreateRuleSet(ruleSetPoco); foreach (var rule in ruleSet.Rules) { _ruleStorer.SaveRule(user, rule, ruleSetId); } foreach (var childRuleSet in ruleSet.ChildRuleSets) { saveRuleSet(customer, user, childRuleSet, ruleSetId); } return ruleSetId; }
public virtual int SaveRootRuleSet(RuleContainer customer, SystemUser user, EligibilityRuleSet ruleSet) { if (customer == null) throw new ArgumentNullException(nameof(customer)); if (user == null) throw new ArgumentNullException(nameof(user)); if (ruleSet == null) throw new ArgumentNullException(nameof(ruleSet)); try { var ruleSetId = saveRuleSet(customer, user, ruleSet, null); return ruleSetId; } catch (Exception e) { Console.WriteLine(e); throw; } }