public void GenerateTypes(params EntityDomain[] entities)
        {
            var factoryCSharpDataType = new CSharpDataTypeFactory();
            var entitiesTemplates     = entities.Select(entity => new EntityTemplate(entity, factoryCSharpDataType));
            var templates             = TemplateService.LoadTemplates();

            var classCode = new List <string>();

            foreach (var template in templates)
            {
                foreach (var entityTemplate in entitiesTemplates)
                {
                    classCode.Add(TemplateService.Generate(template, entityTemplate));
                }
            }

            Assembly dynamicAssembly = CompilerService.GenerateAssemblyFromCode(_logger, classCode.ToArray());

            var types = dynamicAssembly.GetTypes();

            Controllers = types.Where(type => type.BaseType == typeof(Controller));
            Entities    = types.Where(type => type.ImplementsGericType(typeof(IGenericEntity <>)));

            _partManager.ApplicationParts.Add(new AssemblyPart(dynamicAssembly));
        }
Example #2
0
 public void Generate(TestingClass testingClass)
 {
     templateService.Generate(testingClass);
 }