public RegistrationRuleRecord AddRule(bool checkUserOnRegistration, string rule, string ruleOperator, string ruleAction, bool inculusionRule, RoleTargetRecord roleTarget)
        {
            var model = new RegistrationRuleRecord()
                            {
                                RuleName = rule,
                                Operator = ruleOperator,
                                RuleAction = ruleAction,
                                InculusionRule = inculusionRule,
                                RoleTargetRecord = roleTarget
                            };

            this.ruleRepository.Create(model);

            return model;
        }
        private bool CheckRole(IUser user, RegistrationRuleRecord ruleRecord)
        {
            if (string.IsNullOrWhiteSpace(user.Email))
                return false;

            var split = new char[]{ ',', '|' };
            var availableRules = ruleRecord.RuleAction
                .Split(split, StringSplitOptions.RemoveEmptyEntries)
                .Select(e=> e.Trim())
                .Where(e=> e.Length > 0)
                .ToArray();

            switch (ruleRecord.Operator)
            {
                    //{ text: "Equals" },
                    //    { text: "Begins with" },
                    //    { text: "Ends with" },
                    //    { text: "Contains" }
                case "Equals": { return availableRules.Any(e => e.Equals(user.Email, StringComparison.CurrentCultureIgnoreCase)); }
                case "Begins with": { return availableRules.Any(e => user.Email.IndexOf(e, StringComparison.CurrentCultureIgnoreCase) == 0); }
                case "Ends with": { return availableRules.Any(e => user.Email.EndsWith(e, StringComparison.CurrentCultureIgnoreCase)); }
                case "Contains": { return availableRules.Any(e => user.Email.IndexOf(e, StringComparison.CurrentCultureIgnoreCase) >= 0 ); }
            }

            return false;
        }
        public bool SatisfyRule(IUser user, RegistrationRuleRecord ruleRecord)
        {
            var checkedValue = this.CheckRole(user, ruleRecord);

            return checkedValue;
        }
 public void UpdateRule(RegistrationRuleRecord model)
 {
     this.ruleRepository.Update(model);
 }
 public void RemoveRule(RegistrationRuleRecord rule)
 {
     this.ruleRepository.Delete(rule);
 }