예제 #1
0
        public List <SchemaViewModel> List()
        {
            string[] filters = new string[this.Filters.Count];
            for (int i = 0; i < Filters.Count; i++)
            {
                filters[i] = $"'{Filters[i]}'";
            }

            List <SchemaViewModel> schemas = new List <SchemaViewModel>();
            string sql = $@"SELECT schema_name FROM information_schema.schemata WHERE SCHEMA_NAME NOT IN({string.Join(",", filters)}) ORDER BY SCHEMA_NAME; ";

            PgSqlHelper.ExecuteDataReader(dr =>
            {
                var schema = new SchemaViewModel {
                    Name = dr[0].ToString()
                };
                schemas.Add(schema);
            }, CommandType.Text, sql);

            foreach (var item in schemas)
            {
                Console.WriteLine("正在生成模式:{0}", item.Name);
                item.Tables = GetTables(item.Name);
            }

            return(schemas);
        }
예제 #2
0
        private ExcelPackage GenerateExcel(SchemaViewModel schemaVM)
        {
            var ep = new ExcelPackage();

            foreach (var item in schemaVM.Schemas)
            {
                this.CreateSheet(ep, item);
            }

            return(ep);
        }
예제 #3
0
        public void ListSchemaSetsViewBag()
        {
            var model = new SchemaViewModel()
            {
                ConnectorId = id
            };
            var repo = new Mock <IDataDictionaryRepo>();

            repo.Setup(c => c.ListSchemaObject(id)).Returns(model);

            var page = new SchemaPage(repo.Object, Mock.Of <ILayoutPage>());

            page.ListDbObjects(id);

            Assert.AreEqual(model, page.ViewBag["model"]);
        }
        public ActionResult SchemaOrg()
        {
            var viewModel = new SchemaViewModel();

            try
            {
                var Scope = _sitecoreService.GetDataSourceItem <SchemaScope>();

                if (Scope != null && Scope.SchemaProperties != null)
                {
                    UpdateSchemaProperties(Scope.SchemaProperties);
                    viewModel.Scope = Scope;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex, this);
            }

            return(PartialView(viewModel));
        }
예제 #5
0
        public async Task <IActionResult> AddSchema([FromBody] SchemaViewModel model)
        {
            Result result = await _schemaGateaway.AddSchema(model.SchemaName, model.GroupId);

            return(Ok(result));
        }
예제 #6
0
        public FileResult DownloadCSV()
        {
            string connectionString = ConfigurationManager.ConnectionStrings["DefaultDatabase"].ConnectionString;
            string dbName           = ConfigurationManager.AppSettings["DatabaseName"];

            var model = new HomeViewModel();

            var selectTables = String.Format("SELECT TABLE_SCHEMA, TABLE_NAME"
                                             + " FROM INFORMATION_SCHEMA.TABLES"
                                             + " WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG='{0}'"
                                             + " ORDER BY TABLE_SCHEMA", dbName);

            using (SqlConnection connection = new SqlConnection(connectionString)) {
                connection.Open();

                using (SqlCommand command = new SqlCommand(selectTables, connection)) {
                    using (SqlDataReader reader = command.ExecuteReader()) {
                        while (reader.Read())
                        {
                            model.Tables.Add(new Table {
                                SchemaName = reader.GetString(reader.GetOrdinal("TABLE_SCHEMA")),
                                TableName  = reader.GetString(reader.GetOrdinal("TABLE_NAME")),
                            });
                        }
                    }
                }
            }

            var schemaVM = new SchemaViewModel();

            Schema schema = null;

            for (int i = 0; i < model.Tables.Count; i++)
            {
                var item = model.Tables[i];

                if (i == 0)
                {
                    schema = new Schema {
                        Name = item.SchemaName
                    };
                    schemaVM.Schemas.Add(schema);
                }
                else
                {
                    if (!schema.Name.Equals(item.SchemaName))
                    {
                        schema = new Schema {
                            Name = item.SchemaName
                        };
                        schemaVM.Schemas.Add(schema);
                    }
                }

                schema.Tables.Add(new Table {
                    Print      = item.Print,
                    TableName  = item.TableName,
                    SchemaName = item.SchemaName
                });
            }

            var excelPackage = this.GenerateExcel(schemaVM);

            Byte[] bin  = excelPackage.GetAsByteArray();
            string file = "Tables.xlsx";

            return(File(bin, System.Net.Mime.MediaTypeNames.Application.Octet, file));
        }