AddonsVirtuales.cs
1 using sage.ew.global;
2 using System;
3 using System.Collections.Generic;
4 using System.Data;
5 using System.IO;
6 using System.Linq;
7 using System.Reflection;
8 using System.Text;
9 
10 namespace Sage.ES.S50.Addons.Virtual
11 {
12  internal class AddonsVirtuales
13  {
14  #region Members
15 
16  private List<IAddonVirtual> _addonsVirtuales = new List<IAddonVirtual>();
17 
18  #endregion Members
19 
20  #region public properties
21 
25  public List<IAddonVirtual> Addons
26  {
27  get
28  {
29  return _addonsVirtuales;
30  }
31  }
32 
33  #endregion public properties
34 
35  #region Constructors
36 
37  internal AddonsVirtuales()
38  {
39 
40  }
41 
42  #endregion Constructors
43 
44  #region Public Methods
45  internal void CargaAddonsVirtuales(String tcPath, ref DataTable dataTable)
46  {
47  CargaLista(tcPath);
48 
49  foreach (IAddonVirtual addonVirtual in _addonsVirtuales)
50  {
51  addonVirtual.AddRow(ref dataTable);
52  }
53  }
54  #endregion
55 
56  #region Private Methods
57 
58  void CargaLista(String tcPath)
59  {
60  String lcPath;
61 
62  _addonsVirtuales.Clear();
63 
64  lcPath = Path.Combine(tcPath, "Sage.50.exe");
65 
66  Assembly assemblyS50 = Assembly.GetExecutingAssembly();
67  try
68  {
69  foreach (Type loType in assemblyS50.GetTypes())
70  {
71  try
72  {
73  if (loType.GetInterfaces().Contains(typeof(IAddonVirtual)) && !loType.IsAbstract)
74  {
75  var loObject = Activator.CreateInstance(loType);
76 
77  IAddonVirtual loAddon = (IAddonVirtual)loObject;
78 
79  _addonsVirtuales.Add(loAddon);
80  }
81  }
82  catch
83  {
84 
85  }
86  }
87  }
88  catch
89  {
90 
91  }
92  }
93 
94  #endregion
95  }
96 }
DataRow AddRow(ref DataTable dataTable)
Datatable