CargarExtensionesDocumentoStockCommand.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using sage.ew.interficies;
6 
7 
8 namespace Sage.ES.S50.Addons
9 {
13  internal class CargarExtensionesDocumentoStockCommand : Command
14  {
19  public CargarExtensionesDocumentoStockCommand(IAddonsManager addons) : base(addons)
20  {
21  Name = "CargarExtensionesDocumentoStock";
22  }
23 
29  protected override void CommandModulo(IModulo modulo, params object[] parameters)
30  {
31  IDocumentoBase documento = parameters[0] as IDocumentoBase;
32  string classtypename = documento.GetType().Name.ToLower();
33 
34  IExtensionDocsStock loExtension = (IExtensionDocsStock)modulo._Extension(classtypename);
35  if (loExtension != null)
36  {
37  loExtension._Documento = documento;
38  documento._Addons.Add(modulo._Nombre, loExtension);
39  }
40  }
41 
47  protected override bool Condition(params object[] parameters)
48  {
49  IDocumentoBase stock = (IDocumentoBase)parameters[0];
50  string classtypename = stock.GetType().Name.ToLower();
51  return base.Condition(parameters) && !string.IsNullOrWhiteSpace(classtypename) && stock._Addons.Count == 0;
52  }
53 
58  protected override ExpectedParameters GetExpectedParameters()
59  {
60  return new ExpectedParameters(new Type[] { typeof(IDocumentoBase) });
61  }
62  }
63 }
PE-93426 Interficie para los módulos de la aplicación
Definition: IModulo.cs:22
Interficie que se debe implementar para la extensión de los documentos de stock
Definition: IDocModulos.cs:744
Dictionary< string, object > _Addons
Diccionario donde cargaremos los addons disponibles (PE-100212)
Definition: IMantes.cs:54
dynamic _Documento
Referencia al documento base
Definition: IDocModulos.cs:195
object _Extension(string tcKey)
Se utilizará para obtener un objeto con las extensiones de los módulos disponibles para el documento ...
Interficie para los documentos base
string _Nombre
Nombre interno del módulo y nombre del directorio de instación
Definition: IModulo.cs:49