CapRaffle.Domain.Implementation.DrawingRepository.GetRulesForEvent C# (CSharp) Method

GetRulesForEvent() public method

public GetRulesForEvent ( int eventId ) : List
eventId int
return List
        public List<RuleParameter> GetRulesForEvent(int eventId)
        {
            int ruleSetId;
            List<RuleParameter> ruleList = new List<RuleParameter>();
            if (context.RuleSets.Where(e => e.EventId == eventId).FirstOrDefault() != null)
            {
                ruleSetId = context.RuleSets.Where(e => e.EventId == eventId).FirstOrDefault().RuleSetId;
            }
            else
            {
                //No custom rules just for this event, get category ruleset.
                int eventCategoryId = context.Events.FirstOrDefault(x => x.EventId == eventId).CategoryId;
                if (context.RuleSets.Where(e => e.CateogryId == eventCategoryId).FirstOrDefault() != null)
                {
                    ruleSetId = context.RuleSets.Where(e => e.CateogryId == eventCategoryId).FirstOrDefault().RuleSetId;
                }
                else { return ruleList; }
            }

            List<RuleSet> ruleSets = context.RuleSets.Where(rs => rs.RuleSetId == ruleSetId).OrderBy(rs => rs.Priority).ToList<RuleSet>();

            foreach (RuleSet rs in ruleSets)
            {
                Rule rule = context.Rules.FirstOrDefault(r => r.RuleId == rs.RuleId);
                int param = (rs.RuleParameter != null) ? (int)rs.RuleParameter : 0;
                ruleList.Add(new RuleParameter { Rule = rule, Param = param });
            }
            return ruleList;
        }

Usage Example

Ejemplo n.º 1
0
 private void ApplyRulesForEvent()
 {
     if (ApplyRules)
     {
         var repository = new DrawingRepository();
         List<RuleParameter> rules = repository.GetRulesForEvent(eventId);
         foreach (RuleParameter rp in rules)
         {
             InvokeRuleMethod(rp);
         }
     }
 }