Ejemplo n.º 1
0
        public string Generator(string tableName, string fieldName1, string dataType1, string fieldName2, string dataType2, string Parent)
        {
            try
            {
                if (Parent == null) //=> No Relation
                {
                    var    projectCollection = ProjectCollection.GlobalProjectCollection;
                    string projPath          = "~/BlogIT.Web.csproj";

                    var p = projectCollection.LoadProject(Server.MapPath(projPath));


                    string        projItem1 = "~/Entities/" + tableName + ".cs";
                    GenerateTable genTable  = new GenerateTable(tableName);
                    genTable.AddFields(fieldName1, dataType1, fieldName2, dataType2);
                    genTable.GenerateCSharpCode(Server.MapPath(projItem1));

                    p.AddItem("Compile", Server.MapPath(projItem1));
                    p.Save();

                    string      projItem2 = "~/Mapping/" + tableName + "Map.cs";
                    GenerateMap genMap    = new GenerateMap(tableName);
                    genMap.AddConstructor(fieldName1, fieldName2, tableName);
                    genMap.GenerateCSharpCode(Server.MapPath(projItem2));

                    p.AddItem("Compile", Server.MapPath(projItem2));
                    p.Save();
                    ProjectCollection.GlobalProjectCollection.UnloadProject(p);

                    p.Build();

                    NHibernate.OpenSession();
                }
                else if (Parent != null)//=> Relation To Parent
                {
                    var    projectCollection = ProjectCollection.GlobalProjectCollection;
                    string projPath          = "~/MVCNHibernate.csproj";

                    var p = projectCollection.LoadProject(Server.MapPath(projPath));


                    string        fileNameEn = "~/Entities/" + tableName + ".cs";
                    GenerateTable genTable   = new GenerateTable(tableName);
                    genTable.RelationalAddFields(tableName, fieldName1, dataType1, fieldName2, dataType2, Parent);
                    genTable.GenerateCSharpCode(Server.MapPath(fileNameEn));

                    string projItem1 = "~/Entities/" + tableName + ".cs";
                    p.AddItem("Compile", Server.MapPath(projItem1));
                    p.Save();

                    string      fileNameMap = "~/Mapping/" + tableName + "Map.cs";
                    GenerateMap genMap      = new GenerateMap(tableName);
                    genMap.RelationalAddConstructor(fieldName1, fieldName2, tableName, Parent);
                    genMap.GenerateCSharpCode(Server.MapPath(fileNameMap));

                    string projItem2 = "~/Mapping/" + tableName + "Map.cs";
                    p.AddItem("Compile", Server.MapPath(projItem2));
                    p.Save();
                    //ProjectCollection.GlobalProjectCollection.UnloadProject(p);
                    ProjectCollection.GlobalProjectCollection.UnloadAllProjects();
                    p.Build();

                    NHibernate.OpenSession();
                }
                return("Database generated Successfully ");
            }
            catch
            {
                return("Database did not generate Successfully ");
            }
        }