예제 #1
0
        private bool GenerateAssembly(IContext context)
        {
            try
            {
                IDomainMap             domainMap = context.DomainMap;
                ModelToCodeTransformer modelToCodeTransformer = new ModelToCodeTransformer();
                CodeDomProvider        provider = null;

                provider = new CSharpCodeProvider();

                string code = modelToCodeTransformer.ToCode(domainMap, provider);

                CompilerResults cr = modelToCodeTransformer.ToCompilerResults(domainMap, provider);
                if (cr.Errors.Count > 0)
                {
                }
                else
                {
                    domain = cr.CompiledAssembly;
                    context.AssemblyManager.RegisterAssembly(domain);
                }
            }
            catch (Exception ex)
            {
                domain = null;
            }
            if (domain == null)
            {
                return(false);
            }

            return(true);
        }
예제 #2
0
        private void GenerateAssembly(IContext context)
        {
            try
            {
                IDomainMap             domainMap = context.DomainMap;
                ModelToCodeTransformer modelToCodeTransformer = new ModelToCodeTransformer();
                CodeDomProvider        provider = null;

                provider = new CSharpCodeProvider();

                string code = modelToCodeTransformer.ToCode(domainMap, provider);

                CompilerResults cr = modelToCodeTransformer.ToCompilerResults(domainMap, provider);
                if (cr.Errors.Count > 0)
                {
                }
                else
                {
                    Assembly domain = cr.CompiledAssembly;
                    context.AssemblyManager.RegisterAssembly(domain);
                    this.DomainAssembly = domain;
                }
            }
            catch (Exception ex)
            {
                this.DomainAssembly = null;
            }
        }
예제 #3
0
        private void button1_Click(object sender, System.EventArgs e)
        {
            IDomainMap domainMap = new DomainMap();

            domainMap.Name          = "Test";
            domainMap.RootNamespace = "Puzzle.Testing";

            IClassMap employee = new ClassMap();

            employee.Name      = "Employee";
            employee.DomainMap = domainMap;

            IPropertyMap firstName = new PropertyMap();

            firstName.Name     = "FirstName";
            firstName.DataType = "System.String";
            firstName.ClassMap = employee;

            IPropertyMap lastName = new PropertyMap();

            lastName.Name     = "LastName";
            lastName.DataType = "System.String";
            lastName.ClassMap = employee;

            IPropertyMap reportsTo = new PropertyMap();

            reportsTo.Name     = "ReportsTo";
            reportsTo.DataType = "Employee";
            reportsTo.ClassMap = employee;

            IPropertyMap employees = new PropertyMap();

            employees.Name         = "Employees";
            employees.IsCollection = true;
            employees.ItemType     = "Employee";
            employees.ClassMap     = employee;

            ModelToCodeTransformer modelToCodeTransformer = new ModelToCodeTransformer();
            string code = modelToCodeTransformer.ToCSharpCode(domainMap);
            //string code = modelToCodeTransformer.ToCSharpCodeFile(domainMap, "Test");

            //modelToCodeTransformer.ToAssemblyFile(domainMap, domainMap.Name + ".dll");
            Assembly asm = modelToCodeTransformer.ToAssembly(domainMap);

            textBox1.Text = code;
        }
        // Taken from DomainExplorer
        private static Assembly GenerateAssembly(IContext context)
        {
            Assembly domain = null;

            try
            {
                IDomainMap             domainMap = context.DomainMap;
                ModelToCodeTransformer modelToCodeTransformer = new ModelToCodeTransformer();
                CodeDomProvider        provider = null;
                if (domainMap.CodeLanguage == CodeLanguage.CSharp)
                {
                    provider = new CSharpCodeProvider();
                }
                else if (domainMap.CodeLanguage == CodeLanguage.VB)
                {
                    provider = new VBCodeProvider();
                }
                else
                {
                    throw new IAmOpenSourcePleaseImplementMeException();
                }

                string code = modelToCodeTransformer.ToCode(domainMap, provider);

                CompilerResults cr = modelToCodeTransformer.ToCompilerResults(domainMap, provider);
                if (cr.Errors.Count > 0)
                {
                    throw new Exception("Domain model could not be compiled!");
                }
                else
                {
                    domain = cr.CompiledAssembly;
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Domain model could not be compiled! The compiler gave the following exception: " + ex.ToString());
            }

            return(domain);
        }
예제 #5
0
        private bool GenerateAssembly(IContext context)
        {
            try
            {
                IDomainMap             domainMap = context.DomainMap;
                ModelToCodeTransformer modelToCodeTransformer = new ModelToCodeTransformer();
                CodeDomProvider        provider = null;
                //if (domainMap.CodeLanguage == CodeLanguage.CSharp)
                //{
                provider = new CSharpCodeProvider();
                //    config.SetupCSharp();
                //}
                //else if (domainMap.CodeLanguage == CodeLanguage.VB)
                //{
                //    provider = new VBCodeProvider();
                //    config.SetupVBNet();
                //}

                string code = modelToCodeTransformer.ToCode(domainMap, provider);

                CompilerResults cr = modelToCodeTransformer.ToCompilerResults(domainMap, provider);
                if (cr.Errors.Count > 0)
                {
                }
                else
                {
                    domain = cr.CompiledAssembly;
                }
            }
            catch (Exception ex)
            {
                domain = null;
            }
            if (domain == null)
            {
                return(false);
            }

            return(true);
        }