Generate text file from an application console application

1

I need to tailor this method of an application Windows Forms link to Console Application , that is, instead of using the object saveFileDialog.ShowDialog() I have to create the file using another method of class Stream :

  

Method Used in the Windows Forms Application:

public void GeraArquivoCNAB400(IBanco banco, Cedente cedente, Boletos boletos)
{
    try
    {
        saveFileDialog.Filter = "Arquivos de Retorno (*.rem)|*.rem|Todos Arquivos (*.*)|*.*";
        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            ArquivoRemessa arquivo = new ArquivoRemessa(TipoArquivo.CNAB400);

            //Valida a Remessa Correspondentes antes de Gerar a mesma...
            string vMsgRetorno = string.Empty;
            bool vValouOK = arquivo.ValidarArquivoRemessa(cedente.Convenio.ToString(), banco, cedente, boletos, 1, out vMsgRetorno);
            if (!vValouOK)
            {
                MessageBox.Show(String.Concat("Foram localizados inconsistências na validação da remessa!", Environment.NewLine, vMsgRetorno),
                                "Teste",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            else
            {
                arquivo.GerarArquivoRemessa("0", banco, cedente, boletos, saveFileDialog.OpenFile(), 1);

                MessageBox.Show("Arquivo gerado com sucesso!", "Teste",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

I need to adapt to be used in a Console Application application.

    
asked by anonymous 10.03.2016 / 01:41

2 answers

2

Just remove the dependencies from System.Windows.Forms . SaveFileDialog and MessageBox are two things you can not use because they are part of the System.Windos.Forms namespace.

As the path of the file is coming from SaveFileDialog , you have to pass the path "manually" or develop some function that allows the user to choose this path is not specified in the question).

I put messages from MessageBox on the console.

public void GeraArquivoCNAB400(IBanco banco, Cedente cedente, Boletos boletos)
{    
    ArquivoRemessa arquivo = new ArquivoRemessa(TipoArquivo.CNAB400);

    //Valida a Remessa Correspondentes antes de Gerar a mesma...
    string vMsgRetorno = string.Empty;
    bool vValouOK = arquivo.ValidarArquivoRemessa(cedente.Convenio.ToString(), banco, cedente, boletos, 1, out vMsgRetorno);

    if (!vValouOK)
    {
        Console.WriteLine(String.Concat("Foram localizados inconsistências na validação da remessa!", Environment.NewLine, vMsgRetorno));
    }
    else
    {
        arquivo.GerarArquivoRemessa("0", banco, cedente, boletos, new FileStream(@"C:\PastaQualquer\Arquivo.txt", FileAccess.Write), 1);
        //No lugar de C:\PastaQualquer\Arquivo.txt você coloca o caminho do arquivo

        Console.WriteLine("Arquivo gerado com sucesso!");
    }
}
    
10.03.2016 / 12:14
3

Take all parts of Windows Forms. The name of the file that is coming from saveFileDialog.OpenFile() will be replaced in general lines by (example):

new FileStream("caminho do arquivo aqui", FileAccess.Write);

Documentation . It may vary as needed.

Other ways may be more appropriate depending on the situation.

    
10.03.2016 / 02:28