DataSourceCreateStatement.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using IwbZero.IocNamed;
  3. using IwbZero.IwbBase;
  4. using IwbZero.IwbDataQuery;
  5. using IwbZero.ToolCommon.LogHelpers;
  6. using IwbZero.ToolCommon.StringModel;
  7. using WeEngine.ComponentInfo;
  8. using WeEngine.Components.InterfaceFactory;
  9. namespace WeEngine.Components.Statements
  10. {
  11. /// <summary>
  12. /// 创建数据源
  13. /// </summary>
  14. [IocNamed(CompStmtType.CreateDataSource)]
  15. public class DataSourceCreateStatement : IStatementRunner
  16. {
  17. public bool Run(ComponentRunner runner, IwbXmlNode poStatement)
  18. {
  19. try
  20. {
  21. if (poStatement.GetChildNode("DataSource") == null)
  22. {
  23. string pcId = poStatement.GetChildValue("Id").UAndT();
  24. string pcName = poStatement.GetChildValue("Name").UAndT();
  25. string pcContent = poStatement.GetChildValue("Content").UAndT();
  26. IwbDataSource source = IwbDataSource.ConvertFrom(pcId, pcName, pcContent);
  27. if (source != null)
  28. {
  29. source.Data = source.GetData();
  30. runner.DataSources[pcId] = source;
  31. }
  32. return true;
  33. }
  34. foreach (IwbXmlNode node in poStatement.Nodes)
  35. {
  36. if (node.Name.UAndT() == "DaTaSource".UAndT())
  37. {
  38. IwbDataSource source2 = IwbDataSource.ConvertFrom(node);
  39. if (source2 != null)
  40. {
  41. source2.SaveData();
  42. runner.DataSources[source2.DSId] = source2;
  43. }
  44. }
  45. }
  46. return true;
  47. }
  48. catch (Exception e)
  49. {
  50. this.LogError(e);
  51. }
  52. return false;
  53. }
  54. }
  55. }