コード例 #1
0
        //-------------------------------------------------------------------
        public CResultAErreur AddRoleToActeurs(CRoleActeur role, CGroupeActeur groupe)
        {
            CResultAErreur      result       = CResultAErreur.True;
            CListeObjetsDonnees listeActeurs = new CListeObjetsDonnees(groupe.ContexteDonnee, typeof(CActeur));
            //Sélectionne tous les acteurs du groupe qui n'ont pas le rôle
            CFiltreDataAvance filtre = new CFiltreDataAvance(CActeur.c_nomTable,
                                                             "(RelationsGroupes.GroupeActeur.Id = @1 or " +
                                                             "RelationsGroupes.GroupeActeur.RelationsTousGroupesContenants.GroupeActeurContenant.Id = @1) and " +
                                                             "hasno ( " + role.NomTableDonneesActeur + ".Id)",
                                                             groupe.Id);

            listeActeurs.Filtre = filtre;
            foreach (CActeur acteur in listeActeurs)
            {
#if PDA
                CDonneesActeur donnee = (CDonneesActeur)Activator.CreateInstance(role.TypeDonneeActeur);
                donnee.ContexteDonnee = groupe.ContexteDonnee;
#else
                CDonneesActeur donnee = (CDonneesActeur)Activator.CreateInstance(role.TypeDonneeActeur, new object[] { groupe.ContexteDonnee });
#endif
                donnee.CreateNewInCurrentContexte();
                donnee.Acteur = acteur;

                donnee.IsDonneeActeurValide = donnee.VerifieDonnees(false);
            }
            return(result);
        }
コード例 #2
0
        //-------------------------------------------------------------------------
        private void ApplyModifRoles()
        {
            Hashtable tableRoles = new Hashtable();

            foreach (CRelationRoleActeur_GroupeActeur rel in GroupeActeur.RelationsRoles)
            {
                tableRoles[rel.RoleActeur] = rel;
            }

            foreach (ListViewItem item in m_listViewRoles.Items)
            {
                CRoleActeur role = (CRoleActeur)item.Tag;
                if (item.Checked)
                {
                    if (!tableRoles.ContainsKey(role))
                    {
                        CRelationRoleActeur_GroupeActeur relation = new CRelationRoleActeur_GroupeActeur(GroupeActeur.ContexteDonnee);
                        relation.GroupeActeur = GroupeActeur;
                        relation.RoleActeur   = role;
                    }
                }
                else
                {
                    if (tableRoles.ContainsKey(role))
                    {
                        CRelationRoleActeur_GroupeActeur relation = (CRelationRoleActeur_GroupeActeur)tableRoles[role];
                        relation.Delete();
                    }
                }
            }
        }
コード例 #3
0
        public static CPanelRole GetPanelFromRole(CObjetDonnee objet, CRoleActeur role)
        {
            switch (role.CodeRole)
            {
            case CDonneesActeurUtilisateur.c_codeRole:
                return(new CPanelRoleUtilisateur((CDonneesActeurUtilisateur)objet));

            case CDonneesActeurClient.c_codeRole:
                return(new CPanelRoleClient((CDonneesActeurClient)objet));

            default: return(null);
            }
        }
コード例 #4
0
        //-------------------------------------------------------------------
        public void AppliquerFiltre()
        {
            string            strFiltre  = "";
            CFiltreDataAvance tempFiltre = new CFiltreDataAvance(CActeur.c_nomTable, strFiltre);
            int nNumParam = 1;

            AddToFiltre(ref strFiltre, m_txtNom, CActeur.c_champNom);
            AddToFiltre(ref strFiltre, m_txtCodePostal, CActeur.c_champCodePostal);
            AddToFiltre(ref strFiltre, m_txtVille, CActeur.c_champVille);


            if (m_cmbGroupes.SelectedValue != null)
            {
                if (strFiltre != "")
                {
                    strFiltre += " AND ";
                }
                strFiltre += "RelationsGroupes.GroupeActeur." + CGroupeActeur.c_champId + " = @" + nNumParam;
                tempFiltre.Parametres.Add(((CGroupeActeur)m_cmbGroupes.SelectedValue).Id);
                nNumParam++;
            }

            if (m_cmbRoles.SelectedValue != null)
            {
                CRoleActeur role        = (CRoleActeur)m_cmbRoles.SelectedValue;
                string      strNomtable = CContexteDonnee.GetNomTableForType(role.TypeDonneeActeur);

                if (strFiltre != "")
                {
                    strFiltre += " AND ";
                }
                strFiltre += strNomtable + "." + CActeur.c_champId + " >= 0";
                nNumParam++;
            }

            if (strFiltre == "")
            {
                strFiltre = "1 = 1";
            }
            tempFiltre.Filtre = strFiltre;
            Filtre            = tempFiltre;;

            OnAppliqueFiltre(new object(), null);
        }
コード例 #5
0
 //-------------------------------------------------------------------
 public static void RegisterRole()
 {
     CRoleActeur.RegisterRole(c_codeRole, I.T("Supplier|104"), typeof(CDonneesActeurFournisseur));
 }
コード例 #6
0
 //-------------------------------------------------------------------
 public static void RegisterRole()
 {
     CRoleActeur.RegisterRole(c_codeRole, I.T("Manufacturer|205"), typeof(CDonneesActeurConstructeur));
 }
コード例 #7
0
ファイル: CActeurServeur.cs プロジェクト: ykebaili/Timos
        //-------------------------------------------------------------------
        public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee ds)
        {
            CResultAErreur result = base.TraitementAvantSauvegarde(ds);

            if (!result)
            {
                return(result);
            }

            //Et envoie les notifications sur modification de données utilisateur
            DataTable table = ds.Tables[GetNomTable()];
            ArrayList lst   = new ArrayList(table.Rows);

            foreach (DataRow row in lst)
            {
                if (row.RowState == DataRowState.Added || row.RowState == DataRowState.Modified)
                {
                    CActeur acteur = new CActeur(row);

                    //sc2i.data.dynamic.CNettoyeurValeursChamps.NettoieChamps(acteur);

                    //Notification modification user
                    CDonneesActeurUtilisateur donneePart = (CDonneesActeurUtilisateur)acteur.GetDonneesRole(CRoleActeur.GetRole(CDonneesActeurUtilisateur.c_codeRole));
                    if (donneePart != null)
                    {
                        //TESTDBKEYOK
                        CDonneeNotificationChangementDroitUtilisateur notDroit = new CDonneeNotificationChangementDroitUtilisateur(IdSession, donneePart.DbKey);
                        CEnvoyeurNotification.EnvoieNotifications(new IDonneeNotification[] { notDroit });
                    }
                    if (acteur.ActeurParent != null &&
                        acteur.ActeurParent.IsChildOf(acteur))
                    {
                        result.EmpileErreur(I.T("A cyclic member relationship has been detected|134"));
                    }
                }
            }
            return(result);
        }
コード例 #8
0
 //-------------------------------------------------------------------
 public static void RegisterRole()
 {
     CRoleActeur.RegisterRole(c_codeRole, "Client", typeof(CDonneesActeurClient));
 }
コード例 #9
0
 //-------------------------------------------------------------------
 public static void RegisterRole()
 {
     CRoleActeur.RegisterRole(c_codeRole, I.T("Application User|290"), typeof(CDonneesActeurUtilisateur));
 }
コード例 #10
0
        /// ////////////////////////////////////////////////////////////////////
        public CResultAErreur SerializeFiltre(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }

            if (serializer.Mode == ModeSerialisation.Lecture)
            {
                InitCombos();
            }

            string strText = m_txtNom.Text;

            serializer.TraiteString(ref strText);
            m_txtNom.Text = strText;

            strText = m_txtCodePostal.Text;
            serializer.TraiteString(ref strText);
            m_txtCodePostal.Text = strText;

            strText = m_txtVille.Text;
            serializer.TraiteString(ref strText);
            m_txtVille.Text = strText;

            string strCodeRole = "";

            if (m_cmbRoles.SelectedValue is CRoleActeur)
            {
                strCodeRole = ((CRoleActeur)m_cmbRoles.SelectedValue).CodeRole;
            }
            serializer.TraiteString(ref strCodeRole);
            if (serializer.Mode == ModeSerialisation.Lecture)
            {
                m_cmbRoles.SelectedValue = CRoleActeur.GetRole(strCodeRole);
            }

            int nIdGroupe = -1;

            if (m_cmbGroupes.SelectedValue is CGroupeActeur)
            {
                nIdGroupe = ((CGroupeActeur)m_cmbGroupes.SelectedValue).Id;
            }
            serializer.TraiteInt(ref nIdGroupe);
            if (serializer.Mode == ModeSerialisation.Lecture)
            {
                if (nIdGroupe >= 0)
                {
                    CGroupeActeur groupe = new CGroupeActeur(CSc2iWin32DataClient.ContexteCourant);
                    if (groupe.ReadIfExists(nIdGroupe))
                    {
                        m_cmbGroupes.SelectedValue = groupe;
                    }
                }
            }



            return(result);
        }