Esempio n. 1
0
        /// <summary>
        /// Int conversion method
        /// </summary>
        /// <param name="valorConversao"></param>
        /// <param name="detalhes"></param>
        /// <returns></returns>
        private static int ConversaoInt(string valorConversao, RegistroBanco detalhes)
        {
            int valorConvertido = 0;

            try
            {
                valorConvertido = Convert.ToInt32(valorConversao.Replace('.', ','));
            }
            catch (Exception ex)
            {
                throw new ArgumentException("Valor inválido: " + valorConversao + " " + ex.Message);
            }
            return(valorConvertido);
        }
Esempio n. 2
0
        /// <summary>
        /// Date conversion method
        /// </summary>
        /// <param name="dataConversao"></param>
        /// <param name="detalhes"></param>
        /// <returns></returns>
        private static DateTime ConversaoData(String dataConversao, RegistroBanco detalhes)
        {
            DateTime dataConvertida = DateTime.MinValue;

            if (dataConversao.Length == 23)
            {
                try
                {
                    dataConvertida = new DateTime(Int32.Parse(dataConversao.Substring(0, 4))
                                                  , Int32.Parse(dataConversao.Substring(4, 2))
                                                  , Int32.Parse(dataConversao.Substring(6, 2))
                                                  , Int32.Parse(dataConversao.Substring(8, 2))
                                                  , Int32.Parse(dataConversao.Substring(10, 2))
                                                  , Int32.Parse(dataConversao.Substring(12, 2))
                                                  );
                }
                catch (Exception ex)
                {
                    throw new ArgumentException("Data inválida: " + dataConversao + " " + ex.Message);
                }
            }

            return(dataConvertida);
        }
Esempio n. 3
0
        /// <summary>
        ///
        /// OFX data reading method
        /// </summary>
        /// <param name="arquivoOFX">Path of OFX source file</param>
        public static RegistroBanco ExecutarLeitura(String arquivoOFX)
        {
            var arquivoXml = $"{arquivoOFX.Replace(".ofx", string.Empty)}.xml";

            OfxToXml(arquivoOFX, arquivoXml);

            String            leituraDados      = "";
            DetalhesTransacao detalhesTransacao = null;
            RegistroBanco     detalhes          = new RegistroBanco();

            XmlTextReader xmlTransformado = new XmlTextReader(arquivoXml);

            try
            {
                while (xmlTransformado.Read())
                {
                    if (xmlTransformado.NodeType == XmlNodeType.EndElement)
                    {
                        switch (xmlTransformado.Name)
                        {
                        case "STMTTRN":
                            if (detalhesTransacao != null)
                            {
                                detalhes.AdicionarTransacao(detalhesTransacao);
                                detalhesTransacao = null;
                            }
                            break;
                        }
                    }
                    if (xmlTransformado.NodeType == XmlNodeType.Element)
                    {
                        leituraDados = xmlTransformado.Name;

                        switch (leituraDados)
                        {
                        case "STMTTRN":
                            detalhesTransacao = new DetalhesTransacao();
                            break;
                        }
                    }
                    if (xmlTransformado.NodeType == XmlNodeType.Text)
                    {
                        switch (leituraDados)
                        {
                        case "CODE":
                            detalhes.Code = xmlTransformado.Value;
                            break;

                        case "SEVERITY":
                            detalhes.Severity = xmlTransformado.Value;
                            break;

                        case "DTSERVER":
                            detalhes.Dtserver = ConversaoData(xmlTransformado.Value, detalhes);
                            break;

                        case "LANGUAGE":
                            detalhes.Language = xmlTransformado.Value;
                            break;

                        case "TRNUID":
                            detalhes.Trnuid = xmlTransformado.Value;
                            break;

                        case "CURDEF":
                            detalhes.Curdef = xmlTransformado.Value;
                            break;

                        case "BANKID":
                            detalhes.Bankid = ConversaoInt(xmlTransformado.Value, detalhes);
                            break;

                        case "ACCTID":
                            detalhes.Acctid = xmlTransformado.Value;
                            break;

                        case "ACCTTYPE":
                            detalhes.Accttype = xmlTransformado.Value;
                            break;

                        case "DTSTART":
                            detalhes.Dtstart = ConversaoData(xmlTransformado.Value, detalhes);
                            break;

                        case "DTEND":
                            detalhes.Dtend = ConversaoData(xmlTransformado.Value, detalhes);
                            break;

                        case "TRNTYPE":
                            detalhesTransacao.Trntype = xmlTransformado.Value;
                            break;

                        case "DTPOSTED":
                            detalhesTransacao.Dtposted = ConversaoData(xmlTransformado.Value, detalhes);
                            break;

                        case "TRNAMT":
                            detalhesTransacao.Trnamt = ConversaoDouble(xmlTransformado.Value, detalhes);
                            break;

                        case "MEMO":
                            detalhesTransacao.Memo = string.IsNullOrEmpty(xmlTransformado.Value) ? "" : xmlTransformado.Value.Trim().Replace("  ", " ");
                            break;
                        }
                    }
                }
            }
            catch (XmlException ex)
            {
                throw new FileNotFoundException("Arquivo OFX inválido : " + arquivoOFX + " " + ex.Message);
            }
            finally
            {
                xmlTransformado.Close();
            }

            return(detalhes);
        }