コード例 #1
0
 public void SetTemplate(string alias)
 {
     TT              = ConfigMemory.Templates[alias];
     TemplateBody    = TT.ElementTemplate;
     TemplateContent = TT.ItemsTemplate;
     // why do this? //T.View = config.SelectedView;
 }
コード例 #2
0
 void PushState(TableTemplate template)
 {
     Model.LastViewMode          = ViewMode.TemplatePreview;
     Model.LastTemplate          = template;
     cbTemplateGroups.Text       = (template).Group;
     cbTemplateRow.SelectedValue = template;
 }
コード例 #3
0
        public IHttpActionResult PutTableTemplate(int id, TableTemplate tableTemplate)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                service.PutTableTemplate(id, tableTemplate);
                return(StatusCode(HttpStatusCode.NoContent));
            }
            catch (NotFoundException)
            {
                return(NotFound());
            }
            catch (BadRequestException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch
            {
                throw;
            }
        }
コード例 #4
0
        public static string SQLGenerateAlterTable(this TableTemplate template, string tableName)
        {
            SqlServerMigrationSqlGenerator gen = new SqlServerMigrationSqlGenerator();
            ColumnBuilder columnBuilder        = new ColumnBuilder();
            //columnBuilder.Int(name:"sysid",identity:true);

            //System.Data.Entity.Migrations.DbMigration
            var operations = new List <MigrationOperation>();
            var dict       = new Dictionary <string, AnnotationValues>();

            dict.Add("dddddd", new AnnotationValues(1, 2));
            var alter = new AlterTableOperation("dddd", dict);


            //alter.Columns.Add(new ColumnModel(PrimitiveTypeKind.String) { Name="dd" });


            //operations.Add(alter);
            operations.Add(new AddColumnOperation(tableName, columnBuilder.String(name: "dd")));
            operations.Add(new AlterColumnOperation(tableName, new ColumnModel(PrimitiveTypeKind.String)
            {
                Name = "dd3", MaxLength = 20
            }, false));
            operations.Add(new AlterColumnOperation(tableName, new ColumnModel(PrimitiveTypeKind.String)
            {
                Name = "dd2", MaxLength = 50
            }, false));
            operations.Add(new RenameColumnOperation(tableName, "dd3", "ee3"));

            var sqls = gen.Generate(operations, "2008").Select <MigrationStatement, string>(ms => ms.Sql).ToArray();
            var sql  = string.Join("\r\n\r\n", sqls);

            return(sql);
        }
コード例 #5
0
        /// <exception cref="BadRequestException"></exception>
        public void PutTableTemplate(int id, TableTemplate tableTemplate)

        {
            if (id != tableTemplate.Id)
            {
                throw new BadRequestException();
            }

            db.Entry(tableTemplate).State = EntityState.Modified;
            db.Entry(tableTemplate).Property("IsDelete").IsModified = false;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TableTemplateExists(id))
                {
                    throw new BadRequestException();
                }
                else
                {
                    throw;
                }
            }
        }
コード例 #6
0
        protected override void Render(HtmlTextWriter output)
        {
            var operationsPart = new TableTemplate {
                Title       = "Operations:",
                Items       = this.OperationNames,
                ForEachItem = RenderRow
            }.ToString();

            var xsdsPart = new ListTemplate {
                Title            = "XSDS:",
                ListItemsIntMap  = this.Xsds,
                ListItemTemplate = @"<li><a href=""?xsd={0}"">{1}</a></li>"
            }.ToString();

            var wsdlTemplate = new StringBuilder();
            var soap11Config = MetadataConfig.GetMetadataConfig("soap11") as SoapMetadataConfig;
            var soap12Config = MetadataConfig.GetMetadataConfig("soap12") as SoapMetadataConfig;

            if (soap11Config != null || soap12Config != null)
            {
                wsdlTemplate.AppendLine("<h3>WSDLS:</h3>");
                wsdlTemplate.AppendLine("<ul>");
                if (soap11Config != null)
                {
                    wsdlTemplate.AppendFormat(
                        @"<li><a href=""{0}"">{0}</a></li>",
                        soap11Config.WsdlMetadataUri);
                }
                if (soap12Config != null)
                {
                    wsdlTemplate.AppendFormat(
                        @"<li><a href=""{0}"">{0}</a></li>",
                        soap12Config.WsdlMetadataUri);
                }
                wsdlTemplate.AppendLine("</ul>");
            }

            var debugOnlyInfo = new StringBuilder();

            if (EndpointHost.DebugMode)
            {
                debugOnlyInfo.Append("<h3>Debug Info:</h3>");
                debugOnlyInfo.AppendLine("<ul>");
                debugOnlyInfo.AppendLine("<li><a href=\"operations/metadata\">Operations Metadata</a></li>");
                debugOnlyInfo.AppendLine("</ul>");
            }

            var renderedTemplate = string.Format(
                PageTemplate,
                this.Title,
                this.MetadataPageBodyHtml,
                this.XsdServiceTypesIndex,
                operationsPart,
                xsdsPart,
                wsdlTemplate,
                debugOnlyInfo);

            output.Write(renderedTemplate);
        }
コード例 #7
0
        protected override void Render(HtmlTextWriter output)
        {
            var operationsPart = new TableTemplate
            {
                Title = "Operations:",
                Items = this.OperationNames,
                ForEachItem = RenderRow
            }.ToString();

            var xsdsPart = new ListTemplate
            {
                Title = "XSDS:",
                ListItemsIntMap = this.Xsds,
                ListItemTemplate = @"<li><a href=""?xsd={0}"">{1}</a></li>"
            }.ToString();

            var wsdlTemplate = new StringBuilder();
            var soap11Config = MetadataConfig.GetMetadataConfig("soap11") as SoapMetadataConfig;
            var soap12Config = MetadataConfig.GetMetadataConfig("soap12") as SoapMetadataConfig;
            if (soap11Config != null || soap12Config != null)
            {
                wsdlTemplate.AppendLine("<h3>WSDLS:</h3>");
                wsdlTemplate.AppendLine("<ul>");
                if (soap11Config != null)
                {
                    wsdlTemplate.AppendFormat(
                        @"<li><a href=""{0}"">{0}</a></li>",
                        soap11Config.WsdlMetadataUri);
                }
                if (soap12Config != null)
                {
                    wsdlTemplate.AppendFormat(
                        @"<li><a href=""{0}"">{0}</a></li>",
                        soap12Config.WsdlMetadataUri);
                }
                wsdlTemplate.AppendLine("</ul>");
            }

            var debugOnlyInfo = new StringBuilder();
            if (EndpointHost.DebugMode)
            {
                debugOnlyInfo.Append("<h3>Debug Info:</h3>");
                debugOnlyInfo.AppendLine("<ul>");
                debugOnlyInfo.AppendLine("<li><a href=\"operations/metadata\">Operations Metadata</a></li>");
                debugOnlyInfo.AppendLine("</ul>");
            }

            var renderedTemplate = HtmlTemplates.Format(
                HtmlTemplates.IndexOperationsTemplate,
                this.Title,
                this.MetadataPageBodyHtml,
                this.XsdServiceTypesIndex,
                operationsPart,
                xsdsPart,
                wsdlTemplate,
                debugOnlyInfo);

            output.Write(renderedTemplate);
        }
コード例 #8
0
        private void btnAddField_Click(object sender, EventArgs e)
        {
            var tableRowTemplate = new TableTemplate(MainPanel, containerPanel_Click);

            listOfColumnTemplates.Add(tableRowTemplate);
            tableRowTemplate.Show();
            MainPanel.Refresh();
        }
コード例 #9
0
 public static UserSettings getInstance(TableTemplate template = null, int id = 0)
 {
     if (instance == null)
     {
         instance = new UserSettings(template, id);
     }
     return(instance);
 }
コード例 #10
0
 public void PostTableTemplate(TableTemplate tableTemplate)
 {
     if (db.TableTemplates.Where(p => p.Name == tableTemplate.Name).Count() > 0)
     {
         throw new BadRequestException("此名称已存在");
     }
     db.TableTemplates.Add(tableTemplate);
     db.SaveChanges();
 }
コード例 #11
0
        /// <exception cref="BadRequestException"></exception>
        public void PutTableTemplateFields(int id, List <TableTemplateField[]> fields)
        {
            using (var tran = db.Database.BeginTransaction())
            {
                try
                {
                    TableTemplate tableTemplate = db.TableTemplates.Find(id);
                    if (tableTemplate == null)
                    {
                        throw new BadRequestException("无效数据");
                    }
                    if (fields[0] != null)
                    {
                        fields[0].ToList().ForEach(p =>
                        {
                            tableTemplate.Fields.Add(p);
                        });
                    }
                    db.SaveChanges();
                    if (fields[1] != null)
                    {
                        fields[1].ToList().ForEach(p =>
                        {
                            var field = tableTemplate.Fields.FirstOrDefault(q => q.Id == p.Id);
                            if (field == null)
                            {
                                throw new BadRequestException(string.Format("无效删除数据:{0},{1}", p.Name, p.Title));
                            }
                            tableTemplate.Fields.Remove(field);
                            db.TableTemplateFields.Remove(field);
                        });
                    }
                    db.SaveChanges();
                    if (fields[2] != null)
                    {
                        fields[2].ToList().ForEach(p =>
                        {
                            var field = tableTemplate.Fields.FirstOrDefault(q => q.Id == p.Id);
                            if (field == null)
                            {
                                throw new BadRequestException("无效数据");
                            }

                            db.Entry(field).State = EntityState.Detached;
                            db.Entry(p).State     = EntityState.Modified;
                        });
                    }
                    db.SaveChanges();
                    tran.Commit();
                }
                catch (Exception)
                {
                    tran.Rollback();
                    throw;
                }
            }
        }
コード例 #12
0
 public IActionResult Edit(TableTemplate model)
 {
     if (ModelState.IsValid)
     {
         dataManager.TableTemplates.SaveTableItem(model);
         return(RedirectToAction(nameof(HomeController.Index), nameof(HomeController).CutController()));
     }
     return(View(model));
 }
コード例 #13
0
        /// <exception cref="NotFoundException"></exception>
        public IEnumerable <TableTemplateField> GetTableTemplateFields(int id)
        {
            TableTemplate tableTemplate = db.TableTemplates.Find(id);

            if (tableTemplate == null)
            {
                throw new NotFoundException();
            }

            return(tableTemplate.Fields);
        }
コード例 #14
0
 public string Generate(TableElement tableName, TableTemplate templateName)
 {
     Generator.Export.Intrinsic.IDbConfiguration4 config = GetConfig(tableName, templateName);
     GeneratedTemplate = Model.Databases.ConvertInput(config, config.SelectedTable.Name);
     if (TemplateGeneratedAction != null)
     {
         TemplateGeneratedAction.Invoke(GeneratedTemplate);
     }
     config = null;
     return(GeneratedTemplate);
 }
コード例 #15
0
        public IHttpActionResult GetTableTemplate(int id)
        {
            TableTemplate tableTemplate = service.GetTableTemplate(id);// db.TableTemplates.Find(id);

            if (tableTemplate == null)
            {
                return(NotFound());
            }

            return(Ok(tableTemplate));
        }
コード例 #16
0
        public IHttpActionResult PostTableTemplate(TableTemplate tableTemplate)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            service.PostTableTemplate(tableTemplate);

            return(CreatedAtRoute("DefaultApi", new { id = tableTemplate.Id }, tableTemplate));
        }
コード例 #17
0
 public void SaveTableItem(TableTemplate entity)
 {
     if (entity.id == default)
     {
         context.Entry(entity).State = EntityState.Added;
     }
     else
     {
         context.Entry(entity).State = EntityState.Modified;
     }
     context.SaveChanges();
 }
コード例 #18
0
        private void btnDeleteRow_Click(object sender, EventArgs e)
        {
            foreach (TableTemplate dbRow in listOfColumnTemplates)
            {
                if (dbRow.IsControlPanelClicked == true)
                {
                    dbRow.Dispose();
                    listOfColumnTemplates.Remove(dbRow);
                    break;
                }
            }

            TableTemplate.ReGenerateIndexes(listOfColumnTemplates);
        }
コード例 #19
0
 public IHttpActionResult DeleteTableTemplate(int id)
 {
     try
     {
         TableTemplate tableTemplate = service.DeleteTableTemplate(id);
         return(Ok(tableTemplate));
     }
     catch (NotFoundException)
     {
         return(NotFound());
     }
     catch (BadRequestException ex)
     {
         return(BadRequest(ex.Message));
     }
 }
コード例 #20
0
        protected override void Render(HtmlTextWriter output)
        {
            var servicesPart = new TableTemplate
            {
                Title       = "Services:",
                Items       = ServiceData.Keys.ToList(),
                ForEachItem = RenderRow
            }.ToString();

            var renderedTemplate = string.Format(
                HtmlTemplates.IndexServicesTemplate,
                servicesPart,
                AntServiceStackVersion);

            output.Write(renderedTemplate);
        }
コード例 #21
0
        public static TableTemplate ToTemplate(this Type type, string name = null)
        {
            var table = new TableTemplate()
            {
                Name = type.Name
            };

            if (name != null)
            {
                table.Name = name;
            }
            foreach (var property in type.GetProperties())
            {
                table.Fields.Add(property.ToTemplateField());
            }
            return(table);
        }
コード例 #22
0
 public void Init(int tid)
 {
     if (tempDict.ContainsKey(tid))
     {
         template = tempDict[tid];
     }
     else
     {
         using (TemplateModel db = new TemplateModel())
         {
             template = db.TableTemplates.Find(tid);
             template.Fields.ToList();
         }
         tempDict.Add(tid, template);
     }
     type = template.CreateType();
 }
コード例 #23
0
        public static string SQLGenerateCreateTable(this TableTemplate template, string tableName)
        {
            SqlServerMigrationSqlGenerator gen = new SqlServerMigrationSqlGenerator();

            var operations = new List <MigrationOperation>();

            var table = new CreateTableOperation(tableName);

            table.PrimaryKey = new AddPrimaryKeyOperation();
            foreach (var field in template.Fields)
            {
                PrimitiveTypeKind typeKind;
                if (field.Type == TableTemplateFieldType.Int)
                {
                    typeKind = PrimitiveTypeKind.Int32;
                }
                else if (field.Type == TableTemplateFieldType.String)
                {
                    typeKind = PrimitiveTypeKind.String;
                }
                else
                {
                    typeKind = PrimitiveTypeKind.String;
                }
                var column = new ColumnModel(typeKind);
                column.Name = field.Name;
                if (column.Type == PrimitiveTypeKind.String)
                {
                    column.MaxLength = field.Length;
                }
                if (field.IsKey)
                {
                    table.PrimaryKey.Columns.Add(field.Name);
                }
                if (field.Name.ToLower() == "sys_id")
                {
                    column.IsIdentity = true;
                }
                table.Columns.Add(column);
            }
            operations.Add(table);
            var sql = gen.Generate(operations, "2008").FirstOrDefault();

            return(sql.Sql);
        }
コード例 #24
0
 static public string Parse(
     DatabaseCollection databases,
     DatabaseElement database,
     TemplateCollection templates,
     TableElement table,
     TableTemplate template
     )
 {
     return(Parse(
                new DataCfg()
     {
         Databases = databases,
         Database = database,
         Table = table,
         Templates = templates,
         Template = template
     }));
 }
コード例 #25
0
        /// <exception cref="BadRequestException"></exception>
        /// <exception cref="NotFoundException"></exception>
        public TableTemplate DeleteTableTemplate(int id)
        {
            TableTemplate tableTemplate = db.TableTemplates.Find(id);

            if (tableTemplate == null)
            {
                throw new NotFoundException();
            }
            if (tableTemplate.Fields.Count() > 0)
            {
                throw new BadRequestException("非空无法删除。");
            }
            //db.TableTemplates.Remove(tableTemplate);
            tableTemplate.IsDelete = true;
            db.SaveChanges();

            return(tableTemplate);
        }
コード例 #26
0
        void Event_CreateTemplate(object sender, RoutedEventArgs e)
        {
            control = new CreateTemplateDialog()
            {
                Title = "New Template", ResizeMode = ResizeMode.CanResizeWithGrip,
            };
            control.cbGroup.ItemsSource       = Model.TemplateGroups;
            control.cbGroup.DisplayMemberPath = "Group";

            TableTemplate element = null;

            var rc = new RelayCommand((x) => {
                control.DialogResult = true;
                element = new TableTemplate()
                {
                    Alias = control.tbName.Text, Group = control.cbGroup.Text, ElementTemplate = "", ItemsTemplate = ""
                };
                control.Close();
            });

            control.Buttons = new[] { control.CancelButton, new Button()
                                      {
                                          Content = "okay", Command = rc, IsDefault = true
                                      } };
restart:
            var value = control.ShowDialog();

            if (!(value.HasValue && value.Value))
            {
                return;
            }
            if (string.IsNullOrEmpty(element.Alias))
            {
                control.Title = "supply a name for your template!";
                goto restart;
            }
            Model.Reader.Model.Templates.Add(element);
            Model.Reader.Model.Templates = Model.Reader.Model.Templates;
            RefreshTemplates();
            PushState(element);
        }
コード例 #27
0
        public void ApplyTemplate(TableTemplate template)
        {
            if (null == template)
            {
                throw new ArgumentNullException(nameof(template));
            }

            Height = TableTemplate.Height;

            var listTemplate = new TunableListTemplate
            {
                HeaderClickable = template.HeaderClickable,
                CommandMenu     = template.CommandMenu
            };

            listTemplate.Columns.AddRange(template.Columns);
            listTemplate.Icons.AddRange(template.Icons);

            listTemplate.SetTemplateInternals(template.TemplateName, template.BaseDirectory);

            ApplyTemplate(listTemplate);
        }
コード例 #28
0
        protected override void Render(HtmlTextWriter output)
        {
            var operationsPart = new TableTemplate
            {
                Title       = "Operations:",
                Items       = this.OperationNames,
                ForEachItem = RenderRow
            }.ToString();

            var metadata    = EndpointHost.AppHost.GetPlugin <MetadataFeature>();
            var pluginLinks = metadata != null && metadata.PluginLinks.Count > 0
               ? new ListTemplate
            {
                Title            = metadata.PluginLinksTitle,
                ListItemsMap     = metadata.PluginLinks,
                ListItemTemplate = @"<li><a href=""{0}"">{1}</a></li>"
            }.ToString()
               : "";

            var debugOnlyInfo = new StringBuilder();

            if (EndpointHost.DebugMode)
            {
                debugOnlyInfo.Append("<h3>Debug Info:</h3>");
                debugOnlyInfo.AppendLine("<ul>");
                debugOnlyInfo.AppendLine("<li><a href=\"operations/metadata\">Operations Metadata</a></li>");
                debugOnlyInfo.AppendLine("</ul>");
            }

            var renderedTemplate = string.Format(
                HtmlTemplates.IndexOperationsTemplate,
                this.Title,
                operationsPart,
                debugOnlyInfo,
                AntServiceStackVersion,
                AntCodeGenVersion, pluginLinks);

            output.Write(renderedTemplate);
        }
コード例 #29
0
        public static Type CreateType(this TableTemplate template, string typeName, string tableName, Type parent = null, Type[] interfaces = null)
        {
            if (entityTypes.ContainsKey(typeName))
            {
                return(entityTypes[typeName]);
            }
            if (interfaces == null)
            {
                interfaces = Type.EmptyTypes;
            }
            //应用程序域
            AppDomain currentDomain = System.Threading.Thread.GetDomain(); //AppDomain.CurrentDomain;
            //运行并创建类的新实例
            TypeBuilder typeBuilder = null;
            //定义和表示动态程序集的模块
            ModuleBuilder moduleBuilder = null;
            //定义表示动态程序集
            AssemblyBuilder assemblyBuilder = null;
            MethodBuilder   methodBuilder   = null;
            //表示类型属性
            PropertyBuilder propertyBuilder = null;
            //定义表示字段
            FieldBuilder fieldBuilder = null;
            //生成中间语言指令
            ILGenerator ilGenerator = null;
            //帮助生成自定义属性
            CustomAttributeBuilder cab = null;
            //指定方法属性的标志
            MethodAttributes methodAttrs;

            //Define a Dynamic Assembly
            //指定名称,访问模式
            assemblyBuilder = currentDomain.DefineDynamicAssembly(new AssemblyName("TableTemplate"), AssemblyBuilderAccess.Run);


            //Define a Dynamic Module动态模块名称
            moduleBuilder = assemblyBuilder.DefineDynamicModule(string.Format("Module{0}", typeName), true);

            //Define a runtime class with specified name and attributes.

            typeBuilder = moduleBuilder.DefineType(
                typeName,
                TypeAttributes.Public | TypeAttributes.Class | TypeAttributes.BeforeFieldInit | TypeAttributes.Serializable,
                parent,
                interfaces
                );
            typeBuilder.SetCustomAttribute(new CustomAttributeBuilder(typeof(System.ComponentModel.DataAnnotations.Schema.TableAttribute).GetConstructor(new Type[] { typeof(string) }), new object[] { tableName }));

            foreach (var type in interfaces)
            {
                var properties = type.GetProperties();
                foreach (var property in properties)
                {
                    int length    = 0;
                    var attribute = property.GetCustomAttribute(typeof(MaxLengthAttribute)) as MaxLengthAttribute;
                    if (attribute != null)
                    {
                        length = attribute.Length;
                    }
                    typeBuilder.CreateProperty(property.Name, property.PropertyType, length, property.IsDefined(typeof(KeyAttribute)), true);
                }
            }

            foreach (var field in template.Fields)
            {
                Type t;
                if (field.Type == TableTemplateFieldType.Int)
                {
                    t = typeof(int);
                }
                else if (field.Type == TableTemplateFieldType.String)
                {
                    t = typeof(string);
                }
                else if (field.Type == TableTemplateFieldType.Boolean)
                {
                    t = typeof(bool);
                }
                else
                {
                    t = typeof(string);
                }
                typeBuilder.CreateProperty(field.Name, t, field.Length, field.IsKey);
            }


            var newtype = typeBuilder.CreateType();

            entityTypes.Add(typeName, newtype);
            return(newtype);
        }
コード例 #30
0
 public static Type CreateType(this TableTemplate template, string typeName, Type parent = null, Type[] interfaces = null)
 {
     return(CreateType(template, typeName, typeName, parent, interfaces));
 }
コード例 #31
0
 public static Type CreateType(this TableTemplate template, Type[] interfaces = null)
 {
     return(CreateType(template, template.Name, template.Name, null, interfaces));
 }