public static bool ApproveFraudReport(byte[] fraudId, byte[] signature)
        {
            FraudEntry fraudEntry = FraudStorageManager.ReadFraudEntry(fraudId);

            if (fraudEntry.FraudId == null)
            {
                Logger.log("Can not find fraud with Id");
                return(false);
            }

            if (fraudEntry.Status != FraudStatus.REPORTED)
            {
                Logger.log("Invalid Fraud Report Status");
                return(false);
            }

            Logger.log("Starting Validate Signature For Report Approve Request");
            bool signatureValidationResult =
                SignatureValidator.CheckApproveFraudRequestSignature(fraudId, signature);

            if (!signatureValidationResult)
            {
                Logger.log("Approve Fraud Request signature Invalid");
                return(false);
            }
            Logger.log("Validated Signature For Approve Fraud Request");

            fraudEntry.Status = FraudStatus.APPROVED;
            fraudEntry.ApproveRejectOperationDate = TransactionContentUtil.retrieveTransactionTime();
            FraudStorageManager.updateFraudEntry(fraudEntry);
            //todo: add fraud notification after log infrastructure fixed

            return(true);
        }
        public static object LogFraudReportStatus(object[] args)
        {
            byte[]     fraudId    = (byte[])args[0];
            FraudEntry fraudEntry = FraudStorageManager.ReadFraudEntry(fraudId);

            if (fraudEntry.FraudId == null)
            {
                Logger.log("Can not find Fraud Report");
            }
            else
            {
                Logger.log("Fraud Report Exists in Storage");
                Logger.log(fraudEntry.FraudId);
                Logger.log(fraudEntry.FakeButValidCertificateHash);
                Logger.log(fraudEntry.Reporter);
                Logger.log(fraudEntry.Status);
            }

            return(true);
        }