예제 #1
0
        public async Task <Response> CreateTable(GenerateTables model)
        {
            Response res = new Response();

            try
            {
                //var con= RequestFilter.GetContext();
                model.SysUser = _sysUser.ResponseToken(new LoginRequestDTO()
                {
                    Account = "yaogi", Password = "******"
                });
                model.CreateUser = model.SysUser.UserName;
                //model.SysUser = UserCacheHelper.GetSys();
                var data = await context.GenerateTables.Where(m => m.TableName == model.TableName).FirstOrDefaultAsync();

                if (data != null)
                {
                    res.Code    = 0;
                    res.Message = "该表已存在";
                    return(res);
                }


                await context.GenerateTables.AddAsync(model);

                await context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                res.Code    = 0;
                res.Message = e.Message;
            }
            return(res);
        }
예제 #2
0
        /// <summary>
        /// Genera el schema de la base de datos seleccionada y devuelve un objeto Database.
        /// </summary>
        public Database Process(MySqlOption filters)
        {
            Database       databaseSchema = new Database();
            GenerateTables tables         = new GenerateTables(connectioString, filters);

            tables.OnTableProgress += new Progress.ProgressHandler(tables_OnTableProgress);
            databaseSchema.Tables   = tables.Get(databaseSchema);

            return(databaseSchema);
        }
예제 #3
0
        /// <summary>
        /// Genera el schema de la base de datos seleccionada y devuelve un objeto Database.
        /// </summary>
        public Database Process(AseOption filters)
        {
            Database       databaseSchema = new Database();
            GenerateTables tables         = new GenerateTables(connectioString, filters);

            //GenerateUserDataTypes types = new GenerateUserDataTypes(connectioString, filters);
            //GenerateStoreProcedures procedures = new GenerateStoreProcedures(connectioString, filters);

            tables.OnTableProgress += new Progress.ProgressHandler(tables_OnTableProgress);
            databaseSchema.Tables   = tables.Get(databaseSchema);
            //databaseSchema.UserTypes = types.Get(databaseSchema);
            //databaseSchema.Procedures = procedures.Get(databaseSchema);

            return(databaseSchema);
        }
예제 #4
0
 public async Task <Response> CreateTable([FromForm] GenerateTables model)
 {
     return(await _tablesService.CreateTable(model));
 }
예제 #5
0
        /// <summary>
        /// Genera el schema de la base de datos seleccionada y devuelve un objeto Database.
        /// </summary>
        public Database Process(SqlOption filters)
        {
            string error = "";

            try
            {
                Database databaseSchema = new Database();

                //tables.OnTableProgress += new Progress.ProgressHandler(tables_OnTableProgress);
                databaseSchema.Options = filters;
                databaseSchema.Name    = this.Name;
                databaseSchema.Info    = (new GenerateDatabase(connectionString, filters)).Get(databaseSchema);
                Thread t1 = new Thread(delegate()
                {
                    try
                    {
                        GenerateRules.Fill(databaseSchema, connectionString);
                        GenerateTables.Fill(databaseSchema, connectionString, messages);
                        GenerateUserDataTypes.Fill(databaseSchema, connectionString, messages);
                        GenerateXMLSchemas.Fill(databaseSchema, connectionString);
                        GenerateSchemas.Fill(databaseSchema, connectionString);
                        GenerateUsers.Fill(databaseSchema, connectionString);
                    }
                    catch (Exception ex)
                    {
                        error = ex.StackTrace;
                    }
                });
                Thread t2 = new Thread(delegate()
                {
                    try
                    {
                        GeneratePartionFunctions.Fill(databaseSchema, connectionString);
                        GenerateFileGroups.Fill(databaseSchema, connectionString);
                        GenerateDDLTriggers.Fill(databaseSchema, connectionString);
                        GenerateSynonyms.Fill(databaseSchema, connectionString);
                        GenerateAssemblies.Fill(databaseSchema, connectionString);
                    }
                    catch (Exception ex)
                    {
                        error = ex.StackTrace;
                    }
                });
                Thread t3 = new Thread(delegate()
                {
                    try
                    {
                        GenerateStoreProcedures.Fill(databaseSchema, connectionString);
                        GenerateViews.Fill(databaseSchema, connectionString);
                        GenerateFunctions.Fill(databaseSchema, connectionString);
                    }
                    catch (Exception ex)
                    {
                        error = ex.StackTrace;
                    }
                });
                t1.Start();
                t2.Start();
                t3.Start();
                t1.Join();
                t2.Join();
                t3.Join();
                if (String.IsNullOrEmpty(error))
                {
                    /*Las propiedades extendidas deben ir despues de haber capturado el resto de los objetos de la base*/
                    GenerateExtendedProperties.Fill(databaseSchema, connectionString, messages);
                    databaseSchema.BuildDependency();
                    return(databaseSchema);
                }
                else
                {
                    throw new SchemaException(error);
                }
            }
            catch
            {
                throw;
            }
        }