public static Traitement GetTraitement(string nom, bool expand = false)
        {
            Traitement traitement = null;

            if (ConnexionBD.Instance().EstConnecte())
            {
                ConnexionBD.Instance().ExecuterRequete(
                    String.Format(
                        "SELECT t.idTraitement _id, t.nom traitement, d.nom departement, d.abreviation dept " +
                        "FROM Traitements t " +
                        "JOIN Departements d ON d.idDepartement = t.idDepartement " +
                        "WHERE t.nom = '{0}'",
                        nom
                        ), lecteur =>
                {
                    traitement = new Traitement
                    {
                        IdTraitment        = int.Parse(lecteur.GetString("_id")),
                        Nom                = lecteur.GetString("traitement"),
                        DepartementAssocie = new Departement
                        {
                            Nom         = lecteur.GetString("departement"),
                            Abreviation = lecteur.GetString("dept")
                        }
                    };
                }
                    );
                if (expand && traitement != null && traitement.IdTraitment >= 0)
                {
                    traitement.EtapesTraitement = new ObservableCollection <Etape>(DataModelEtape.GetEtapes(traitement.IdTraitment, true));
                }
            }

            return(traitement);
        }
        public static void PostTraitement(Traitement traitement)
        {
            if (ConnexionBD.Instance().EstConnecte())
            {
                ConnexionBD.Instance().ExecuterRequete(
                    String.Format(
                        "INSERT INTO Traitements (nom, idDepartement) " +
                        "VALUES ( " +
                        "   '{0}', " +
                        "   (SELECT idDepartement FROM Departements WHERE abreviation = '{1}') " +
                        ")",
                        traitement.Nom, traitement.DepartementAssocie.Abreviation
                        )
                    );

                int idTraitement = -1;
                ConnexionBD.Instance().ExecuterRequete(
                    String.Format(
                        "SELECT t.idTraitement " +
                        "FROM Traitements t " +
                        "JOIN Departements d ON d.idDepartement = t.idDepartement " +
                        "WHERE t.nom = '{0}' AND d.abreviation = '{1}'",
                        traitement.Nom, traitement.DepartementAssocie.Abreviation
                        ), lecteur => idTraitement = int.Parse(lecteur.GetString("idTraitement"))
                    );
                if (idTraitement >= 0)
                {
                    DataModelEtape.PostEtapes(new List <Etape>(traitement.EtapesTraitement), idTraitement);
                }
            }
        }
        public static void DeleteTraitement(int idTraitement)
        {
            if (ConnexionBD.Instance().EstConnecte())
            {
                if (idTraitement >= 0)
                {
                    DataModelEtape.DeleteEtapes(idTraitement);

                    ConnexionBD.Instance().ExecuterRequete(
                        String.Format(
                            "DELETE FROM Traitements " +
                            "WHERE idTraitement = {0}",
                            idTraitement
                            )
                        );
                }
            }
        }
 public static void PutTraitement(Traitement traitement)
 {
     if (ConnexionBD.Instance().EstConnecte())
     {
         if (traitement.IdTraitment >= 0)
         {
             ConnexionBD.Instance().ExecuterRequete(
                 String.Format(
                     "UPDATE Traitements " +
                     "SET nom = '{0}', idDepartement = (SELECT idDepartement FROM Departements WHERE abreviation = '{1}') " +
                     "WHERE idTraitement = {2}",
                     traitement.Nom, traitement.DepartementAssocie.Abreviation, traitement.IdTraitment
                     )
                 );
             DataModelEtape.DeleteEtapes(traitement.IdTraitment);
             DataModelEtape.PostEtapes(new List <Etape>(traitement.EtapesTraitement), traitement.IdTraitment);
         }
     }
 }
        public static List <Traitement> GetTraitements(bool expand = false)
        {
            List <Traitement> traitements   = new List <Traitement>();
            List <int>        idTraitements = new List <int>();

            if (ConnexionBD.Instance().EstConnecte())
            {
                ConnexionBD.Instance().ExecuterRequete(
                    "SELECT t.idTraitement _id, t.nom traitement, d.nom departement, d.abreviation dept " +
                    "FROM Traitements t " +
                    "JOIN Departements d ON d.idDepartement = t.idDepartement", lecteur =>
                {
                    Traitement traitement = new Traitement
                    {
                        IdTraitment        = int.Parse(lecteur.GetString("_id")),
                        Nom                = lecteur.GetString("traitement"),
                        DepartementAssocie = new Departement
                        {
                            Nom         = lecteur.GetString("departement"),
                            Abreviation = lecteur.GetString("dept")
                        }
                    };

                    traitements.Add(traitement);
                }
                    );
                if (expand)
                {
                    for (int i = 0; i < traitements.Count; i++)
                    {
                        traitements[i].EtapesTraitement = new ObservableCollection <Etape>(DataModelEtape.GetEtapes(traitements[i].IdTraitment, true));
                    }
                }
            }

            return(traitements);
        }