3 using System.Collections.Generic;
9 internal abstract class InvokeMethodAddon : IInvokeMethodAddon
12 private readonly Dictionary<string, object> addons;
13 protected string Name {
get;
set; }
17 internal InvokeMethodAddon(Dictionary<string,object> _addons)
24 public event InvokeMethodAddonsEventHandler OnBeginInvokeMethodAddon;
31 public event InvokeMethodAddonsEventHandler OnEndInvokeMethodAddons;
35 public event InvokeMethodErrorEventHandler OnErrorInvokeMethodsAddons;
41 public delegate
void InvokeMethodAddonsEventHandler(
object sender, InvokeMethodEventArgs e);
47 public delegate
void InvokeMethodErrorEventHandler(
object sender, InvokeMethodErrorEventArgs e);
51 #region Public Methods 52 public virtual object InvokeMethod(params
object[] parameters)
56 foreach (KeyValuePair<string, object> addon
in addons)
62 InvokeMethodEventArgs e =
new InvokeMethodEventArgs(Name, ((
IModulo)addon.Value)._Nombre);
63 OnBeginInvokeMethodAddon?.Invoke(null, e);
65 MethodModulo(modulo, parameters);
66 OnEndInvokeMethodAddons?.Invoke(null, e);
71 OnErrorInvokeMethodsAddons?.Invoke(
this,
new InvokeMethodErrorEventArgs(Name, ((
IModulo)addon.Value)._Nombre, e.Message));
77 protected abstract void MethodModulo(
IModulo modulo, params
object[] parameters);
78 protected virtual bool Condition(KeyValuePair<string, object> addon)
82 protected virtual bool Condition()
84 return HasAddonsLoaded();
86 protected virtual object Return()
91 #endregion Public Methods 93 #region Private Methods 94 protected virtual void OnError(InvokeMethodErrorEventArgs e)
96 OnEndInvokeMethodAddons?.Invoke(
this, e);
98 private bool HasAddonsLoaded()
100 return addons.Count() > 0;
103 #endregion Private Methods PE-93426 Interficie para los módulos de la aplicación