public async Task <ActionResult <SignedXmlModel> > VerifyFile([FromForm] IFormFile file)    //XmlFile xmlFile
        {
            if (file?.Length > 0)
            {
                _logger.LogDebug("File Name - " + file.FileName);
                string contentString = await Adapter.ReadAsStringAsync(file);

                SignedXmlModel signedXml = Utility.GetSignedXmlModel(contentString);
                if (signedXml.success == false)
                {
                    return(BadRequest(signedXml));
                }
                else
                {
                    return(signedXml);
                }
            }
            else
            {
                SignedXmlModel signedXml = new SignedXmlModel();
                signedXml.error   = "A file Should be Uploaded";
                signedXml.success = false;
                return(BadRequest(signedXml));
            }
        }
        internal static SignedXmlModel GetSignedXmlModel(string contentString)
        {
            SignedXmlModel signedXml = new SignedXmlModel();
            bool           hasAnySignature;
            XmlDocument    xmlDoc = new XmlDocument();

            try {
                xmlDoc.LoadXml(contentString);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                signedXml.success = false;
                signedXml.error   = "File is not a valid XML";
                return(signedXml);
            }
            try
            {
                signedXml.xml = GetXmlStringBeforeSigning(xmlDoc, out hasAnySignature);
                if (hasAnySignature)
                {
                    List <CertificateModel> certs = XmlSign.GetAllSign(xmlDoc);
                    if (certs == null)
                    {
                        signedXml.success    = false;
                        signedXml.error      = "File was modified";
                        signedXml.xml        = null;
                        signedXml.signatures = null;
                        return(signedXml);
                    }
                    signedXml.signatures = certs;
                }
                return(signedXml);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                signedXml.success    = false;
                signedXml.error      = "Unknown Exception, Please check log File of XML Verifire Service";
                signedXml.xml        = null;
                signedXml.signatures = null;
                return(signedXml);
            }
        }
 public ActionResult <SignedXmlModel> VerifyXmlString([FromForm] string xml)
 {
     //string xml = Request.Form["xml"];
     if (xml?.Length == 0)
     {
         SignedXmlModel signedXml = new SignedXmlModel();
         signedXml.error   = "A xml string should be uploaded";
         signedXml.success = false;
         return(BadRequest(signedXml));
     }
     else
     {
         SignedXmlModel signedXml = Utility.GetSignedXmlModel(xml);
         if (signedXml.success == false)
         {
             return(BadRequest(signedXml));
         }
         else
         {
             return(signedXml);
         }
     }
 }