using System; using IwbZero.IocNamed; using IwbZero.IwbBase; using IwbZero.IwbDataQuery; using IwbZero.ToolCommon.LogHelpers; using IwbZero.ToolCommon.StringModel; using WeEngine.ComponentInfo; using WeEngine.Components.InterfaceFactory; namespace WeEngine.Components.Statements { /// /// 创建数据源 /// [IocNamed(CompStmtType.CreateDataSource)] public class DataSourceCreateStatement : IStatementRunner { public bool Run(ComponentRunner runner, IwbXmlNode poStatement) { try { if (poStatement.GetChildNode("DataSource") == null) { string pcId = poStatement.GetChildValue("Id").UAndT(); string pcName = poStatement.GetChildValue("Name").UAndT(); string pcContent = poStatement.GetChildValue("Content").UAndT(); IwbDataSource source = IwbDataSource.ConvertFrom(pcId, pcName, pcContent); if (source != null) { source.Data = source.GetData(); runner.DataSources[pcId] = source; } return true; } foreach (IwbXmlNode node in poStatement.Nodes) { if (node.Name.UAndT() == "DaTaSource".UAndT()) { IwbDataSource source2 = IwbDataSource.ConvertFrom(node); if (source2 != null) { source2.SaveData(); runner.DataSources[source2.DSId] = source2; } } } return true; } catch (Exception e) { this.LogError(e); } return false; } } }