Implementation of warning storage I implemented type (UserRuleManager) that will apply list of rules to entity User. I need your code review and your advices.

Here is usage of that type 

private void ProcessUser(User user) 
{
    if (!_userRuleManager.ApplyGeneralRules(user)) 
    {
        SetWarning();
    } else if (!_userRuleManager.ApplySpecificRules(user)) {
        SetWarning();
    } else {
        CreateUser(user);
    }
}
private void SetWarning() 
{
    foreach (var warningMessage in _userRuleManager.GetWarnings()) 
    {
        Warnings.Add(warningMessage);
    }
}


I have 2 types of rule: general and specific.  First, I'm trying to apply general rules (ApplyGeneralRules) and if it is false then get list of warnings. The same for specific rules (ApplySpecificRules). 

In implementation of UserRuleManager I have:

private list of warnings:

   private readonly List&lt;string&gt; _warnings;


private property

    private bool IsVerified 
    {
        get { return _warnings.Count == 0; }
    }


method to return list with warnings

public ICollection&lt;string&gt; GetWarnings() 
{
    return _warnings;
}


method for general rules

public bool ApplyGeneralRules(User user) 
{
    _warnings.Clear();
    ICollection&lt;Rule&gt; rules = _userRepository.GetActiveGeneralRules(user.CustomerId);

    foreach (Rule rule in rules.OrderBy(x =&gt; x.Order)) 
    {           
        if (RuleChecker.IsVerified(rule, user)) 
        {
            _warnings.Add(string.Format("General rule : {0}", rule.TypeId));
        }
    }

    return IsVerified;
}


and method for specific rules

public bool ApplySpecificRules(User user) 
{
    _warnings.Clear();
    var questions = GetQuestions(user);

    if (!questions.Any()) 
    {
        _warnings.Add(string.Format("No questions with code {0}", user.QuestionCodeId));
        return false;
    }
    foreach (var question in questions.OrderBy(q =&gt; q.Order)) 
    {
        var rules = _userRepository.GetSpecificRules(user.CustomerId, question.Id);
        foreach (var rule in rules) 
        {
            if (!RuleChecker.IsVerified(rule, user)) 
            {
                _warnings.Add(string.Format("Specific rule: {0} -&gt; {1} -&gt; {2}", question.TypeId, question.CodeId, rule.TypeId));
            }
        }
    }

    return IsVerified;
}


Could you please give me advice how can I improve or maybe implement more proper relation between this entities. What the pattern can I use here? 
 Thank you in advance and let me know if I should give more information

UPDATE

public static bool IsVerified(Rule rule, User user) {

RuleParameterValue daysParameter = rule.RuleParameterValues.SingleOrDefault(v =&gt; v.RuleParameterTypeId == Rule.Parameter.Days);

if (daysParameter == null) {
    return false;
}

int days = daysParameter.IntValue;
DateTime? lastLoginDateUtc = _userRepository.GetLastLoginDate(user.Id);
if (lastLoginDateUtc == null || lastLoginDateUtc.Value.AddDays(days) &lt;= DateTime.UtcNow) {
    return true;
} else {
    return false;
}
}
The only criticism with the code is that your business rules are implemented in the third-party class UserRuleManager. This is OK if you are developing a a "rule system", but otherwise you should encapsulate the rules within the user class if they are about a user; the user factory if they are about how to create users; and the user repository (or data access class) if they are about how to persist and retrieve user objects.

Also, be wary if your class ends with "Manager"; it signals that the class will be responsible of too many things -- a God class.