54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| 
 | |
| namespace Csla.Validation
 | |
| {
 | |
|   /// <summary>
 | |
|   /// Maintains a list of all the per-type
 | |
|   /// <see cref="ValidationRulesManager"/> objects
 | |
|   /// loaded in memory.
 | |
|   /// </summary>
 | |
|   internal static class SharedValidationRules
 | |
|   {
 | |
|     private static Dictionary<Type, ValidationRulesManager> _managers = 
 | |
|       new Dictionary<Type, ValidationRulesManager>();
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Gets the <see cref="ValidationRulesManager"/> for the 
 | |
|     /// specified object type, optionally creating a new instance 
 | |
|     /// of the object if necessary.
 | |
|     /// </summary>
 | |
|     /// <param name="objectType">
 | |
|     /// Type of business object for which the rules apply.
 | |
|     /// </param>
 | |
|     /// <param name="create">Indicates whether to create
 | |
|     /// a new instance of the object if one doesn't exist.</param>
 | |
|     internal static ValidationRulesManager GetManager(Type objectType, bool create)
 | |
|     {
 | |
|       ValidationRulesManager result = null;
 | |
|       if (!_managers.TryGetValue(objectType, out result) && create)
 | |
|       {
 | |
|         lock (_managers)
 | |
|         {
 | |
|           result = new ValidationRulesManager();
 | |
|           _managers.Add(objectType, result);
 | |
|         }
 | |
|       }
 | |
|       return result;
 | |
|     }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Gets a value indicating whether a set of rules
 | |
|     /// have been created for a given <see cref="Type" />.
 | |
|     /// </summary>
 | |
|     /// <param name="objectType">
 | |
|     /// Type of business object for which the rules apply.
 | |
|     /// </param>
 | |
|     /// <returns><see langword="true" /> if rules exist for the type.</returns>
 | |
|     public static bool RulesExistFor(Type objectType)
 | |
|     {
 | |
|       return _managers.ContainsKey(objectType);
 | |
|     }
 | |
|   }
 | |
| }
 |