Ejemplo n.º 1
0
        internal override void AddMethods(XmlEntity entityContext, ITobascoContext tobascoContext)
        {
            var entityParameter = entityContext.Name.GetParameterName();

            Builder.StartMethod("public", entityContext.Name, "Save", entityContext.Name.GetObjectWithParamaterName());
            foreach (var child in entityContext.GetChilds())
            {
                Builder.AddMethodBody($"if (var {entityContext.Name}.{child.Name} != null)");
                Builder.AddMethodBody("{");
                Builder.AppendLine($"{entityContext.Name}.{child.Name} = {child.Name.GetFieldName()}.Save({child.Name});", Indent.ForEachBody);
                Builder.AddMethodBody("}");
            }
            Builder.AddMethodBody($"{entityParameter} = _genericRepository.Save({entityParameter});");
            foreach (var childCollection in entityContext.GetChildCollections())
            {
                Builder.AddMethodBody($"foreach (var itemToSave = {entityContext.Name}.{childCollection.Name})");
                Builder.AddMethodBody("{");
                Builder.AppendLine($"itemToSave.{entityContext.Name}Id = {entityContext.Name.GetObjectWithParamaterName()};", Indent.ForEachBody);
                Builder.AppendLine($"{childCollection.Name.GetParameterName()}.Save(itemToSave);", Indent.ForEachBody);
                Builder.AddMethodBody("}");
            }
            Builder.AddMethodBody($"return {entityParameter};");
            Builder.EndMethod();
            Builder.AppendLine(string.Empty);
            Builder.StartMethod("public", entityContext.Name, "GetById", "long id");
            Builder.AddMethodBody("return _genericRepository.GetById(id);");
            Builder.EndMethod();
        }
Ejemplo n.º 2
0
 protected override void AddTable(XmlEntity xmlEntity, ITobascoContext tobascoContext)
 {
     Builder.StartTable(xmlEntity.Name);
     Builder.AddTableBody("[Id]", "bigint IDENTITY(1,1)", true);
     Builder.Append <SqlStringBuilder>(",").AddTableBody("[RowVersion]", "rowversion", true);
     foreach (var prop in xmlEntity.Properties.Where(x => x.PropertyType.Name != Enums.Datatype.ChildCollection))
     {
         Builder.Append <SqlStringBuilder>(",").AddTableBody(prop.Name, prop.PropertyType.GetSqlDataType(), prop.Required);
     }
     Builder.Append <SqlStringBuilder>(",").AddModifiedByTableDefinition();
     Builder.Append <SqlStringBuilder>(",").AddModifiedByTableConstraint();
     Builder.Append <SqlStringBuilder>(",").AddModifiedOnTableDefinition();
     Builder.Append <SqlStringBuilder>(",").AddModifiedOnTableConstraint();
     Builder.Append <SqlStringBuilder>(",").AddModifiedOnUTCTableDefinition();
     Builder.Append <SqlStringBuilder>(",").AddModifiedOnUTCTableConstraint();
     Builder.Append <SqlStringBuilder>(",").AppendLine($"CONSTRAINT [PK_{xmlEntity.Name}] PRIMARY KEY CLUSTERED (Id ASC)");
     foreach (var child in xmlEntity.GetChilds())
     {
         Builder.Append <SqlStringBuilder>(",").AppendLine($"CONSTRAINT [FK_{xmlEntity.Name}_{child.Name}] PRIMARY KEY CLUSTERED (Id ASC)");
     }
     Builder.EndTable();
 }
Ejemplo n.º 3
0
        internal override void AddConstructor(XmlEntity entityContext, ITobascoContext tobascoContext)
        {
            var childs = entityContext.GetChilds().Concat(entityContext.GetChildCollections());

            Builder.StartConstructor(entityContext.Name, GetConstructorParameters(childs).ToArray());
            Builder.AddConstructorBody("_genericRepository = genericRepository;");
            foreach (var child in childs)
            {
                Builder.AddConstructorBody($"{child.Name.GetFieldName()} = {child.Name.GetParameterName()};");
            }
            Builder.EndConstructor();

            IEnumerable <string> GetConstructorParameters(IEnumerable <XmlProperty> childProperties)
            {
                var parameters = new List <string> {
                    "IGenericRepository genericRepository"
                };

                parameters.AddRange(childProperties.Select(x => $"I{x.Name}Repository {x.Name.GetParameterName()}"));
                return(parameters);
            }
        }