56 lines
1.7 KiB
C#
56 lines
1.7 KiB
C#
//
|
|
// 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 class CheckRules
|
|
{
|
|
private static 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<Message> messages = DBManager.Instance.GetMessagesForCore(core);
|
|
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");
|
|
}
|
|
}
|
|
}
|
|
}
|