예제 #1
0
		private void deleteRule(IEligibilityRule rule) {
			if (rule == null)
				throw new ArgumentNullException(nameof(rule));

			_eligibilityRepository.DeleteRule(rule.Id);
			
		}
예제 #2
0
		public int SaveRule(SystemUser user, IEligibilityRule rule, int ruleSetId) {
			if (rule == null)
				throw new ArgumentNullException(nameof(rule));

			var rulePoco = mapRuleToPoco(user, rule, ruleSetId);
			try {
				var ruleId = _eligibilityRepository.CreateRule(rulePoco);
				return ruleId;
			}
			catch (Exception e) {
				Console.WriteLine(e);
				throw;
			}
		}
예제 #3
0
		private Eligibility_Rule mapRuleToPoco(SystemUser user, IEligibilityRule rule, int ruleSetId) {
			var rulePoco = rule.ConvertToEntity();
			if (rulePoco.Eligibility_Rule_Type_Id == 0) {
				var ruleTypeName = rule.GetType().Name;
				var ruleType = _eligibilityRepository.GetRuleType(ruleTypeName); // NOTE: doesn't check for whether this rule type can be in this eligibility type. could potentially cause problems?
				if (ruleType == null)
					throw new Exception($"the rule type '{ruleTypeName}' was not found in the DB and so cannot be saved.");
				rulePoco.Eligibility_Rule_Type_Id = ruleType.Eligibility_Rule_Type_Id;
			}
			rulePoco.Date_Created = DateTime.Now;
			rulePoco.Is_Deleted = false;
			rulePoco.Created_By_Id = user.Id;
			rulePoco.Eligibility_Ruleset_Id = ruleSetId;
			return rulePoco;
		}
		public EligibilityRuleResult(IEligibilityRule rule, bool isEligible) {
			Rule = rule;
			IsEligible = isEligible;
		}