} // enum RowType private AutomationCalculator.AutoDecision.AutoReApproval.Agent RunSecondary() { var oSecondary = new AutomationCalculator.AutoDecision.AutoReApproval.Agent( DB, Log, Args.CustomerID, Args.CashRequestID, Args.NLCashRequestID, Trail.InputData.DataAsOf ); oSecondary.MakeDecision(oSecondary.GetInputData()); return(oSecondary); } // RunSecondary
} // Init public override void MakeAndVerifyDecision() { try { RunPrimary(); AutomationCalculator.AutoDecision.AutoReApproval.Agent oSecondary = RunSecondary(); WasMismatch = !Trail.EqualsTo(oSecondary.Trail); Log.Debug("Auto re-approval matching result: {0}match.", WasMismatch ? "mis" : string.Empty); if (!WasMismatch && Trail.HasDecided) { Log.Debug("Match and approved."); if (ApprovedAmount == oSecondary.Result.ReApproveAmount) { Log.Debug("Auto re-approval: match and approved and same amount of {0}.", ApprovedAmount); Trail.Affirmative <SameAmount>(false).Init(ApprovedAmount); oSecondary.Trail.Affirmative <SameAmount>(false).Init(oSecondary.Result.ReApproveAmount); } else { Log.Debug( "Auto re-approval: match and approved but different amounts: {0} primary vs {1} secondary.", ApprovedAmount, oSecondary.Result.ReApproveAmount ); Trail.Negative <SameAmount>(false).Init(ApprovedAmount); oSecondary.Trail.Negative <SameAmount>(false).Init(oSecondary.Result.ReApproveAmount); WasMismatch = true; } // if } // if Output.ApprovedAmount = ApprovedAmount; Trail.Save(DB, oSecondary.Trail); } catch (Exception e) { Log.Error(e, "Exception during re-approval."); StepFailed <ExceptionThrown>().Init(e); Output.ApprovedAmount = 0; } // try } // MakeAndVerifyDecision