예제 #1
0
        //Ajoute un flux au serveur
        public static void InsertServeurFlux(int cdFlux, int cdServeur, String cheminLocal, String cheminDistant)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("INSERT INTO trft_serveur_flux (CD_FLUX, CD_SRV, CHEMIN_LOCAL, CHEMIN_DISTANT) VALUES (:1, :2, :3, :4)", transac, cdFlux, cdServeur, cheminLocal, cheminDistant).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #2
0
        public static void UpdateClient(int cdClient, String raisonSocial, String adressePostale, String codePostal, String ville, String pays)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("UPDATE trft_client SET RAISON_SOCIAL = :2, ADRESSE_POSTALE = :3, CODE_POSTAL = :4, VILLE = :5, PAYS = :6 WHERE CD_CLIENT = :1 ", -1, cdClient, raisonSocial, adressePostale, codePostal, ville, pays).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #3
0
        public static void InsertClient(String raisonSocial, String adressePostale, String codePostal, String ville, String pays)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                int  cd_client = getCdClientmax();
                bool res       = o.ExecuterUpdate("INSERT INTO trft_client (CD_CLIENT, RAISON_SOCIAL, ADRESSE_POSTALE, CODE_POSTAL, VILLE, PAYS) VALUES (:1, :2, :3, :4, :5, :6)", transac, cd_client, raisonSocial, adressePostale, codePostal, ville, pays).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            } catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #4
0
        public static void DeleteClientServeur(int cdServeur, int cdClient)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("DELETE FROM trft_client_serveur WHERE cd_srv = :1 AND cd_client = :2", transac, cdServeur, cdClient).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #5
0
        public static void UpdateCDSRVServeurFlux(int cdFlux, int cdServeurOld, int cdServeurNew, String cheminLocal, String cheminDistant)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("UPDATE trft_serveur_flux SET CHEMIN_LOCAL = :2, CHEMIN_DISTANT = :3, CD_SRV = :5 WHERE CD_SRV = :1 AND CD_FLUX = :4 ", -1, cdServeurOld, cheminLocal, cheminDistant, cdFlux, cdServeurNew).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #6
0
        ///// <summary>
        ///// Mise à jour de l'activité de session d'utilisation d'un logiciel
        ///// </summary>
        //public static Boolean MajActiviteSessionCle(int cdLogiciel, String sessionId)
        //{
        //    lock (LOCK)
        //    {
        //        if (DateTime.Now.Subtract(_dateDernierePurge).TotalSeconds < 10)
        //        {
        //            try
        //            {
        //                // Purge des sessions existantes qui dépassent le délai d'inactivité
        //                PurgerSessionsCle(cdLogiciel, _DUREE_INACTIVITE);
        //                _dateDernierePurge = DateTime.Now;
        //            }
        //            catch (Exception) { }
        //        }
        //    }

        //    OracleTrans o = OracleTrans.getInstance;
        //    int transac = o.DebutTransaction();
        //    Boolean res = true;

        //    // Vérifie la présence en base du log opérateur
        //    try
        //    {
        //        res = res && MajActiviteSessionCle(cdLogiciel, sessionId, transac);

        //        if (res)
        //        {
        //            if (_COMMIT)
        //                o.Commit(transac);
        //            else
        //                o.RollBack(transac);
        //        }
        //        else
        //            o.RollBack(transac);

        //        return res;
        //    }
        //    catch (Exception ex)
        //    {
        //        o.RollBack(transac);
        //        throw ex;
        //    }
        //}

        ///// <summary>
        ///// Mise à jour de l'activité de session d'utilisation d'un logiciel
        ///// </summary>
        //private static Boolean MajActiviteSessionCle(int cdLogiciel, String sessionId, int transac)
        //{
        //    OracleTrans o = OracleTrans.getInstance;
        //    Boolean res = true;

        //    try
        //    {
        //        // Vérifie la présence en base du log opérateur
        //        try
        //        {
        //            res = res &&
        //                Convert.ToInt32(o.ExecuterSelectScalar(
        //                        "SELECT count(*) FROM LOGICIEL_SESSIONS " +
        //                        " WHERE CD_LOGICIEL = :1 " +
        //                        "   AND SESSION_ID = :2 ",
        //                        transac,
        //                        cdLogiciel, sessionId).Result) > 0;

        //            if (!res)
        //                return false;

        //        }
        //        catch (Exception)
        //        {
        //            throw new Exception("Impossible de retrouver la session d'utilisation. ");
        //        }

        //        if (res)
        //        {
        //            ExtendedReturnedUpdate resultLogOpe = o.ExecuterUpdate(
        //                        " UPDATE LOGICIEL_SESSIONS SET " +
        //                        "   DATE_MAJ = SYSDATE, " +
        //                        "   DUREE_ACTIVITE = Round((DATE_MAJ - DATE_CREAT) * 24 * 60, 2) " + // EN MINUTES
        //                        " WHERE CD_LOGICIEL = :1 " +
        //                        "   AND SESSION_ID = :2 ",
        //                        transac,
        //                        cdLogiciel, sessionId);

        //            res = res && resultLogOpe.ErrCode == 0;

        //            if (!res) throw new Exception("Impossible de mettre à jour l'activité de la session d'utilisation. " + (resultLogOpe.OracleException != null ? resultLogOpe.OracleException.Message : ""));

        //            return res;
        //        }
        //        else
        //        {
        //            return false;
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        /// <summary>
        /// Purge des logs opérateur > durée
        /// </summary>
        private static Boolean PurgerSessionsCle(int cdLogiciel, int dureeSecondes)
        {
            OracleTrans o       = OracleTrans.getInstance;
            int         transac = o.DebutTransaction();
            Boolean     res     = true;

            try
            {
                res = PurgerSessionsCle(cdLogiciel, dureeSecondes, transac);

                if (res)
                {
                    if (_COMMIT)
                    {
                        o.Commit(transac);
                    }
                    else
                    {
                        o.RollBack(transac);
                    }
                }
                else
                {
                    o.RollBack(transac);
                }

                return(res);
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #7
0
파일: FluxDal.cs 프로젝트: techundead/HTFR
        public static void DeleteFlux(int cd_flux)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("DELETE FROM trft_flux WHERE cd_flux = :1", transac, cd_flux).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #8
0
파일: FluxDal.cs 프로젝트: techundead/HTFR
        public static void UpdateFlux(int cdFlux, String designation)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("UPDATE trft_flux SET DESIGNATION = :2 WHERE CD_FLUX = :1 ", -1, cdFlux, designation).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #9
0
        //Ajoute un client au serveur
        public static void InsertClientServeur(int cdClient, int cdServeur)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("INSERT INTO trft_client_serveur (CD_CLIENT, CD_SRV) VALUES (:1, :2)", transac, cdClient, cdServeur).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #10
0
        public static void UpdateServeur(int cdServeur, String adresseIp, String ftpIdtf, String ftpMdp, String ftpPort, String trftPort, int cd_client_srv)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("UPDATE trft_serveurs SET ADRESSE_IP = :2, FTP_IDENTIFIANT = :3, FTP_MDP = :4, FTP_PORT = :5, TRFT_PORT = :6, CD_CLIENT_SRV = :7 WHERE CD_SRV = :1 ", -1, cdServeur, adresseIp, ftpIdtf, ftpMdp, ftpPort, trftPort, cd_client_srv).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #11
0
파일: FluxDal.cs 프로젝트: techundead/HTFR
        public static void InsertFlux(String designation)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                int  cd_flux = getCdFluxmax();
                bool res     = o.ExecuterUpdate("INSERT INTO trft_flux (CD_FLUX, DESIGNATION) VALUES (:1, :2)", transac, cd_flux, designation).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #12
0
        public static Boolean InsertTransaction(int cdTransfert, String detail, String codeErreur, String etat, DateTime date)
        {
            OracleTrans o = OracleTrans.getInstance;

            int     transac = o.DebutTransaction();
            Boolean res;

            try
            {
                int cd_transaction = getCdTransactionmax();
                res = o.ExecuterUpdate("INSERT INTO trft_transaction (CD_TRST, CD_TRFT, DETAIL, CODE_ERREUR, ETAT, DATE_TRANSACTION) VALUES (:1, :2, :3, :4, :5, :6)", transac, cd_transaction, cdTransfert, detail, codeErreur, etat, date).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                res = false;
            }

            return(res);
        }
예제 #13
0
        public static void InsertServeur(String adresseIp, String ftpIdtf, String ftpMdp, String ftpPort, String trftPort, int cd_client_srv)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                int  cd_serveur = getCdServeurmax();
                bool res        = o.ExecuterUpdate("INSERT INTO trft_serveurs (CD_SRV,  ADRESSE_IP, FTP_IDENTIFIANT, FTP_MDP, FTP_PORT, TRFT_PORT, CD_CLIENT_SRV) VALUES (:1, :2, :3, :4, :5, :6, :7)", transac, cd_serveur, adresseIp, ftpIdtf, ftpMdp, ftpPort, trftPort, cd_client_srv).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #14
0
        public static void UpdateTransfertEtat(int cdTransfert, String etat)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("UPDATE trft_transfert SET ETAT = :2 WHERE CD_TRFT = :1 ", -1, cdTransfert, etat).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #15
0
        public static Boolean InsertTransfert(int cdFlux, int cdClient, String designation, String tailleFichier, String etat, String ipSource, DateTime date)
        {
            OracleTrans o = OracleTrans.getInstance;

            int     transac = o.DebutTransaction();
            Boolean res;

            try
            {
                int cd_transfert = getCdTransfertmax();
                res = o.ExecuterUpdate("INSERT INTO trft_transfert (CD_TRFT, CD_FLUX, CD_CLIENT, DESIGNATION, TAILLE_FICHIER, ETAT, IP_SOURCE, DATE_TRANSFERT) VALUES (:1, :2, :3, :4, :5, :6, :7, :8)", transac, cd_transfert, cdFlux, cdClient, designation, tailleFichier, etat, ipSource, date).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                res = false;
            }

            return(res);
        }
예제 #16
0
        public static void UpdateClientServeur(int cdClient, int cdServeur)
        {
            OracleTrans o = OracleTrans.getInstance;

            int transac = o.DebutTransaction();

            try
            {
                bool res = o.ExecuterUpdate("UPDATE trft_client_serveur SET CD_CLIENT = :2, CD_SRV = :1 WHERE CD_SRV = :1", -1, cdServeur, cdClient).ErrCode == 0;

                if (res)
                {
                    o.Commit(transac);
                }
                else
                {
                    o.RollBack(transac);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #17
0
        /// <summary>
        /// Suppression de la session d'utilisation du logiciel
        /// </summary>
        public static Boolean SupprimerSessionCle(int cdLogiciel, String sessionId)
        {
            OracleTrans o       = OracleTrans.getInstance;
            int         transac = o.DebutTransaction();
            Boolean     res     = true;

            try
            {
                ExtendedReturnedUpdate result = OracleTrans.getInstance.ExecuterUpdate(
                    " DELETE FROM LOGICIEL_SESSIONS WHERE CD_LOGICIEL = :1 AND SESSION_ID = :2 ",
                    -1,
                    cdLogiciel, sessionId);

                res = res && result.ErrCode == 0;

                if (!res)
                {
                    throw new Exception("Impossible de supprimer la session utilisateur. " + (result.OracleException != null ? result.OracleException.Message : ""));
                }

                if (res)
                {
                    if (_COMMIT)
                    {
                        o.Commit(transac);
                    }
                    else
                    {
                        o.RollBack(transac);
                    }
                }
                else
                {
                    o.RollBack(transac);
                }

                return(res);
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }
예제 #18
0
        /// <summary>
        /// Enregistrement d'une nouvelle session d'utilisation à un logiciel et vérification de la clé associée
        /// </summary>
        public static Boolean CreerNouvelleSessionCle(int cdLogiciel, string sessionId, string infos)
        {
            lock (LOCK)
            {
                if (DateTime.Now.Subtract(_dateDernierePurge).TotalSeconds > _FREQUENCE_PURGE)
                {
                    try
                    {
                        _dateDernierePurge = DateTime.Now;

                        // Purge des sessions existantes qui dépassent le délai d'inactivité
                        PurgerSessionsCle(cdLogiciel, _DUREE_INACTIVITE);
                    }
                    catch (Exception) { }
                }
            }

            OracleTrans o       = OracleTrans.getInstance;
            int         transac = o.DebutTransaction();
            Boolean     res     = true;

            try
            {
                // Test si session existe déjà
                Boolean existsSession = false;
                if (sessionId != "")
                {
                    ExtendedReturnedScalar resultSessionCourante = o.ExecuterSelectScalar(
                        " SELECT COUNT(*)" +
                        " FROM LOGICIEL_SESSIONS " +
                        " WHERE CD_LOGICIEL = :1 " +
                        " AND SESSION_ID = :2",
                        transac, cdLogiciel, sessionId);

                    if (Convert.ToInt32(resultSessionCourante.Result) > 0)
                    {
                        existsSession = true;
                        Boolean sessionAMAJ = false;

                        // SI DATE_MAJ session courante > DUREE_INACTIVITE => SESSION NON ACTIVE => test clé
                        ExtendedReturnedScalar resultSessionCouranteActive = o.ExecuterSelectScalar(
                            " SELECT CASE WHEN (SYSDATE - DATE_MAJ) < (:2 / 60 / 60 / 24) THEN 1 ELSE 0 END as SESSION_ACTIVE " +
                            " FROM LOGICIEL_SESSIONS " +
                            " WHERE CD_LOGICIEL = :1 " +
                            " AND SESSION_ID = :3",
                            transac, cdLogiciel, _DUREE_INACTIVITE, sessionId);

                        // Si session non active -> test clé
                        if (Convert.ToInt32(resultSessionCouranteActive.Result) == 0)
                        {
                            sessionAMAJ = TestCle(cdLogiciel, sessionId, _DUREE_INACTIVITE, transac);
                        }
                        else
                        {
                            // Sinon mise à jour activité session
                            sessionAMAJ = true;
                        }

                        if (sessionAMAJ)
                        {
                            //MajActiviteSessionCle(cdLogiciel, sessionId, transac);
                            ExtendedReturnedUpdate resultLogOpe = o.ExecuterUpdate(
                                " UPDATE LOGICIEL_SESSIONS SET " +
                                "   DATE_MAJ = SYSDATE, " +
                                "   DUREE_ACTIVITE = Round((DATE_MAJ - DATE_CREAT) * 24 * 60, 2) " +         // EN MINUTES
                                " WHERE CD_LOGICIEL = :1 " +
                                "   AND SESSION_ID = :2 ",
                                transac,
                                cdLogiciel, sessionId);

                            res = res && resultLogOpe.ErrCode == 0;

                            if (!res)
                            {
                                throw new Exception("Impossible de mettre à jour l'activité de la session d'utilisation. " + (resultLogOpe.OracleException != null ? resultLogOpe.OracleException.Message : ""));
                            }
                        }
                    }
                    else
                    {
                        existsSession = false;
                    }

                    if (!existsSession)
                    {
                        res = res && TestCle(cdLogiciel, null, _DUREE_INACTIVITE, transac);

                        if (res)
                        {
                            // - OK, nouvelle session
                            ExtendedReturnedUpdate resultLogOpe = o.ExecuterUpdate(
                                " INSERT INTO LOGICIEL_SESSIONS " +
                                "        (CD_LOGICIEL_SESSIONS, CD_LOGICIEL, SESSION_ID, INFOS, DATE_CREAT, DATE_MAJ, DUREE_ACTIVITE) " +
                                " VALUES (SEQ_LOGICIEL_SESSIONS.NEXTVAL, :1, :2, :3, SYSDATE, SYSDATE, 0)",
                                transac,
                                cdLogiciel, sessionId, infos);

                            res = res && resultLogOpe.ErrCode == 0;

                            if (!res)
                            {
                                throw new Exception("Impossible d'enregistrer la session d'utilisation. " + (resultLogOpe.OracleException != null ? resultLogOpe.OracleException.Message : ""));
                            }
                        }
                    }

                    if (res)
                    {
                        if (_COMMIT)
                        {
                            o.Commit(transac);
                        }
                        else
                        {
                            o.RollBack(transac);
                        }

                        return(res);
                    }
                    else
                    {
                        o.RollBack(transac);
                        return(false);
                    }
                }
                else
                {
                    o.RollBack(transac);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                o.RollBack(transac);
                throw ex;
            }
        }