Пример #1
0
        /// <summary>
        ///     Salva o documento.
        /// </summary>
        /// <param name="stream">The stream.</param>
        /// <param name="options">The options.</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>TDocument.</returns>
        public virtual void Save(Stream stream, DFeSaveOptions options = DFeSaveOptions.DisableFormatting, Encoding encoding = null)
        {
            var serializer = new DFeSerializer <TDocument>();

            if (!options.HasFlag(DFeSaveOptions.None))
            {
                serializer.Options.RemoverAcentos   = options.HasFlag(DFeSaveOptions.RemoveAccents);
                serializer.Options.RemoverEspacos   = options.HasFlag(DFeSaveOptions.RemoveSpaces);
                serializer.Options.FormatarXml      = !options.HasFlag(DFeSaveOptions.DisableFormatting);
                serializer.Options.OmitirDeclaracao = options.HasFlag(DFeSaveOptions.OmitDeclaration);
            }

            if (encoding != null)
            {
                serializer.Options.Encoding = encoding;
            }

            serializer.Serialize(this, stream);

            using (var ms = new MemoryStream())
            {
                stream.CopyTo(ms);
                stream.Position = 0;
                using (var reader = new StreamReader(ms, serializer.Options.Encoding)) Xml = reader.ReadToEnd();
            }
        }
Пример #2
0
        private DFeSerializer <T> GetSerializer <T>() where T : class
        {
            var serializer = DFeSerializer.CreateSerializer <T>();

            serializer.Options.RemoverAcentos = Configuracoes.RemoverAcentos;
            return(serializer);
        }
Пример #3
0
        public static CFe Load(Stream stream, Encoding encoding = null)
        {
            var serializer = DFeSerializer.CreateSerializer <CFe>();

            if (encoding != null)
            {
                serializer.Options.Encoder = encoding;
            }
            return(serializer.Deserialize(stream));
        }
Пример #4
0
        public static SatRede Load(string path, Encoding encoding = null)
        {
            var serializer = DFeSerializer.CreateSerializer <SatRede>();

            if (encoding != null)
            {
                serializer.Options.Encoder = encoding;
            }
            return(serializer.Deserialize(path));
        }
        /// <summary>
        /// Carrega a assinatura do Xml.
        /// </summary>
        /// <param name="element">The element.</param>
        /// <returns>DFeSignature.</returns>
        protected DFeSignature LoadSignature(XElement element)
        {
            if (element == null)
            {
                return(new DFeSignature());
            }

            var serializer = DFeSerializer.CreateSerializer <DFeSignature>();

            return(serializer.Deserialize(element.ToString()));
        }
Пример #6
0
        /// <summary>
        /// Carrega o documento.
        /// </summary>
        /// <param name="document">The document.</param>
        /// <param name="encoding"></param>
        /// <returns>TDocument.</returns>
        public static TDocument Load(Stream document, Encoding encoding = null)
        {
            var serializer = new DFeSerializer(typeof(TDocument));

            if (encoding != null)
            {
                serializer.Options.Encoder = encoding;
            }

            return((TDocument)serializer.Deserialize(document));
        }
Пример #7
0
        /// <summary>
        ///     Carrega o documento.
        /// </summary>
        /// <param name="document">The document.</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>TDocument.</returns>
        public static TDocument Load(string document, Encoding encoding = null)
        {
            var serializer = new DFeSerializer <TDocument>();

            if (encoding != null)
            {
                serializer.Options.Encoding = encoding;
            }

            var content = File.Exists(document) ? File.ReadAllText(document, serializer.Options.Encoding) : document;
            var ret     = serializer.Deserialize(document);

            (ret as DFeDocument <TDocument>).Xml = content;
            return(ret);
        }
        /// <summary>
        /// Retornar o XML da assinatura ou nulo caso não tenha nada.
        /// </summary>
        /// <param name="signature">The signature.</param>
        /// <returns>XElement.</returns>
        protected XElement WriteSignature(DFeSignature signature)
        {
            if (signature.SignatureValue.IsEmpty() || signature.SignedInfo.Reference.DigestValue.IsEmpty() ||
                signature.KeyInfo.X509Data.X509Certificate.IsEmpty())
            {
                return(null);
            }

            var ms         = new MemoryStream();
            var serializer = DFeSerializer.CreateSerializer <DFeSignature>();

            if (!serializer.Serialize(signature, ms))
            {
                return(null);
            }

            return(XElement.Load(ms));
        }
Пример #9
0
        /// <summary>
        /// Salva o documento.
        /// </summary>
        /// <param name="stream">The stream.</param>
        /// <param name="options">The options.</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>TDocument.</returns>
        public void Save(Stream stream, DFeSaveOptions options = DFeSaveOptions.None, Encoding encoding = null)
        {
            var serializer = new DFeSerializer(typeof(TDocument));

            if (!options.HasFlag(DFeSaveOptions.None))
            {
                serializer.Options.RemoverAcentos   = options.HasFlag(DFeSaveOptions.RemoveAccents);
                serializer.Options.FormatarXml      = !options.HasFlag(DFeSaveOptions.DisableFormatting);
                serializer.Options.OmitirDeclaracao = !options.HasFlag(DFeSaveOptions.OmitDeclaration);
            }

            if (encoding != null)
            {
                serializer.Options.Encoder = encoding;
            }

            serializer.Serialize(this, stream);
        }
Пример #10
0
        /// <summary>
        ///     Carrega o documento.
        /// </summary>
        /// <param name="document">The document.</param>
        /// <param name="encoding"></param>
        /// <returns>TDocument.</returns>
        public static TDocument Load(Stream document, Encoding encoding = null)
        {
            var serializer = new DFeSerializer <TDocument>();

            if (encoding != null)
            {
                serializer.Options.Encoding = encoding;
            }

            using (var reader = new StreamReader(document, serializer.Options.Encoding))
            {
                document.Position = 0;

                var content = reader.ReadToEnd();
                var ret     = serializer.Deserialize(content);
                (ret as DFeDocument <TDocument>).Xml = content;
                return(ret);
            }
        }
Пример #11
0
        /// <summary>
        ///     Salva o documento.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <param name="options">The options.</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>TDocument.</returns>
        public virtual void Save(string path, DFeSaveOptions options = DFeSaveOptions.DisableFormatting, Encoding encoding = null)
        {
            var serializer = new DFeSerializer <TDocument>();

            if (!options.HasFlag(DFeSaveOptions.None))
            {
                serializer.Options.RemoverAcentos   = options.HasFlag(DFeSaveOptions.RemoveAccents);
                serializer.Options.RemoverEspacos   = options.HasFlag(DFeSaveOptions.RemoveSpaces);
                serializer.Options.FormatarXml      = !options.HasFlag(DFeSaveOptions.DisableFormatting);
                serializer.Options.OmitirDeclaracao = options.HasFlag(DFeSaveOptions.OmitDeclaration);
            }

            if (encoding != null)
            {
                serializer.Options.Encoding = encoding;
            }

            serializer.Serialize(this, path);
            Xml = File.ReadAllText(path, serializer.Options.Encoding);
        }
Пример #12
0
        /// <summary>
        /// Loads the c fe.
        /// </summary>
        /// <param name="stream">The stream.</param>
        /// <returns>CFe.</returns>
        public static CFeCanc Load(Stream stream, Encoding encoding = null)
        {
            var serializer = DFeSerializer.CreateSerializer <CFeCanc>();

            return(serializer.Deserialize(stream));
        }
Пример #13
0
        /// <summary>
        /// Loads the c fe.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <returns>CFe.</returns>
        public static CFeCanc Load(string path, Encoding encoding = null)
        {
            var serializer = DFeSerializer.CreateSerializer <CFeCanc>();

            return(serializer.Deserialize(path));
        }