Example #1
0
        private decimal ScoreSingleRule(FraudCheckData data, FraudRule rule)
        {
            decimal result = 0;

            switch (rule.RuleType)
            {
            case FraudRuleType.CreditCardNumber:
                if (rule.RuleValue == data.CreditCard)
                {
                    result += 7;
                    data.Messages.Add("Credit Card Matched Fraud Rules");
                }
                break;

            case FraudRuleType.DomainName:
                if (rule.RuleValue == data.DomainName)
                {
                    result += 3;
                    data.Messages.Add("Domain Matched Fraud Rules");
                }
                break;

            case FraudRuleType.EmailAddress:
                if (rule.RuleValue == data.EmailAddress)
                {
                    result += 5;
                    data.Messages.Add("Email Address Matched Fraud Rules");
                }
                break;

            case FraudRuleType.IPAddress:
                if (rule.RuleValue == data.IpAddress)
                {
                    result += 1;
                    data.Messages.Add("IP Address Fraud Rules");
                }
                break;

            case FraudRuleType.PhoneNumber:
                if (rule.RuleValue == data.PhoneNumber)
                {
                    result += 3;
                    data.Messages.Add("Phone Number Matched Fraud Rules");
                }
                break;
            }
            return(result);
        }
Example #2
0
        public decimal ScoreData(FraudCheckData data)
        {
            decimal result = 0;

            List<FraudRule> storeRules = _repository.FindForStore(_context.CurrentStore.Id);
            if (storeRules == null) return result;

            foreach (FraudRule rule in storeRules)
            {
                result += ScoreSingleRule(data, rule);
            }

            if (result > 10) result = 10;

            return result;
        }
Example #3
0
        private decimal ScoreSingleRule(FraudCheckData data, FraudRule rule)
        {
            decimal result = 0;

            switch (rule.RuleType)
            {
                case FraudRuleType.CreditCardNumber:
                    if (rule.RuleValue == data.CreditCard)
                    {
                        result += 7;
                        data.Messages.Add("Credit Card Matched Fraud Rules");
                    }
                    break;
                case FraudRuleType.DomainName:
                    if (rule.RuleValue == data.DomainName)
                    {
                        result += 3;
                        data.Messages.Add("Domain Matched Fraud Rules");
                    }
                    break;
                case FraudRuleType.EmailAddress:
                    if (rule.RuleValue == data.EmailAddress)
                    {
                        result += 5;
                        data.Messages.Add("Email Address Matched Fraud Rules");
                    }
                    break;
                case FraudRuleType.IPAddress:
                    if (rule.RuleValue == data.IpAddress)
                    {
                        result += 1;
                        data.Messages.Add("IP Address Fraud Rules");
                    }
                    break;
                case FraudRuleType.PhoneNumber:
                    if (rule.RuleValue == data.PhoneNumber)
                    {
                        result += 3;
                        data.Messages.Add("Phone Number Matched Fraud Rules");
                    }
                    break;
            }
            return result;
        }
Example #4
0
        public decimal ScoreData(FraudCheckData data)
        {
            decimal result = 0;

            List <FraudRule> storeRules = _repository.FindForStore(_context.CurrentStore.Id);

            if (storeRules == null)
            {
                return(result);
            }

            foreach (FraudRule rule in storeRules)
            {
                result += ScoreSingleRule(data, rule);
            }

            if (result > 10)
            {
                result = 10;
            }

            return(result);
        }