Exemplo n.º 1
0
        //private static SqlCeDatabase GetDatabase(string generatedNamespace, string connectionString)
        //{
        //    var database = new SqlCeDatabase(generatedNamespace, connectionString);
        //    database.Verify();
        //    database.AnalyzeDatabase();
        //    return database;
        //}

        public static ISqlCeDatabase GetDatabase(string fileNameSpace, string inputFileName, string password = null)
        {
            try
            {
                var fi = new FileInfo(inputFileName);
                var generatedNamespace = fileNameSpace + "." +
                                         fi.Name.Replace(fi.Extension, string.Empty).Replace(" ", string.Empty);
                var connectionString = GetConnectionString(inputFileName, password);
                var database         = SqlCeDatabaseFactory.Create(generatedNamespace, connectionString);
                database.DatabaseFilename = inputFileName;
                database.Verify();
                database.AnalyzeDatabase();
                return(database);
            }
            catch (SqlCeException e)
            {
                if (e.NativeError == 25028 || e.NativeError == 25140 || e.Message.ToLower().Contains("password"))
                {
                    var passwordResult = PromptForPassword();
                    if (!string.IsNullOrEmpty(passwordResult))
                    {
                        return(GetDatabase(fileNameSpace, inputFileName, passwordResult));
                    }
                }
                throw;
            }
        }
Exemplo n.º 2
0
        public void DatabaseConstructorWithConnectionStringAndNamespaceTest()
        {
            string defaultNamespace = "SqlCeCodeGenTest";
            var    target           = SqlCeDatabaseFactory.Create(defaultNamespace, connectionString);

            Assert.AreEqual(defaultNamespace, target.DefaultNamespace);
        }
        private static ISqlCeDatabase GetDatabase(string defaultNamespace, string connectionString)
        {
            var database = SqlCeDatabaseFactory.Create(defaultNamespace, connectionString);

            database.AnalyzeDatabase();
            return(database);
        }
Exemplo n.º 4
0
        protected static ISqlCeDatabase GetDatabase()
        {
            var          defaultNamespace = typeof(CodeGenTest).Namespace;
            const string connectionString = "Data Source=Northwind.sdf;";

            return(SqlCeDatabaseFactory.Create(defaultNamespace, connectionString));
        }
Exemplo n.º 5
0
        private void AnalyzeDatabase()
        {
            Task.Factory.StartNew(() =>
            {
                try
                {
                    if (!File.Exists(dataSource))
                    {
                        throw new InvalidOperationException("Unable to find " + dataSource);
                    }

                    Text = "SQL Compact Query Analyzer" + " - " + dataSource;

                    var fileInfo         = new FileInfo(dataSource);
                    fileInfo.Attributes &= ~FileAttributes.ReadOnly;

                    database = SqlCeDatabaseFactory.Create(GetConnectionString());
                    while (!database.VerifyConnectionStringPassword())
                    {
                        bool?result           = null;
                        PasswordWindow window = null;
                        Application.Current.Dispatcher.Invoke((Action) delegate
                        {
                            window = new PasswordWindow();
                            result = window.ShowDialog();
                        });
                        if (result != true)
                        {
                            return;
                        }
                        password = window.Password;
                        database.ConnectionString = GetConnectionString(4091);
                    }

                    AnalyzingTablesIsBusy = true;

                    var stopwatch = Stopwatch.StartNew();

                    database.AnalyzeDatabase();

                    ResultSetMessages = "Analyzed database in " + stopwatch.Elapsed;
                    stopwatch.Stop();

                    Application.Current.Dispatcher.Invoke((Action)PopulateTables);

                    AddRecentFile(dataSource);
                }
                catch (Exception e)
                {
                    ResultSetErrors        = e.ToString();
                    CurrentResultsTabIndex = 3;
                }
                finally
                {
                    AnalyzingTablesIsBusy = false;
                }
            });
        }
Exemplo n.º 6
0
        public void TablesNotNullTest()
        {
            var target = SqlCeDatabaseFactory.Create(connectionString);

            target.AnalyzeDatabase();

            Assert.IsNotNull(target.Tables);
            CollectionAssert.AllItemsAreNotNull(target.Tables);
        }
Exemplo n.º 7
0
        public void TableNameNotNullTest()
        {
            var target = SqlCeDatabaseFactory.Create(connectionString);

            target.AnalyzeDatabase();

            foreach (var table in target.Tables)
            {
                Assert.IsFalse(string.IsNullOrEmpty(table.Name));
            }
        }
Exemplo n.º 8
0
        public void CodeGeneratorFactoryStaticCreateCsharpTest()
        {
            var defaultNamespace = typeof(CodeGenTest).Namespace;
            var connectionString = "Data Source=Northwind.sdf";
            var database         = SqlCeDatabaseFactory.Create(defaultNamespace, connectionString);
            var codeGenerator    = CodeGeneratorFactory.Create(database, "CSharp");

            Assert.IsNotNull(codeGenerator);
            Assert.IsInstanceOfType(codeGenerator, typeof(CodeGenerator));
            Assert.IsInstanceOfType(codeGenerator, typeof(CSharpCodeGenerator));
        }
Exemplo n.º 9
0
        public void CodeGeneratorFactoryCreateVisualBasicTest()
        {
            var defaultNamespace = typeof(CodeGenTest).Namespace;
            var connectionString = "Data Source=Northwind.sdf";
            var database         = SqlCeDatabaseFactory.Create(defaultNamespace, connectionString);
            var factory          = new CodeGeneratorFactory(database);
            var codeGenerator    = factory.Create("VB");

            Assert.IsNotNull(codeGenerator);
            Assert.IsInstanceOfType(codeGenerator, typeof(CodeGenerator));
            //Assert.IsInstanceOfType(codeGenerator, typeof(VisualBasicCodeGenerator));
        }
Exemplo n.º 10
0
        public void ColumnsNotNullTest()
        {
            var target = SqlCeDatabaseFactory.Create(connectionString);

            target.AnalyzeDatabase();

            foreach (var table in target.Tables)
            {
                Assert.IsNotNull(table.Columns);
                CollectionAssert.AllItemsAreNotNull(table.Columns);
            }
        }
Exemplo n.º 11
0
        public void ColumnOrdinalTest()
        {
            var target = SqlCeDatabaseFactory.Create(connectionString);

            target.AnalyzeDatabase();

            foreach (var table in target.Tables)
            {
                foreach (var column in table.Columns)
                {
                    Assert.AreNotEqual(0, column.Value.Ordinal);
                }
            }
        }
Exemplo n.º 12
0
        public void UnitTestCodeGeneratorFactoryCreateMSTestTest()
        {
            var          defaultNamespace = typeof(CodeGenTest).Namespace;
            const string connectionString = "Data Source=Northwind.sdf";
            var          database         = SqlCeDatabaseFactory.Create(defaultNamespace, connectionString);
            var          factory          = new UnitTestCodeGeneratorFactory(database);
            var          codeGenerator    = factory.Create("MSTest");

            Assert.IsNotNull(codeGenerator);
            Assert.IsInstanceOfType(codeGenerator, typeof(CodeGenerator));
            Assert.IsInstanceOfType(codeGenerator, typeof(CSharpCodeGenerator));
            Assert.IsInstanceOfType(codeGenerator, typeof(CSharpUnitTestCodeGenerator));
            Assert.IsInstanceOfType(codeGenerator, typeof(MSTestUnitTestCodeGenerator));
        }
Exemplo n.º 13
0
        public void IndexColumnNotNullTest()
        {
            var target = SqlCeDatabaseFactory.Create(connectionString);

            target.AnalyzeDatabase();

            foreach (var table in target.Tables)
            {
                foreach (var index in table.Indexes)
                {
                    Assert.IsNotNull(index.Column);
                }
            }
        }
Exemplo n.º 14
0
        public void ColumnDatabaseTypeNotNullTest()
        {
            var target = SqlCeDatabaseFactory.Create(connectionString);

            target.AnalyzeDatabase();

            foreach (var table in target.Tables)
            {
                foreach (var column in table.Columns)
                {
                    Assert.IsFalse(string.IsNullOrEmpty(column.Value.DatabaseType));
                }
            }
        }
Exemplo n.º 15
0
        public void ColumnManagedTypeNotNullTest()
        {
            var target = SqlCeDatabaseFactory.Create(connectionString);

            target.AnalyzeDatabase();

            foreach (var table in target.Tables)
            {
                foreach (var column in table.Columns)
                {
                    Assert.IsNotNull(column.Value.ManagedType);
                }
            }
        }
Exemplo n.º 16
0
        public void Connect(string path)
        {
            dataSource = path;
            if (!File.Exists(dataSource))
            {
                throw new InvalidOperationException("Unable to find Windows Live Photo Gallery database file:" + dataSource);
            }

            var       connstr   = string.Format("Data Source={0}; Password={1};", path, "");
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            database = SqlCeDatabaseFactory.Create(connstr);
            stopwatch.Stop();
            if (stopwatch.ElapsedMilliseconds > 200)
            {
                Logger.Info("Connect Compact SQL CE " + stopwatch.ElapsedMilliseconds.ToString());
            }
        }
Exemplo n.º 17
0
        public void CreateDatabase()
        {
            ISqlCeDatabase database = null;

            switch (SelectedIndex)
            {
            case 0:
                database = SqlCeDatabaseFactory.Create(SupportedVersions.SqlCe31);
                break;

            case 1:
                database = SqlCeDatabaseFactory.Create(SupportedVersions.SqlCe35);
                break;

            case 2:
                database = SqlCeDatabaseFactory.Create(SupportedVersions.SqlCe40);
                break;
            }

            if (database != null)
            {
                database.CreateDatabase(Filename, Password, MaxDatabaseSize);
            }
        }
Exemplo n.º 18
0
        public void DatabaseConstructorWithConnectionStringTest()
        {
            var target = SqlCeDatabaseFactory.Create(connectionString);

            Assert.AreEqual("SqlCeCodeGen", target.DefaultNamespace);
        }
Exemplo n.º 19
0
        private TreeViewItem GetDatabaseInformationTree()
        {
            try
            {
                var fileInfo = new FileInfo(dataSource);

                var propertiesNode = new TreeViewItem {
                    Header = "Database Information"
                };
                propertiesNode.Selected += OnTreeViewItemSelected;
                propertiesNode.Items.Add(new TreeViewItem {
                    Header = "File name:  " + fileInfo.Name
                });
                propertiesNode.Items.Add(new TreeViewItem {
                    Header = "Date Created:  " + fileInfo.CreationTime
                });
                propertiesNode.Items.Add(new TreeViewItem {
                    Header = "Last Modified:  " + fileInfo.LastWriteTime
                });
                propertiesNode.Items.Add(new TreeViewItem {
                    Header = "Version:  " + SqlCeDatabaseFactory.GetRuntimeVersion(dataSource)
                });
                propertiesNode.Items.Add(new TreeViewItem {
                    Header = "Password Protected:  " + !string.IsNullOrEmpty(password)
                });
                propertiesNode.Items.Add(new TreeViewItem {
                    Header = string.Format(new FileSizeFormatProvider(), "File size:  {0:fs}", fileInfo.Length)
                });
                propertiesNode.ExpandSubtree();

                var schemaSummaryNode = new TreeViewItem {
                    Header = "Schema Summary"
                };
                schemaSummaryNode.Selected += OnTreeViewItemSelected;
                schemaSummaryNode.Items.Add(new TreeViewItem {
                    Header = "Tables:  " + database.Tables.Count
                });
                schemaSummaryNode.Items.Add(new TreeViewItem {
                    Header = "Columns:  " + database.Tables.Sum(c => c.Columns.Count)
                });
                schemaSummaryNode.Items.Add(new TreeViewItem {
                    Header = "Primary keys:  " + database.Tables.Count(c => !string.IsNullOrEmpty(c.PrimaryKeyColumnName))
                });
                //schemaSummaryNode.Items.Add(new TreeViewItem { Header = "Foreign keys:  " + database.Tables.Sum(c => c.Columns.Where(x => x.Value.IsForeignKey).Count()) });
                schemaSummaryNode.Items.Add(new TreeViewItem {
                    Header = "Identity fields:  " + database.Tables.Sum(c => c.Columns.Count(x => x.Value.IdentityIncrement.HasValue))
                });
                schemaSummaryNode.Items.Add(new TreeViewItem {
                    Header = "Nullable fields:  " + database.Tables.Sum(c => c.Columns.Count(x => x.Value.AllowsNull))
                });
                propertiesNode.Items.Add(schemaSummaryNode);

                var schemaInformationNode = new TreeViewItem {
                    Header = "Schema Information"
                };
                schemaInformationNode.Items.Add(CreateSchemaInformationNode("Columns", "INFORMATION_SCHEMA.COLUMNS"));
                schemaInformationNode.Items.Add(CreateSchemaInformationNode("Indexes", "INFORMATION_SCHEMA.INDEXES"));
                schemaInformationNode.Items.Add(CreateSchemaInformationNode("Key Column Usage", "INFORMATION_SCHEMA.KEY_COLUMN_USAGE"));
                schemaInformationNode.Items.Add(CreateSchemaInformationNode("Tables", "INFORMATION_SCHEMA.TABLES"));
                schemaInformationNode.Items.Add(CreateSchemaInformationNode("Table Constraints", "INFORMATION_SCHEMA.TABLE_CONSTRAINTS"));
                schemaInformationNode.Items.Add(CreateSchemaInformationNode("Provider Types", "INFORMATION_SCHEMA.PROVIDER_TYPES"));
                schemaInformationNode.Items.Add(CreateSchemaInformationNode("Referential Constraints", "INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS"));
                propertiesNode.Items.Add(schemaInformationNode);

                return(propertiesNode);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);

                return(new TreeViewItem
                {
                    Header = "Unable to retrieve database information",
                    FontStyle = FontStyles.Italic
                });
            }
        }
Exemplo n.º 20
0
        public void AnalyzeDatabaseTest()
        {
            var target = SqlCeDatabaseFactory.Create(connectionString);

            target.AnalyzeDatabase();
        }