private static PlugResponse Humeur(PlugCall call) { PlugResponse response = new PlugResponse(); response.WaitForChainedAction = false; response.Response = "Je vais bien, merci"; return response; }
private static PlugResponse StandBy(PlugCall call) { GlobalManager.STANDBY = true; PlugResponse response = new PlugResponse(); response.WaitForChainedAction = false; response.Response = "Mode espion activé"; return response; }
private static PlugResponse ContextChange(PlugCall call) { PlugResponse response = new PlugResponse(); response.Response = "Quel contexte voulez vous charger ?"; response.WaitForChainedAction = true; response.NextChainedAction = "LOAD CONTEXT"; GlobalManager.LastResponse = response; return response; }
private static PlugResponse Hello(PlugCall call) { PlugResponse response = new PlugResponse(); response.WaitForChainedAction = true; response.ChainedQuestion = "Comment ça va ?"; response.Response = "Bonjour !"; response.NextChainedAction = "HUMEUR"; return response; }
public static PlugResponse FireAction(string ActionName, string sentence) { PlugResponse response = new PlugResponse(); PlugCall call = new PlugCall(); call.ACTION = ActionName; call.Text = sentence; SENTENCES tmp = CONTEXT.SENTENCESLIST.Where(t => t.CMD.CMD.Equals(ActionName)).Where(t=>t.SENTENCE.Equals(sentence)).Single(); // Todo: recherche une correspondance dans la BDD if (tmp == null) { return new PlugResponse(); } else { // Chargement de la DLL concernée SENTENCES cmd = GlobalManager.CONTEXT.SENTENCESLIST.Where(t => t.CMD.CMD.Equals(ActionName) && t.SENTENCE.Equals(sentence)).Single(); if (cmd.CMD.MODULE.NAME.Equals("SYSTEM")) { response = SYSMODULE.DoAction(call); LastResponse = response; return response; } else { /* TEST */ // Chargement de la DLL string DLLPATH = cmd.CMD.MODULE.DLL; List<Assembly> assemblies = new List<Assembly>(); Assembly DLL = Assembly.LoadFrom(@"C:\Users\adasilva\Documents\Visual Studio 2015\Projects\MATHIAS\Mathias\bin\Debug\plugins\EmailPlug.dll"); // Récupération de l'objet à utiliser var typeFromPlug = DLL.GetType(cmd.CMD.FULLTYPEOBJECT); var plug = Activator.CreateInstance(typeFromPlug, new object[] { "imap.gmail.com", "login", "password", 993 }); // Récupération de la méthode var method = typeFromPlug.GetMethod("DoAction"); //Execution de la méthode et retour du cast return (PlugResponse) method.Invoke(plug, new object[] { call }); } response = new PlugResponse(); // LOAD DLL } // Création de l'objet PlugCall // Lancement de la méthode concernée // Si non // Indiquer aucune commande correspondante. return null; }
public static PlugResponse DoAction(PlugCall call) { switch(call.ACTION) { case "HELLO": return Hello(call); case "HUMEUR": return Humeur(call); case "EXIT": return CloseApp(call); case "CONTEXT": return ContextChange(call); case "LOAD CONTEXT": return null; //LoadContext(call); case "OFF": return StandBy(call); default: return null; } }
private static PlugResponse CloseApp(PlugCall call) { GlobalManager.RUNNING = false; System.Threading.Thread.Sleep(1000); return new PlugResponse() { Response= "Au revoir"}; }
public abstract PlugResponse DoAction(PlugCall Call);
public PlugResponse DoAction(PlugCall Call) { switch (Call.ACTION) { case "GetLastMailSubject": return GetLastMailSubject(); default: return new PlugResponse() { Response = "Je ne peux pas traiter votre demande" }; } }