/// <summary>
        ///		Carga los datos de un <see cref="DataWarehouseModel"/>
        /// </summary>
        internal DataWarehouseModel Load(ReportingSchemaModel schema, string fileName)
        {
            DataWarehouseModel dataWarehouse = new DataWarehouseModel(schema);

            // Carga los datos
            if (System.IO.File.Exists(fileName))
            {
                MLFile fileML = new LibMarkupLanguage.Services.XML.XMLParser().Load(fileName);

                if (fileML != null)
                {
                    foreach (MLNode rootML in fileML.Nodes)
                    {
                        if (rootML.Name == TagRoot)
                        {
                            // Asigna las propiedades
                            dataWarehouse.Id          = rootML.Attributes[TagId].Value.TrimIgnoreNull();
                            dataWarehouse.Name        = rootML.Nodes[TagName].Value.TrimIgnoreNull();
                            dataWarehouse.Description = rootML.Nodes[TagDescription].Value.TrimIgnoreNull();
                            // Carga las dimensiones y orígenes de datos
                            foreach (MLNode nodeML in rootML.Nodes)
                            {
                                switch (nodeML.Name)
                                {
                                case TagDataSourceTable:
                                    dataWarehouse.DataSources.Add(LoadDataSourceTable(dataWarehouse, nodeML));
                                    break;

                                case TagDataSourceSql:
                                    dataWarehouse.DataSources.Add(LoadDataSourceSql(dataWarehouse, nodeML));
                                    break;

                                case TagDimension:
                                    dataWarehouse.Dimensions.Add(LoadDimension(nodeML, dataWarehouse));
                                    break;

                                case TagReport:
                                    dataWarehouse.Reports.Add(LoadReport(nodeML, dataWarehouse));
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            // Devuelve los datos del almacén de datos
            return(dataWarehouse);
        }
Пример #2
0
        /// <summary>
        ///		Convierte un archivo de esquema de base de datos en un <see cref="DataWarehouseModel"/>
        /// </summary>
        internal DataWarehouseModel Convert(ReportingSchemaModel schema, string name, string fileName)
        {
            SchemaDbModel      schemaDb      = new LibDbSchema.Repository.Xml.SchemaXmlManager().Load(fileName);
            DataWarehouseModel dataWarehouse = new DataWarehouseModel(schema);

            // Asigna las propiedades
            dataWarehouse.Name = name;
            // Genera los orígenes de datos de las tablas
            foreach (TableDbModel table in schemaDb.Tables)
            {
                dataWarehouse.DataSources.Add(ConvertDataSource(dataWarehouse, table));
            }
            // Genera los orígenes de datos de las vistas
            foreach (ViewDbModel view in schemaDb.Views)
            {
                dataWarehouse.DataSources.Add(ConvertDataSource(dataWarehouse, view));
            }
            // Devuelve el objeto
            return(dataWarehouse);
        }
Пример #3
0
 public DataWarehouseModel(ReportingSchemaModel schema)
 {
     Schema = schema;
 }
 internal ReportQueryGenerator(ReportingSchemaModel schema, ReportModel report, ReportRequestModel request)
 {
     Schema  = schema;
     Report  = report;
     Request = request;
 }