예제 #1
0
        //--------------------------------------------
        public CResultDataSet ChangeData(DataSet donnees)
        {
            CResultDataSet result = CUtilClientTiag.ChangeData(ModificateurElements, donnees);

            if (result)
            {
                CResultAErreur resErreur = ModificateurElements.ContexteDonnee.SaveAll(true);
                //Maintenant, il faut changer les ids des éléments mappés qui ont bougé
                if (resErreur)
                {
                    resErreur = ModificateurElements.DefinitNouvellesCles(donnees);
                }

                if (!resErreur)
                {
                    result.EmpileErreur(CodeErreur.AppliErreur, CModificateurElementsTiag.c_strServerKey, resErreur.Erreur.ToString(), null, null, 0);
                }
                else
                {
                    result = new CResultDataSet(donnees);
                }
            }

            return(result);
        }
예제 #2
0
        public DataSet GetParametersDescription()
        {
            CResultDataSet result = new CResultDataSet();

            result.Data = CModificateurElementsTiag.c_paramDesc;
            return(result);
        }
예제 #3
0
        //--------------------------------------------
        public CResultDataSet GetStructureDonnees()
        {
            CUtilClientTiag.Init(true);
            CResultDataSet result = CUtilClientTiag.GetDataSetStructure();

            return(result);
        }
예제 #4
0
        //---------------------------------------------------------------------------
        public System.Data.DataSet GetServerKey(int nIdSession)
        {
            CInfoSessionTiag.RenouvelleSession(nIdSession);
            CResultDataSet result = new CResultDataSet(new DataSet());

            result.Data = CModificateurElementsTiag.c_strServerKey;
            return(result);
        }
예제 #5
0
        //---------------------------------------------------------------------------
        public System.Data.DataSet GetServerDesc(int nIdSession)
        {
            CInfoSessionTiag.RenouvelleSession(nIdSession);
            CResultDataSet result = new CResultDataSet(new DataSet());

            result.Data = "This server makes the different objects managed by TIMOS/SMT availiable";
            return(result);
        }
예제 #6
0
        //--------------------------------------------
        public DataSet RollbackTrans()
        {
            CResultAErreur result   = Session.RollbackTrans();
            CResultDataSet resultDS = new CResultDataSet();

            if (!result)
            {
                resultDS.EmpileErreur(CodeErreur.AppliErreur, CModificateurElementsTiag.c_strServerKey, result.Erreur.ToString(), null, null, 0);
            }
            return(resultDS);
        }
예제 #7
0
        //---------------------------------------------------------------------------
        public System.Data.DataSet OpenSession()
        {
            CSessionClient session = CSessionClient.CreateInstance();
            CResultAErreur result  = session.OpenSession(new CAuthentificationSessionSousSession(0), "Tiag", ETypeApplicationCliente.Service);

            if (!result)
            {
                return(GetResultDS(result));
            }
            CResultDataSet resDS = new CResultDataSet();

            CInfoSessionTiag.OnCreateSession(session);
            resDS.Data = session.IdSession;
            return(resDS);
        }
예제 #8
0
        //---------------------------------------------------------------------------
        public void CloseSession(int nIdSession)
        {
            CInfoSessionTiag.OnCloseSession(nIdSession);
            CResultDataSet result = new CResultDataSet();
            CUtilTimosTiag util   = CUtilTimosTiag.GetUtilTiagForSession(nIdSession);

            if (util != null)
            {
                util.OnCloseSession();
            }
            CSessionClient session = GetSession(nIdSession, result);

            if (session != null)
            {
                session.CloseSession();
            }
        }
예제 #9
0
        //---------------------------------------------------------------------------
        private CResultDataSet GetResultDS(CResultAErreur result)
        {
            CResultDataSet res = new CResultDataSet();

            foreach (IErreur erreur in result.Erreur.Erreurs)
            {
                res.EmpileErreur(
                    CodeErreur.AppliErreur,
                    CModificateurElementsTiag.c_strServerKey,
                    erreur.Message,
                    "",
                    null,
                    (int)Gravite.Indeterminee
                    );
            }
            return(res);
        }
예제 #10
0
        //---------------------------------------------------------------------------
        public System.Data.DataSet RollbackTrans(int nIdSession)
        {
            CInfoSessionTiag.RenouvelleSession(nIdSession);
            CResultDataSet result    = new CResultDataSet();
            CResultAErreur resErreur = new CResultAErreur();
            CSessionClient session   = GetSession(nIdSession, result);

            if (session == null)
            {
                return(result);
            }
            resErreur = session.BeginTrans();
            if (!resErreur)
            {
                return(GetResultDS(resErreur));
            }
            return(result);
        }
예제 #11
0
        //---------------------------------------------------------------------------
        private CSessionClient GetSession(int nIdSession, CResultDataSet result)
        {
            CSessionClient session = CSessionClient.GetSessionForIdSession(nIdSession);

            if (session == null)
            {
                result.EmpileErreur(
                    CodeErreur.AppliErreur,
                    CModificateurElementsTiag.c_strServerKey,
                    I.T("Unknown session @1|20000", nIdSession.ToString()),
                    "",
                    null,
                    (int)Gravite.Indeterminee
                    );
            }
            CInfoSessionTiag.RenouvelleSession(nIdSession);

            return(session);
        }
예제 #12
0
        //--------------------------------------------
        public DataSet ExistEntity(string strType, object[] keys)
        {
            CResultDataSet result = new CResultDataSet();
            bool           bOk    = CUtilClientTiag.ExistElement(ModificateurElements, strType, keys);

            result.Data = bOk;
            return(result);

            /*result = GetEntityFromKeys(strType, keys);
             * if (result)
             * {
             *      DataSet ds = (DataSet)result;
             *      if (ds.Tables.Contains(strType))
             *      {
             *              result.Data = ds.Tables[strType].Rows.Count != 0;
             *      }
             *      else
             *              result.Data = false;
             * }
             * return result;*/
        }
예제 #13
0
        //--------------------------------------------
        public CResultDataSet GetEntityFromKeys(string strType, object[] keys)
        {
            CResultDataSet result = CUtilClientTiag.GetElementDataSet(ModificateurElements, strType, keys);

            return(result);
        }
예제 #14
0
        //--------------------------------------------
        public CResultDataSet GetKeysEntityFromSearch(string strType, string[] strChamps, object[] valeurs)
        {
            CResultDataSet result = CUtilClientTiag.GetKeysEntityFromSearch(ModificateurElements, strType, strChamps, valeurs);

            return(result);
        }
예제 #15
0
        //--------------------------------------------
        public CResultDataSet GetEntityFromSearch(string strType, string[] strChampsRecherche, object[] valeursRecherche)
        {
            CResultDataSet result = CUtilClientTiag.GetElementsDataSet(ModificateurElements, strType, strChampsRecherche, valeursRecherche);

            return(result);
        }
예제 #16
0
        public CResultAErreur Execute(int nIdSession, System.Collections.Hashtable valeursParametres)
        {
            CResultAErreur resErreur = CResultAErreur.True;

            string strType = (string)valeursParametres[c_parametreTypeAEnvoyer];

            if (strType == null)
            {
                resErreur.EmpileErreur("Le type d'élément à envoyer n'est pas renseigné");
                return(resErreur);
            }
            Type typeElement = CActivatorSurChaine.GetType(strType);

            if (typeElement == null)
            {
                resErreur.EmpileErreur("Le type d'élément à envoyer n'est pas correct (" + strType + ")");
                return(resErreur);
            }
            if (!(valeursParametres[c_parametreIdElement] is int))
            {
                resErreur.EmpileErreur("L'id de l'élément n'est pas correct");
                return(resErreur);
            }

            DataSet ds = CUtilClientTiag.GetDataSetStructure();

            using (CContexteDonnee contexteDonnee = new CContexteDonnee(nIdSession, true, false))
            {
                CObjetDonneeAIdNumeriqueAuto objet = (CObjetDonneeAIdNumeriqueAuto)Activator.CreateInstance(typeElement, contexteDonnee);
                if (!objet.ReadIfExists((int)valeursParametres[c_parametreIdElement]))
                {
                    resErreur.EmpileErreur("L'élément demandé n'existe pas (" +
                                           strType + " / " + valeursParametres[c_parametreIdElement].ToString() + ")");
                    return(resErreur);
                }


                CUtilClientTiag.FillDataSet((IElementAInterfaceTiag)objet, ds);
            }

            CServiceDistantTiag service = new CServiceDistantTiag("tcp://127.0.0.1:8182");

            //TiagService.TiagService service = new TiagService.TiagService();

            resErreur = CResultAErreur.True;
            CResultDataSet result         = service.OpenSession(c_strServerKey);
            int            nIdSessionTiag = -1;

            try
            {
                nIdSessionTiag = (int)result.Data;
                result         = service.OnModifieDonnees(nIdSessionTiag, ds);
            }
            catch (Exception e)
            {
                resErreur.EmpileErreur(new CErreurException(e));
            }
            finally
            {
                service.CloseSession(nIdSessionTiag);
            }
            if (!result)
            {
                foreach (string strErreur in result.GetErreurs())
                {
                    resErreur.EmpileErreur(strErreur);
                }
            }
            return(resErreur);
        }