private void InitialiseTheRulesCollections(List<MatchingRule> repoRules)
{
this.matchingRules.AddRange(repoRules);
IEnumerable<RulesGroupedByBucket> grouped = repoRules.GroupBy(rule => rule.Bucket)
.Where(group => @group.Key != null)
// this is to prevent showing rules that have a bucket code not currently in the current budget model. Happens when loading the demo or empty budget model.
.Select(group => new RulesGroupedByBucket(@group.Key, @group))
.OrderBy(group => @group.Bucket.Code);
this.matchingRulesGroupedByBucket.AddRange(grouped);
}