using System; using System.Data.OracleClient; using CCSTrace.CCS.Object; using NLog; namespace CCSTrace.CCS.Function { public class MergeCase { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private EOSEventRecord _lEventrecord; private EventAI.JudgeCase _mJudgeCase; public MergeCase() { } public void Merge(EOSEventRecord eosEventRecord, OracleConnection conn, OracleTransaction trx, string traceConnection) { try { _mJudgeCase = new EventAI.JudgeCase(eosEventRecord.FdrId, eosEventRecord.Fsc, eosEventRecord.Ufid, eosEventRecord.CaseId, eosEventRecord.AcceptDate, conn, trx, traceConnection); _lEventrecord = eosEventRecord; _mJudgeCase.AiBegin(); _lEventrecord.ParentId = _mJudgeCase.GetParentCaseId(); _lEventrecord.Fsc = _mJudgeCase.GetInferEquipment().Fsc; _lEventrecord.Ufid = _mJudgeCase.GetInferEquipment().Ufid; } catch (EventAI.TraceLoopException tle) { Logger.Error(tle, tle.Message); throw; } catch (Exception e) { Logger.Error(e, e.Message); throw; } } public EventAI.Equipment GetOldEquipment() { return _mJudgeCase.GetOldrEquipment(); } } internal class TraceException : Exception { public TraceException() { } } }