コード例 #1
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur ExecuteAction(CContexteExecutionAction contexte)
        {
            CResultAErreur result        = CResultAErreur.True;
            CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession);

            if (sessionClient != null)
            {
                if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur)
                {
                    using (C2iSponsor sponsor = new C2iSponsor())
                    {
                        CServiceSurClient service = sessionClient.GetServiceSurClient(c_idServiceClientMessageBox);
                        if (service != null)
                        {
                            sponsor.Register(service);
                            //Calcule le message
                            CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process);
                            contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee);
                            result = FormuleMessage.Eval(contexteEval);
                            if (!result)
                            {
                                result            = CResultAErreur.True;
                                m_strMessageCache = FormuleMessage.GetString();
                            }
                            else
                            {
                                m_strMessageCache = result.Data == null ? "" : result.Data.ToString();
                            }
                            result = service.RunService(this);
                            if (!result)
                            {
                                return(result);
                            }
                            E2iDialogResult dResult = (E2iDialogResult)result.Data;
                            foreach (CLienAction lien in GetLiensSortantHorsErreur())
                            {
                                if (lien is CLienFromDialog &&
                                    ((CLienFromDialog)lien).ResultAssocie == dResult)
                                {
                                    result.Data = lien;
                                    return(result);
                                }
                            }
                            result.Data = null;
                            return(result);
                        }
                    }
                }
            }
            //Utilisateur pas accessible
            foreach (CLienAction lien in GetLiensSortantHorsErreur())
            {
                if (lien is CLienUtilisateurAbsent)
                {
                    result.Data = lien;
                    return(result);
                }
            }
            return(result);
        }
コード例 #2
0
ファイル: CLienFormDialog.cs プロジェクト: ykebaili/sc2idlls
        /// ///////////////////////////////////////////////////
        protected override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            result = base.MySerialize(serializer);
            if (!result)
            {
                return(result);
            }

            int nResult = (int)m_result;

            serializer.TraiteInt(ref nResult);
            m_result = (E2iDialogResult)nResult;
            return(result);
        }
コード例 #3
0
ファイル: CActionFormulaire.cs プロジェクト: ykebaili/Timos
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur ExecuteAction(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;
            //Si la session qui execute est une session de l'utilisateur associé à la branche,
            //Tente d'afficher le formulaire sur cette session,
            //Sinon, enregistre une Intervention sur l'utilisateur
            CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession);

            if (sessionClient != null)
            {
                //TESTDBKEYOK
                if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur)
                {
                    using (C2iSponsor sponsor = new C2iSponsor())
                    {
                        sponsor.Label = "Execute Action serveur";
                        CServiceSurClient service = sessionClient.GetServiceSurClient(c_idServiceClientFormulaire);
                        if (service != null)
                        {
                            sponsor.Register(service);
                            result = service.RunService(this);
                            if (!result)
                            {
                                return(result);
                            }
                            E2iDialogResult dResult = (E2iDialogResult)result.Data;
                            foreach (CLienAction lien in GetLiensSortantHorsErreur())
                            {
                                if (lien is CLienFromDialog &&
                                    ((CLienFromDialog)lien).ResultAssocie == dResult)
                                {
                                    result.Data = lien;
                                    return(result);
                                }
                            }
                            result.Data = null;
                            return(result);
                        }
                        else
                        {
                            //Utilisateur pas accessible
                            foreach (CLienAction lien in GetLiensSortantHorsErreur())
                            {
                                if (lien is CLienUtilisateurAbsent)
                                {
                                    result.Data = lien;
                                    return(result);
                                }
                            }
                        }
                    }
                }
            }
            //Utilisateur pas accessible
            foreach (CLienAction lien in GetLiensSortantHorsErreur())
            {
                if (lien is CLienUtilisateurAbsent)
                {
                    result.Data = lien;
                    return(result);
                }
            }
            return(result);
        }
コード例 #4
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur ExecuteAction(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                // Récupère la structure par formule ou structure propore
                m_structureUtiliseeAExecution = StructureExport;

                IVariableDynamique variableProcess = AssureVariableProcessDansStructure();
                m_structureUtiliseeAExecution.SetValeurChamp(variableProcess.IdVariable, Process);
                m_structureUtiliseeAExecution.ContexteDonnee = contexte.ContexteDonnee;

                // Si la structure possede un formulaire il faut lancer le service sur le poste client
                if (m_structureUtiliseeAExecution != null && m_structureUtiliseeAExecution.Formulaire != null && m_structureUtiliseeAExecution.Formulaire.Childs.Length > 0)
                {
                    CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession);
                    if (sessionClient != null)
                    {
                        //TESTDBKEYOK
                        if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur)
                        {
                            using (C2iSponsor sponsor = new C2iSponsor())
                            {
                                CServiceSurClient service = sessionClient.GetServiceSurClient(c_idServiceClientExporterDonnees);
                                if (service != null)
                                {
                                    sponsor.Register(service);

                                    result = service.RunService(this);

                                    E2iDialogResult dResult = (E2iDialogResult)result.Data;
                                    if (dResult == E2iDialogResult.Cancel)
                                    {
                                        foreach (CLienAction lien in GetLiensSortantHorsErreur())
                                        {
                                            if (lien is CLienFromDialog &&
                                                ((CLienFromDialog)lien).ResultAssocie == dResult)
                                            {
                                                result.Data = lien;
                                                return(result);
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    //Utilisateur pas accessible
                                    foreach (CLienAction lien in GetLiensSortantHorsErreur())
                                    {
                                        if (lien is CLienUtilisateurAbsent)
                                        {
                                            result.Data = lien;
                                            return(result);
                                        }
                                    }
                                }
                            }
                        }
                    }

                    else
                    {
                        //Utilisateur pas accessible
                        foreach (CLienAction lien in GetLiensSortantHorsErreur())
                        {
                            if (lien is CLienUtilisateurAbsent)
                            {
                                result.Data = lien;
                                return(result);
                            }
                        }
                    }
                }


                result = m_structureUtiliseeAExecution.GetDataSet(Exporteur.ExporteStructureOnly);
                if (!result)
                {
                    result.EmpileErreur(I.T("Error while exporting data|405"));
                    return(result);
                }

                DataSet ds = (DataSet)result.Data;

                // Fichier d'export retourné
                CFichierLocalTemporaire fichierExport = new CFichierLocalTemporaire(Exporteur.ExtensionParDefaut);
                fichierExport.CreateNewFichier();
                CDestinationExportFile dest = new CDestinationExportFile(fichierExport.NomFichier);
                result = Exporteur.Export(ds, dest);
                if (!result)
                {
                    result.EmpileErreur(I.T("Error while creating export file|406"));
                    return(result);
                }

                #region Stockage dans la ged

                CContexteEvaluationExpression contexteEvaluation = new CContexteEvaluationExpression(Process);
                //On a notre fichier export, création du document
                string strCle        = "";
                string strDescriptif = "";
                string strLibelle    = "";
                result = ExpressionCle.Eval(contexteEvaluation);
                if (result)
                {
                    strCle = result.Data.ToString();
                }
                else
                {
                    result.EmpileErreur(I.T("The document key could not be calculated|407"));
                    return(result);
                }


                result = ExpressionLibelle.Eval(contexteEvaluation);
                if (result)
                {
                    strLibelle = result.Data.ToString();
                }
                else
                {
                    result.EmpileErreur(I.T("The document label could not be calculated|408"));
                    return(result);
                }

                result = ExpressionDescriptif.Eval(contexteEvaluation);
                if (result)
                {
                    strDescriptif = result.Data.ToString();
                }
                else
                {
                    result.EmpileErreur(I.T("The document description could not be calculated|409"));
                    return(result);
                }

                CDocumentGED doc = new CDocumentGED(contexte.ContexteDonnee);
                //Si la clé n'est pas nulle, cherche un document avec cette clé
                if (strCle.Trim() != "")
                {
                    CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle);
                    if (!doc.ReadIfExists(filtre))
                    {
                        doc.CreateNew();
                    }
                    else
                    {
                        doc.BeginEdit();
                    }
                }
                else
                {
                    doc.CreateNew();
                }
                doc.Libelle    = strLibelle;
                doc.Descriptif = strDescriptif;
                doc.Cle        = strCle;

                ArrayList lstToCreate = (ArrayList)ListeIdsCategoriesStockage.Clone();
                ArrayList lstToDelete = new ArrayList();
                //Affecte les catégories
                CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(doc);
                foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes)
                {
                    if (!lstToCreate.Contains(rel.Categorie.Id))
                    {
                        lstToDelete.Add(rel);
                    }
                    lstToCreate.Remove(rel.Categorie.Id);
                }
                foreach (CRelationDocumentGED_Categorie rel in lstToDelete)
                {
                    rel.Delete();
                }
                foreach (int nId in lstToCreate)
                {
                    CCategorieGED cat = new CCategorieGED(doc.ContexteDonnee);
                    if (cat.ReadIfExists(nId))
                    {
                        CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(doc.ContexteDonnee);
                        rel.CreateNewInCurrentContexte();
                        rel.Categorie = cat;
                        rel.Document  = doc;
                    }
                }
                CProxyGED proxy = new CProxyGED(Process.IdSession, doc.IsNew() ? null : doc.ReferenceDoc);
                proxy.AttacheToLocal(fichierExport.NomFichier);
                result = proxy.UpdateGed();
                if (!result)
                {
                    return(result);
                }
                doc.ReferenceDoc = (CReferenceDocument)result.Data;
                result           = doc.CommitEdit();
                fichierExport.Dispose();
                if (VariableResultat != null)
                {
                    Process.SetValeurChamp(VariableResultat, doc);
                }

                #endregion

                foreach (CLienAction lien in GetLiensSortantHorsErreur())
                {
                    if (lien is CLienFromDialog &&
                        ((CLienFromDialog)lien).ResultAssocie != E2iDialogResult.Cancel)
                    {
                        result.Data = lien;
                        return(result);
                    }
                }

                result.Data = null;
                return(result);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            finally
            {
            }

            return(result);
        }
コード例 #5
0
ファイル: CLienFormDialog.cs プロジェクト: ykebaili/sc2idlls
 /// ///////////////////////////////////////////////////
 public CLienFromDialog(CProcess process, E2iDialogResult result)
     : base(process)
 {
     m_result = result;
 }