public EsitoCheckFileSigned CheckSignTimeStampFileInfo2(string FileToVerifiy, string FileToVerifiyWithoutSign)
        {
            EsitoCheckFileSigned oEsitoCheckFileSigned = new EsitoCheckFileSigned();

            try
            {
                //				const string FileToVerifiy = @"C:\Users\GTorelli\Desktop\Firmati Marcati\Notifica_6789_20040312110300.pdf.p7m";
                SC.FileIni = @"arcsql35.ini";
                _Logger.WriteOnLog(_sLogId, "Verifico la firma", 3);
                using (var signSC = new SC(true))
                {
                    _Logger.WriteOnLog(_sLogId, "Eseguo la verifica", 3);
                    var checkResult = signSC.Verify(FileToVerifiy, VerifyDegree.StandardVerify, SaveOption.SaveSignContent, @FileToVerifiyWithoutSign);
                    _Logger.WriteOnLog(_sLogId, _Logger.ToJson(checkResult), 3);
                    var sPathFileDecrypted = @checkResult.ContentFileName;
                    if (File.Exists(sPathFileDecrypted))
                    {
                        oEsitoCheckFileSigned.FileNameDecrypt    = checkResult.ContentFileName;
                        oEsitoCheckFileSigned.byteContentDecrypt = FileUtil.ReadFully(sPathFileDecrypted);
                    }
                    if (checkResult.SignaturesValid == true)
                    {
                        oEsitoCheckFileSigned.Check       = true;
                        oEsitoCheckFileSigned.Descrizione = "Il file di tipo P7M è stato correttamente validato.";
                    }             // true
                    else if (checkResult.SignaturesValid == false)
                    {
                        oEsitoCheckFileSigned.Check       = false;
                        oEsitoCheckFileSigned.Descrizione = "Il file di tipo PDF NON è valido.";
                    }             // false
                    else
                    {
                        oEsitoCheckFileSigned.Check       = false;
                        oEsitoCheckFileSigned.Descrizione = "Il file non è firmato.";
                    }             // null
                }
            }
            catch (Exception ex)
            {
                _Logger.WriteOnLog(_sLogId, ex.StackTrace + " - " + ex.Message + " - " + ex.Source, 1);
                throw new ArgumentException(ex.Message + " - " + ex.StackTrace);
            }
            return(oEsitoCheckFileSigned);
        }
        public EsitoCheckFileSigned CheckSignTimeStampFileInfo(WcfSiavLoginManager wcfSiavLoginManager, string Filename, byte[] aFileBin, bool mustDecrypted)
        {
            OCF_Ws.WsSign.SignTimeStampFileInfo oSignTimeStampFileInfo;
            EsitoCheckFileSigned oEsitoCheckFileSigned = new EsitoCheckFileSigned();

            oSignTimeStampFileInfo = null;
            try
            {
                OCF_Ws.WsSign.ResultInfo oResult = OCF_Ws.WsSign.ResultInfo.OK;
                // call the WCF service contract to get an user information (the user with ID=0)
                OCF_Ws.WsSign.SessionInfo oSessionInfo = new OCF_Ws.WsSign.SessionInfo();
                oSessionInfo.SessionId = wcfSiavLoginManager.oSessionInfo.SessionId;
                oResult = Sign.GetSignTimeStampFileInfo(out oSignTimeStampFileInfo, oSessionInfo, Filename, aFileBin, mustDecrypted);

                if (oResult == OCF_Ws.WsSign.ResultInfo.OK)
                {
                    if (oSignTimeStampFileInfo.IsSignedP7M)
                    {
                        oEsitoCheckFileSigned.FileNameDecrypt    = Filename;
                        oEsitoCheckFileSigned.byteContentDecrypt = oSignTimeStampFileInfo.DecryptedFile;

                        if (oSignTimeStampFileInfo.IsSignedP7MValid)
                        {
                            oEsitoCheckFileSigned.Check       = true;
                            oEsitoCheckFileSigned.Descrizione = "Il file di tipo P7M è stato correttamente validato.";
                        }
                        else
                        {
                            oEsitoCheckFileSigned.Check       = false;
                            oEsitoCheckFileSigned.Descrizione = "2 – Documento con firma NON valida.";
                        }
                    }
                    else if (oSignTimeStampFileInfo.IsSignedPdf)
                    {
                        oEsitoCheckFileSigned.FileNameDecrypt    = Filename;
                        oEsitoCheckFileSigned.byteContentDecrypt = oSignTimeStampFileInfo.DecryptedFile;

                        if (oSignTimeStampFileInfo.IsSignedPdfValid)
                        {
                            oEsitoCheckFileSigned.Check       = true;
                            oEsitoCheckFileSigned.Descrizione = "Il file di tipo PDF è stato correttamente validato.";
                        }
                        else
                        {
                            oEsitoCheckFileSigned.Check       = false;
                            oEsitoCheckFileSigned.Descrizione = "2 – Documento con firma NON valida.";
                        }
                    }
                    else if (oSignTimeStampFileInfo.IsSignedXml)
                    {
                        oEsitoCheckFileSigned.FileNameDecrypt    = Filename;
                        oEsitoCheckFileSigned.byteContentDecrypt = oSignTimeStampFileInfo.DecryptedFile;

                        if (oSignTimeStampFileInfo.IsSignedXmlValid)
                        {
                            oEsitoCheckFileSigned.Check       = true;
                            oEsitoCheckFileSigned.Descrizione = "Il file di tipo XML è stato correttamente validato.";
                        }
                        else
                        {
                            oEsitoCheckFileSigned.Check       = false;
                            oEsitoCheckFileSigned.Descrizione = "2 – Documento con firma NON valida.";
                        }
                    }
                    else if (oSignTimeStampFileInfo.IsTimeStamp)
                    {
                        oEsitoCheckFileSigned.FileNameDecrypt    = Filename;
                        oEsitoCheckFileSigned.byteContentDecrypt = oSignTimeStampFileInfo.DecryptedFile;

                        if (oSignTimeStampFileInfo.IsTimeStampValid)
                        {
                            oEsitoCheckFileSigned.Check       = true;
                            oEsitoCheckFileSigned.Descrizione = "Il file ha la marcatura temporale correttamente validata.";
                        }
                        else
                        {
                            oEsitoCheckFileSigned.Check       = false;
                            oEsitoCheckFileSigned.Descrizione = "Il file ha la marcatura temporale non valida.";
                        }
                    }
                }
                else
                {
                    throw new ArgumentException("Errore ricezione dati file");
                }
            }
            catch (FaultException <ArchiflowServiceExceptionDetail> fex)
            {
                throw new ArgumentException(fex.Detail.Message);
            }
            catch (Exception ex)
            {
                throw new ArgumentException(ex.Message);
            }
            return(oEsitoCheckFileSigned);
        }