jeudi 6 juillet 2017

How to "convert" a c# if else instruction into batch instructions

actually i did some code to Get files from a directory , compare their name with a substring and then applicate some cmd args on it to push .csv informations into SQL Server Database . It takes too much time and opens a lot of processes because of the number of differents files type , that's why i want to use a .bat file to do the job , but i don't have any idea about how to transform my instructions into batch language and make it run from my application . Here is my code , i hope you understand clearly my question , thanks .

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.IO;
using Microsoft.SqlServer;
using Microsoft.VisualBasic;
using Microsoft.CSharp;
using System.Diagnostics;
using System.Data;




namespace IMR
{
   class ProgramCSV // Début Programme
{

    // Fonction Main
    static void Main(string[] args)
    {

        // On apelle les deux .exe dans notre main

        Integration c = new Integration();
        c.UnixToDos();
        c.CsvToSql("");

        Console.WriteLine(" L'intégration a été effectuée avec succés à la base de données ");
        Console.ReadKey();
    }

}


public class Integration
{
    public void UnixToDos() //la fonction permettant de convertir de Unix à Dos
    {

        string strCmdText;


        DirectoryInfo dir = new DirectoryInfo("U:/FichiersINPI/IMR_Donnees_Saisies/tc/flux/2017/06/01/0101");
        Console.WriteLine("Recherche de fichier .csv :"); //Fonction de recherche de tout les fichiers .csv
        foreach (var Fi in Directory.GetFiles("U:/FichiersINPI/IMR_Donnees_Saisies/tc/flux/2017/06/01/0101", "*.csv", SearchOption.AllDirectories)) //On précise qu'on veut tout les répértoires
        {

            Console.WriteLine(Fi);
            Console.WriteLine(DateTime.Now);
            strCmdText = ("/C Unix2Dos " + Fi );   // On applique la commande pour chaque fichier CSV du repertoire 
            System.Diagnostics.Process.Start("CMD.exe", strCmdText);

            Console.WriteLine("Conversion effectuée !");


        }

    }


    public void CsvToSql(string strCmdText) // la méthode permettant d'entrer les données du CSV à la table SQL
    {



        DirectoryInfo dir = new DirectoryInfo("U:/FichiersINPI/IMR_Donnees_Saisies/tc/flux/2017/06/01/0101");
        Console.WriteLine("Recherche de fichier .csv :"); //Fonction de recherche des csv convertis précédemment 
        foreach (var Fi in Directory.GetFiles("U:/FichiersINPI/IMR_Donnees_Saisies/tc/flux/2017/06/01/0101", "*.csv", SearchOption.AllDirectories)) //On précise qu'on veut tout les répértoires
        {


            Console.WriteLine(Fi);
            Console.WriteLine(DateTime.Now); // On écrit les fichiers indexés 
            if (_CompareFileName(Fi, "1_PM.csv"))   // Boucle If pour les 13 types de fichiers 

            {
                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..PM /force");  //Personne Morale 
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi, "2_PM_EVT.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..PM_EVT /force");   //Evenement Personne Morale 
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi , "3_PP.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..PP /force");    // Personne Physique 
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi, "4_PP_EVT.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..PP_EVT /force");    //Evenement Personne Physique 
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi,  "5_rep.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..Rep /force");    // Représentants
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi , "6_rep_nouveau_modifie_EVT.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..Rep_new /force");   // Modification relative aux représentants
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi , "7_rep_partant_EVT.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..Rep_supression /force");    // Supression d'un représentant 
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi , "8_ets.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..Ets /force");    // Etablissements 
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi , "9_ets_nouveau_modifie_EVT.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..Ets_modification /force");   // Modification relative aux établissements
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi , "10_ets_supprime_EVT.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..Ets_supression /force");  // Supression d'un établissement  
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi , "11_obs .csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..Obs /force");    // Observation 
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi , "12_actes.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..Acte /force");    // Actes 
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }
            else if (_CompareFileName(Fi , "13_comptes_annuels.csv"))
            {

                strCmdText = ("/C Csv2Sql_new " + Fi + " IMR_INPI..Compte_annuel /force");   //Comptes annuels 
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);

            }

            else   // On conclue la boucle par un catch qui arrête le traitement automatique en cas d'erreur ( Table pas assez large , fichier corrompu .. )
            {   
                Console.WriteLine("Aucun fichier de ce type est traitable !");
            }




            Console.WriteLine("Intégration effectuée sur les 13 types de fichiers !"); // Confirmation du traitement des 13 types de fichiers reçus

        }





        //Se Renseigner sur les tests unitaires */   
    }

    bool _CompareFileName(string fileName, string id)  //Fonction de comparaison des chaines de caractéres des .csv SUBSTRING
    {
        if (fileName.Substring(fileName.Length - id.Length, id.Length) == id)
            return true;
        else
            return false;
    }
}
// Fin Programme

}

Aucun commentaire:

Enregistrer un commentaire