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); }