public static void Start() { IEnumerable <Type> ruleTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(x => x.GetTypes()) .Where(x => typeof(IValidationRule).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract); var db = new BKDBContext(); foreach (var type in ruleTypes) { var rule = Activator.CreateInstance(type) as IValidationRule; var ruleModel = new ValidatorModel(rule); //Debug.WriteLine($"[ValidationRuleConfig.Start] Found {ruleModel}"); ValidatorModel _ruleModel = db.ValidatorModels.SingleOrDefault(x => x.FullName == ruleModel.FullName); if (_ruleModel == null) { Debug.WriteLine($"[ValidationRuleConfig.Start] Adding {ruleModel}"); db.ValidatorModels.Add(ruleModel); db.SaveChanges(); } } db.Dispose(); }
protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); }