// // Class: CheckRules // Current CLR: 4.0.30319.42000 // System: Microsoft Visual Studio 10.0 // Author: dani // Created: 9/14/2015 8:58:04 PM // // Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved. using System; using System.Collections.Generic; using bsmd.database; using log4net; namespace bsmd.Tool { public static class CheckRules { private static readonly ILog log = LogManager.GetLogger("CheckRules"); public static void Check(Guid messageCoreId) { if(DBManager.Instance.Connect(Properties.Settings.Default.ConnectionString)) { MessageCore core = DBManager.Instance.GetMessageCoreById(messageCoreId); if (core != null) { // get messges List messages = DBManager.Instance.GetMessagesForCore(core, DBManager.MessageLoad.ALL); RuleEngine ruleEngine = new RuleEngine(); foreach(Message message in messages) { // clear old results DBManager.Instance.DeleteMessageErrors(message); DBManager.Instance.DeleteMessageViolations(message); // perform validation ruleEngine.Validate(message); } } else { log.Warn("cannot load message core from guid"); } DBManager.Instance.Disconnect(); } else { throw new ApplicationException("cannot connect to database"); } } } }