none
Como passar para outras classes esse codigo inteiro?: RRS feed

  • Pergunta

  • Boa tarde pessoal, mais uma pergunta de estágiario aqui.

    tenho esse codigo, que importa as informacoes de um arquivo txt e passa para nosso banco de dados.

    mas meu chefe me falou que isso aqui nao é c ou c++, isso aq é c#, entao n e programacao estruturada... e esse codigo eu fiz todo numa pagina so.

    o que e como eu poderia passar para classes diferentes esse codigo abaixo? alguem pode me ajudar?

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.ServiceProcess;
    using System.Threading;
    using System.Data.SqlClient;
    using CarrefourAtacadaoServico.Model;
    using CarrefourAtacadaoServico.Util;

    namespace CarrefourAtacadaoServico
    {
        public partial class Service1 : ServiceBase
        {
            Timer timer1;
            public Service1()
            {
                InitializeComponent();
                //timer1 = new Timer(new TimerCallback(IniciaServico), null, 10000, 1800000);
                #if DEBUG
                OnStart(new string[] {});
                #endif
            }

            protected override void OnStart(string[] args)
            {
                IniciaServico(this);
                var dt = RetornaDataTableLog.GetDataTableLog("Iniciado", null, null);
                RealizaBulkInsertSalvaLog.ExecultaBulkInsert(dt);
            }

            protected override void OnStop()
            {
                var dt = RetornaDataTableLog.GetDataTableLog("Parado", null, null);
                RealizaBulkInsertSalvaLog.ExecultaBulkInsert(dt);
            }

            public void IniciaServico(object obj)
            {
                DirectoryInfo di = new DirectoryInfo(@"C:\Temporario\horaProjetos");

                foreach (var arquivo in di.GetFiles())
                {
                    
                    if (arquivo.Name.Contains("Hora_a_Hora"))
                    {
                        string novoTxt = arquivo.Name.Substring(12, 10);

                        List<HoraHoraModel> objModel = new List<HoraHoraModel>();

                        if (novoTxt == DateTime.Today.ToString("yyyy-MM-dd"))
                        {
                            using (StreamReader leitorArquivos = new StreamReader(arquivo.FullName))
                            {                            
                                string linha = leitorArquivos.ReadLine();
                                string[] linhaSeparada;

                                while (linha != null)
                                {

                                    linha = leitorArquivos.ReadLine();
                                    linhaSeparada = linha.Split(';');

                                    objModel.Add(new HoraHoraModel
                                    {
                                        Agencia = Convert.ToInt16(linhaSeparada[0]),
                                        Conta = Convert.ToInt16(linhaSeparada[1]),
                                        Data_Acion = Convert.ToDateTime(linhaSeparada[2]),
                                        Hora = Convert.ToDateTime(linhaSeparada[3]),
                                        CodAcao = Convert.ToInt16(linhaSeparada[4]),
                                        CodResult = Convert.ToInt16(linhaSeparada[5]),
                                        Atraso = Convert.ToInt32(linhaSeparada[6]),
                                        UserId = Convert.ToInt32(linhaSeparada[7])
                                    });
                                    string conexaoString =
                                    "Data Source=*****; " +
                                    "Database=*****;" +
                                    "Persist Security Info=True;" +
                                    "User ID=*****;" +
                                    "Password=*****";
                                    SqlConnection conexaoSql = new SqlConnection(conexaoString);
                                    //instrucao do sql server

                                    string sql = "INSERT INTO BULKACTIONS_HORA_A_HORA_CARREFOUR (AGENCIA, CONTA, DATA_ACTION, HORA, CODACAO, CODRESULT, ATRASO, USERID) "
                                               + "VALUES ( @AGENCIA, @ACONTA, @DATA_ACTION, @HORA, @CODACAO, @CODRESULT, @ATRASO, @USERID )";
                                    SqlCommand cmd = new SqlCommand(sql, conexaoSql);
                                    cmd.Parameters.Clear();
                                    cmd.Parameters.AddWithValue("@AGENCIA", objModel[0]);
                                    cmd.Parameters.AddWithValue("@CONTA", objModel[1]);
                                    cmd.Parameters.AddWithValue("@DATA_ACTION", objModel[2]);
                                    cmd.Parameters.AddWithValue("@HORA", objModel[3]);
                                    cmd.Parameters.AddWithValue("@CODACAO", objModel[4]);
                                    cmd.Parameters.AddWithValue("@CODRESULT", objModel[5]);
                                    cmd.Parameters.AddWithValue("@ATRASO", objModel[6]);
                                    cmd.Parameters.AddWithValue("@USERID", objModel[7]);
                                    cmd.ExecuteNonQuery();

                                }leitorArquivos.Dispose();
                            }                       
                        }
                    }
                }
            }
        }
    }

    quinta-feira, 18 de julho de 2019 18:23

Todas as Respostas

  • A forma mais primitiva é copiando as partes que podem ser usadas por outras classes do seu projeto. Você as classes nomeando-as de acordo com boas práticas com nomes que facilitem identificação do que cada classe irá fazer. Assim você melhora a manutenção e divide a responsabilidade de cada coisa dentro do projeto.

    Claro, você precisa conhecer o mínimo de orientação a objetos, instância de classe, etc.

    quinta-feira, 18 de julho de 2019 18:55
  • Isso eu ja sei amigo, foi o que eu perguntei, minha duvida é ,o que ,  onde e como usar?:?
    quinta-feira, 18 de julho de 2019 19:07