git_bsmd/nsw/Source/bsmd.Tool/CheckRules.cs
Daniel Schick f596558610 Version 3.1.1 Korrekturen und
DB Erweiterung für ENI-2 (Historisierung)
2016-05-26 08:12:25 +00:00

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, 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");
}
}
}
}