예제 #1
0
        /// <summary>
        ///     Fonction de commande en provenance de l'interface utilisateur.
        ///     <para> </para>
        ///     <para>
        ///         Par défaut, recherche, dans la classe de processus, une méthode ayant le nom de la commande et ayant
        ///         l'argument, la vue et le presentateur comme arguments. Si cette méthode est trouvée, elle est appelée.
        ///     </para>
        ///     <para> </para>
        ///     <para> Faire un override de cette méthode si un comportement autre est nécessaire. </para>
        /// </summary>
        /// <param name="command"> Commande à traiter </param>
        /// <param name="args"> Argument de la commande </param>
        /// <param name="view"> Référence de la vue implémenter par le formulaire </param>
        /// <param name="presenterBase"> Référence du présenteur </param>
        public virtual void OnCommand(string command, CommandEventArgsCustom args, View view,
                                      IPresenterBase presenterBase)
        {
            if (command != null)
            {
                var mi = GetType().GetMethod(command, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);

                if (mi != null)
                {
                    var pi = mi.GetParameters();

                    if (pi.Length == 3 &&
                        pi[0].ParameterType == typeof(CommandEventArgsCustom) &&
                        pi[1].ParameterType == typeof(View) &&
                        pi[2].ParameterType == typeof(IPresenterBase))
                    {
                        mi.Invoke(this, new object[] { args, view, presenterBase });
                    }
                }
            }
            else
            {
                PublishException(view, "ERREUR DESIGN : La commande pour effectuer l'action est null", null);
            }
        }
예제 #2
0
 /// <summary>
 ///     Permet à l'interface d'envoyer des commandes pour être exécutées côté présenteur
 /// </summary>
 /// <param name="command"> Commande à exécuter </param>
 /// <param name="args"> Liste de paramètres à la commande </param>
 public void ExecuteCommand(string command, CommandEventArgsCustom args)
 {
     ProcessInstance.OnCommand(command, args, mView, this);
 }