/// <summary> /// Obtiene un origen de datos para una consulta SQL /// </summary> private DataSourceSqlModel LoadDataSourceSql(DataWarehouseModel dataWarehouse, MLNode rootML) { DataSourceSqlModel dataSource = new DataSourceSqlModel(dataWarehouse); // Carga las propiedades dataSource.Id = rootML.Attributes[TagId].Value.TrimIgnoreNull(); // Asigna la base de datos y la cadena SQL dataSource.Sql = rootML.Nodes[TagSql].Value.TrimIgnoreNull(); // Carga las columnas foreach (MLNode nodeML in rootML.Nodes) { if (nodeML.Name == TagColumn) { dataSource.Columns.Add(LoadColumn(dataSource, nodeML)); } } // Carga los parámetros de consulta foreach (MLNode nodeML in rootML.Nodes) { if (nodeML.Name == TagParameter) { dataSource.Parameters.Add(LoadParameter(nodeML)); } } // Devuelve el origen de datos return(dataSource); }
public DataSourceSqlViewModel(ReportingSolutionViewModel reportingSolutionViewModel, DataSourceSqlModel dataSource) { // Inicializa los objetos ReportingSolutionViewModel = reportingSolutionViewModel; DataSource = dataSource; // Inicializa las propiedades InitViewModel(); }
/// <summary> /// Borra un origen de datos de SQL /// </summary> private void DeleteDataSourceSql(DataSourceSqlModel dataSource) { if (ReportingSolutionViewModel.SolutionViewModel.MainController.SystemController.ShowQuestion($"¿Realmente desea borrar los datos del origen de datos {dataSource.Id}?")) { // Borra el origen de datos dataSource.DataWarehouse.DataSources.Remove(dataSource); // Graba la solución y actualiza el árbol SaveDataWarehouse(dataSource.DataWarehouse); } }
/// <summary> /// Crea un origen de datos de SQL /// </summary> private void CreateDataSource(int dataSourceId, DataSourceSqlModel dataSourceSql, ref int columnId, ref int parameterId) { // Inserta el origen de datos en la lista DataBaseIds.Add(("DataSource", dataSourceSql.Id, dataSourceId, null)); // Crea el registro de origen de datos SQL Builder.AppendLine($@"INSERT INTO DataSources (DataSourceId, [Schema], [Table], Sql) VALUES ({dataSourceId}, NULL, {Convert(dataSourceSql.Id)}, {Convert(dataSourceSql.Sql)});" ); // Crea las columnas CreateDataSourceColumns(dataSourceId, dataSourceSql.Columns, ref columnId); // Crea los parámetros CreateDataSourceParameters(dataSourceId, dataSourceSql.Parameters, ref parameterId); }
public ListDataSourceParametersViewModel(ReportingSolutionViewModel reportingSolutionViewModel, DataSourceSqlModel dataSource, bool updatable) { // Asigna las propiedades ReportingSolutionViewModel = reportingSolutionViewModel; DataSource = dataSource; Updatable = updatable; // Inicializa el viewModel InitViewModel(); // Asigna los comandos NewParameterCommand = new BaseCommand(_ => CreateParameter()); DeleteParameterCommand = new BaseCommand(_ => DeleteParameter(), _ => SelectedItem != null) .AddListener(this, nameof(SelectedItem)); }
/// <summary> /// Obtiene el nodo de un origen de datos /// </summary> private MLNode GetNodeDataSourceSql(DataSourceSqlModel dataSource) { MLNode nodeML = new MLNode(TagDataSourceSql); // Asigna las propiedades nodeML.Attributes.Add(TagId, dataSource.Id); nodeML.Nodes.Add(TagSql, dataSource.Sql); // Añade las columnas y los parámetros nodeML.Nodes.AddRange(GetNodesColumns(dataSource.Columns)); nodeML.Nodes.AddRange(GetNodesParameters(dataSource.Parameters)); // Devuelve el nodo return(nodeML); }
/// <summary> /// Abre un origen de datos /// </summary> private void OpenDataSource(NodeDataSourceViewModel node) { if (node == null || node.DataSource is DataSourceSqlModel) { DataSourceSqlModel dataSource = null; // Genera el origen de datos if (node != null && node.DataSource is DataSourceSqlModel dataSourceSql) { dataSource = dataSourceSql; } else { dataSource = new DataSourceSqlModel(GetSelectedDataWarehouse(SelectedNode)); } // Abre la vista ReportingSolutionViewModel.SolutionViewModel.MainController.OpenWindow(new DataSources.DataSourceSqlViewModel(ReportingSolutionViewModel, dataSource)); } else if (node.DataSource is DataSourceTableModel dataSourceTable) { ReportingSolutionViewModel.SolutionViewModel.MainController.OpenWindow(new DataSources.DataSourceTableViewModel(ReportingSolutionViewModel, dataSourceTable)); } }