CargarExtensionesManteTRelCommand.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using sage.ew.interficies;
6 
7 namespace Sage.ES.S50.Addons
8 {
9  internal class CargarExtensionesManteTRelCommand : Command
10  {
11  int ordenaddon = 0;
12  public CargarExtensionesManteTRelCommand(IAddonsManager addons) : base(addons)
13  {
14  Name = "CargarExtensionesManteTRel";
15  }
16 
17  protected override void CommandModulo(IModulo modulo, params object[] parameters)
18  {
19  dynamic loExtension = null;
20 
21  ordenaddon += 1000;
22  IManteTRel manteTRel = parameters[0] as IManteTRel;
23  // Se permite cargar el addon por nombre de pantalla o tabla.
24  if (!string.IsNullOrWhiteSpace(manteTRel._Tabla))
25  {
26  loExtension = modulo._ExtensionManteTRel(manteTRel._Tabla, manteTRel, ordenaddon);
27  if (loExtension == null)
28  loExtension = modulo._ExtensionManteTRel(manteTRel._Tabla, manteTRel);
29  if (loExtension == null)
30  loExtension = modulo._ExtensionManteTRel(manteTRel._Tabla);
31  }
32 
33  if (loExtension != null)
34  {
35  //loExtension._Mante = this;
36  manteTRel._Addons.Add(modulo._Nombre, loExtension);
37  }
38 
39  }
40 
41  protected override ExpectedParameters GetExpectedParameters()
42  {
43  return new ExpectedParameters(new Type[] { typeof(IManteTRel) });
44  }
45  protected override bool Condition(params object[] parameters)
46  {
47  return base.Condition(parameters) && ((IManteTRel)parameters[0])._Addons.Count == 0;
48  }
49  }
50 }
PE-93426 Interficie para los módulos de la aplicación
Definition: IModulo.cs:22
string _Tabla
Nombre de la tabla relacionada
Definition: IMantes.cs:484
Dictionary< string, object > _Addons
Diccionario donde cargaremos los addons disponibles (PE-100212)
Definition: IMantes.cs:567
object _ExtensionManteTRel(string tcKey)
Se utilizará para obtener un objeto con las extensiones de los módulos disponibles para el documento ...
Interficie con las operaciones básicas de los ManteTRel
Definition: IMantes.cs:474
string _Nombre
Nombre interno del módulo y nombre del directorio de instación
Definition: IModulo.cs:49