예제 #1
0
        /// <summary>
        /// Creates the excel.
        /// </summary>
        private void CreateExcel()
        {
            ExcelDbConnectionStringBuilder builder = new ExcelDbConnectionStringBuilder(btnDataSource.Text)
            {
                ["User ID"]             = txtUserId.Text,
                ["Password"]            = txtPassword.Text,
                ["Extended Properties"] = txtExt.Text
            };

            Model.DataSource = new ExcelDataSource(builder.ConnectionString);
            Model.RefreshSchemaModel();

            //var macros = Model.TableSchemas.SelectMany(s => s.Fields).
            //    Where(w => string.IsNullOrEmpty(w.ValidationMacros) == false);

            //var schema = Model.DataSource.GetSchemaModel();

            //foreach (var macro in macros)
            //{
            //   // var item = Model.TableSchemas.Where(w => w.TableName == macro.TableName).SingleOrDefault().
            //   //     Fields.Where(w => w.Name == macro.Name).SingleOrDefault();

            //    var item = schema.Where(w => w.TableName == macro.TableName).SingleOrDefault().
            //        Fields.Where(w => w.Name == macro.Name).SingleOrDefault();

            //    if (item != null)
            //        item.ValidationMacros = macro.ValidationMacros;

            //}

            //Model.TableSchemas = schema;
            Model.DataSource.ProviderName = "Microsoft Excel";
        }
        public void Test_ExcelSchemas()
        {
            ExcelDbConnectionStringBuilder builder = new ExcelDbConnectionStringBuilder(@".\cd_clinical.xlsx");
            OleDbDataSource dql   = new OleDbDataSource(builder.ConnectionString);
            var             model = dql.GetSchemaModel();

            Assert.AreEqual(1, model.Where(w => w.TableName == "Sheet1$").Count());
        }
        public void Test_ExcelSchema()
        {
            ExcelDbConnectionStringBuilder builder = new ExcelDbConnectionStringBuilder(@".\cd_clinical.xlsx");
            OleDbDataSource dql = new OleDbDataSource(builder.ConnectionString);

            var model = dql.GetSchemaModel("Sheet1$");

            Assert.AreEqual(model.TableName, "Sheet1$");
        }
예제 #4
0
        /// <summary>
        /// Tests the excel.
        /// </summary>
        private void TestExcel()
        {
            ExcelDbConnectionStringBuilder builder = new ExcelDbConnectionStringBuilder(btnDataSource.Text)
            {
                ["Extended Properties"] = txtExt.Text
            };

            using (OleDbConnection cn = new OleDbConnection(builder.ConnectionString))
            {
                cn.Open();
            }
        }
        public void Test_ExcelQueryBuilder()
        {
            ExcelDbConnectionStringBuilder builder = new ExcelDbConnectionStringBuilder(@".\cd_clinical.xlsx");
            OleDbDataSource dql = new OleDbDataSource(builder.ConnectionString);

            QueryBuilder query  = dql.GetQueryBuilder();
            var          select = query.BuildSql("r_object_id", new string[] { "object_name", "r_object_type" }, "Sheet1$", "left", "0", "r_object_id", new string[] { "090200f1800de14c" }, null);
            var          table  = dql.ExecuteQuery(select);

            Assert.AreEqual(table.Tables.Count, 1);
            Assert.AreEqual(table.Tables[0].Rows.Count, 1);
        }
        public void Test_ExcelConnection()
        {
            string file = @"C:\Users\mcarlucci\Documents\Visual Studio 2017\Projects\Fme.Database.Verification\Fme.Library.Tests\bin\Debug\dm_document1.xlsx";
            ExcelDbConnectionStringBuilder builder = new ExcelDbConnectionStringBuilder(file);

            OleDbDataSource dql = new OleDbDataSource(builder.ConnectionString);
            var             x   = dql.GetConnectionStringBuilder();
            var             y   = x["Data Source"];
            OleDbConnection cn  = new OleDbConnection(x.ConnectionString);

            cn.Open();
        }
        public void ValidationTest_Datatable()
        {
            string path      = @"C:\Users\mcarlucci\Desktop\Tim\";
            string modelFile = "Validation Test Model.xml";
            string xlsFile   = "SmartSolve Extract.xlsx";
            var    temp      = Serializer.DeSerialize <CompareModel>(path + modelFile);

            ExcelDbConnectionStringBuilder builder = new ExcelDbConnectionStringBuilder(path + xlsFile);
            OleDbDataSource dql = new OleDbDataSource(builder.ConnectionString);
            var             ds  = dql.ExecuteQuery(string.Format("select * from [{0}]", temp.Source.SelectedTable));

            ValidatorRepository repo = new ValidatorRepository();

            repo.Execute(ds.Table(), temp.Source.SelectedSchema().Fields);
        }
        public void Test_SetupComparison()
        {
            ExcelDbConnectionStringBuilder builder1 = new ExcelDbConnectionStringBuilder(@".\dm_document1.xlsx");
            ExcelDataSource dql1   = new ExcelDataSource(builder1.ConnectionString);
            var             source = dql1.GetSchemaModel("Sheet1$");

            ExcelDbConnectionStringBuilder builder2 = new ExcelDbConnectionStringBuilder(@".\dm_document3.xlsx");
            ExcelDataSource dql2   = new ExcelDataSource(builder2.ConnectionString);
            var             target = dql2.GetSchemaModel("Sheet1$");

            var model = new CompareModel();
            //model.Source.DataSource = dql1;
            //model.Source.TableSchemas = source;
            //model.Source.SelectedTable = "Sheet1$";
            //model.Target = dsl2;
            //model.Target.TableSchemas = target;
            //model.Target.SelectedTable = "Sheet1$";


            var pairs = source.Fields.
                        Join(target.Fields,
                             s => new { s.Name },
                             t => new { t.Name },
                             (s, t) => new CompareMappingModel(s.Name, t.Name)
                             ).ToList();

            //  model.ColumnCompare = pairs;


            //QueryBuilder query = new QueryBuilder();
            //var select1 = query.BuildSql("r_object_id", pairs.Select(s=> s.LeftSide.Field).ToArray(), "Sheet1$", "left");
            //var select2 = query.BuildSql("r_object_id", pairs.Select(s => s.RightSide.Field).ToArray(), "Sheet1$", "right");

            //var t1 = dql1.ExecuteQuery(select1).Tables[0];
            //var t2 = dql2.ExecuteQuery(select2).Tables[0];
            //t1.SetPrimaryKey(Alias.Primary_Key, t2);
            //t1.Merge(t2);
            //TODO: order columns
            //TODO Now we should do the compare.
            //Next Dump to Excel? or do we do the compare within excel
        }
        public void Test_Merge()
        {
            //var b = new ExcelDbConnectionStringBuilder(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\dm_document1.xlsx;Extended Properties='Excel 12.0;IMEX=1;ImportMixedTypes=Text;READONLY=TRUE");

            ExcelDbConnectionStringBuilder builder1 = new ExcelDbConnectionStringBuilder(@".\dm_document1.xlsx");
            ExcelDataSource dql1 = new ExcelDataSource(builder1.ConnectionString);

            Serializer.Serialize(@".\dql.xml", dql1);

            var qb1 = dql1.GetQueryBuilder();
            var cb2 = dql1.GetConnectionStringBuilder();

            qb1.BuildSql("r_object_id2", new string[] { "r_object_id2", "r_object_type" }, "Sheet1$", "right", "0", null);


            QueryBuilder query   = new QueryBuilder();
            var          select1 = query.BuildSql("r_object_id", new string[] { "object_name", "r_object_type" }, "Sheet1$", "", "0", null);
            var          table1  = dql1.ExecuteQuery(select1);

            dql1.SetAliases(table1.Tables[0], "left");

            var schema1 = dql1.GetSchemaModel("Sheet1$");

            ExcelDbConnectionStringBuilder builder2 = new ExcelDbConnectionStringBuilder(@".\dm_document3.xlsx");
            OleDbDataSource dql2    = new OleDbDataSource(builder2.ConnectionString);
            var             schema2 = dql2.GetSchemaModel("Sheet1$");


            var select2 = query.BuildSql("r_object_id", new string[] { "r_object_id2", "r_object_type" }, "Sheet1$", "", "0", null);
            var table2  = dql2.ExecuteQuery(select2);

            dql2.SetAliases(table2.Tables[0], "right");

            var source = table1.Tables[0];
            var target = table2.Tables[0];


            source.SetPrimaryKey(Alias.Primary_Key, target);
            source.Merge(target);
        }