コード例 #1
0
        private static void TestGeneratedXml(string classFileName, string xmlFileName, string contentTypeName, ParserFactory factory)
        {
            ContentType contentType;
            string expectedOutput;

            using (var goldReader = File.OpenText(@"..\..\TestFiles\" + xmlFileName + ".xml"))
            {
                expectedOutput = goldReader.ReadToEnd();
            }

            var contentTypeConfig = new CodeGeneratorConfiguration().Get(contentTypeName);
            contentTypeConfig.BaseClass = "Umbraco.Core.Models.TypedModelBase";

            using (var inputReader = File.OpenText(@"..\..\TestFiles\" + classFileName + ".cs"))
            {
                var codeParser = new CodeParser(contentTypeConfig, TestDataTypeProvider.All, factory);
                contentType = codeParser.Parse(inputReader).Single();
            }

            var serializer = new ContentTypeSerializer();
            var xml = serializer.Serialize(contentType);

            Console.WriteLine(xml);

            Assert.AreEqual(expectedOutput, xml);
        }
コード例 #2
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     Parser = new CommonInfoParser(Configuration);
     ContentType = new MediaType();
     Info = ContentType.Info;
 }
コード例 #3
0
 public static void SaveConfiguration(CodeGeneratorConfiguration newConfiguration)
 {
     var configurationProvider =
         new CodeGeneratorConfigurationFileProvider(HttpContext.Current.Server.MapPath("~/config/CodeGen.config"));
     configurationProvider.SaveConfiguration(newConfiguration);
     LoadConfiguration();
 }
コード例 #4
0
        public void SetUp()
        {
            Configuration = new CodeGeneratorConfiguration().MediaTypes;
            dataTypeConfiguration = TestDataTypeProvider.All;

            Parser = new PropertyParser(Configuration, dataTypeConfiguration);
        }
コード例 #5
0
		private static void TestBuildCode(string fileName, string contentTypeName)
		{
		    ContentType contentType;
			var expectedOutput = "";
			using (var inputReader = File.OpenText(@"..\..\TestFiles\" + fileName + ".xml"))
			{
                contentType = new ContentTypeSerializer().Deserialize(inputReader);
            }
            using (var goldReader = File.OpenText(@"..\..\TestFiles\" + fileName + ".cs"))
			{
				expectedOutput = goldReader.ReadToEnd();
			}

			var configuration = new CodeGeneratorConfiguration();
		    configuration.TypeMappings.Add(new TypeMapping("1413afcb-d19a-4173-8e9a-68288d2a73b8", "Int32"));
		    var typeConfig = configuration.Get(contentTypeName);
		    typeConfig.BaseClass = "DocumentTypeBase";
		    typeConfig.Namespace = "Umbraco.CodeGen.Models";

		    var sb = new StringBuilder();
			var writer = new StringWriter(sb);

		    var factory = new DefaultCodeGeneratorFactory();
		    var dataTypeProvider = new TestDataTypeProvider();
		    var generator = new CodeGenerator(typeConfig, dataTypeProvider, factory);
		    generator.Generate(contentType, writer);

            writer.Flush();
            Console.WriteLine(sb.ToString());

			Assert.AreEqual(expectedOutput, sb.ToString());
		}
コード例 #6
0
 public void SetUp()
 {
     Generator = new StructureGenerator(Configuration);
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     Candidate = Type = new CodeTypeDeclaration();
     ContentType = new MediaType();
 }
コード例 #7
0
 public void SetUp()
 {
     Generator = new StructureGenerator(Configuration);
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     attribute = new CodeAttributeDeclaration("MediaType");
     contentType = new MediaType();
 }
コード例 #8
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     Generator = new CommonInfoGenerator(Configuration);
     ContentType = new MediaType { Info = { Alias = "anEntity" } };
     Candidate = Type = new CodeTypeDeclaration();
     info = ContentType.Info;
 }
	    public void SaveConfiguration(CodeGeneratorConfiguration configuration)
	    {
	        using (var writer = File.CreateText(path))
	        {
                var xmlWriter = XmlWriter.Create(writer, new XmlWriterSettings { OmitXmlDeclaration = true, Encoding = Encoding.UTF8, Indent = true });
                CodeGeneratorConfigurationProvider.SerializeConfiguration(configuration, xmlWriter);
	        }
	    }
コード例 #10
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     Candidate = Type = new CodeTypeDeclaration();
     generator = new DocumentTypeInfoGenerator(Configuration);
     documentType = new DocumentType { Info = { Alias = "aClass" } };
     info = (DocumentTypeInfo)documentType.Info;
 }
コード例 #11
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     Configuration.Namespace = "MyWeb.Models";
     ContentType = new MediaType();
     Generator = new NamespaceGenerator(Configuration);
     compileUnit = new CodeCompileUnit();
 }
コード例 #12
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     Parser = new DocumentTypeInfoParser(Configuration);
     ContentType = new DocumentType();
     Info = ContentType.Info;
     typedInfo = (DocumentTypeInfo) Info;
 }
コード例 #13
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     Candidate = Type = new CodeTypeDeclaration();
     Generator = new EntityDescriptionGenerator(Configuration);
     documentType = new DocumentType { Info = { Alias = "anEntity" } };
     EntityDescription = documentType.Info;
 }
コード例 #14
0
        public static void SerializeConfiguration(CodeGeneratorConfiguration newConfiguration, XmlWriter writer)
        {
            var serializer = new XmlSerializer(typeof(CodeGeneratorConfiguration), new XmlRootAttribute("CodeGenerator")
            {
                Namespace = ""
            });

            serializer.Serialize(writer, newConfiguration, new XmlSerializerNamespaces(new[] { new XmlQualifiedName("", "") }));
            writer.Flush();
        }
 public void SaveConfiguration(CodeGeneratorConfiguration configuration)
 {
     using (var writer = File.CreateText(path))
     {
         var xmlWriter = XmlWriter.Create(writer, new XmlWriterSettings {
             OmitXmlDeclaration = true, Encoding = Encoding.UTF8, Indent = true
         });
         CodeGeneratorConfigurationProvider.SerializeConfiguration(configuration, xmlWriter);
     }
 }
コード例 #16
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     attribute = new CodeAttributeDeclaration("DocumentType");
     generator = new DocumentTypeInfoGenerator(Configuration);
     documentType = new DocumentType
     {
         Info = info = new DocumentTypeInfo {Alias = "aClass"}
     };
 }
コード例 #17
0
 public void SetUp()
 {
     codeGenConfig = CodeGeneratorConfiguration.Create();
     Configuration = codeGenConfig.MediaTypes;
     Generator = new PropertyInfoGenerator(
         Configuration, 
         TestDataTypeProvider.All
     );
     attribute = new CodeAttributeDeclaration();
     property = new GenericProperty{Alias="anEntity"};
 }
コード例 #18
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     Generator = new ClassGenerator(
         Configuration,
         new EntityDescriptionGenerator(Configuration)
         );
     ContentType = new MediaType { Info = { Alias = "anEntity" } };
     EntityDescription = info = ContentType.Info;
     ns = new CodeNamespace("ANamespace");
 }
コード例 #19
0
 public void SetUp()
 {
     codeGenConfig = CodeGeneratorConfiguration.Create();
     Configuration = codeGenConfig.MediaTypes;
     Generator = new PropertyInfoGenerator(
         Configuration, 
         TestDataTypeProvider.All,
         new EntityDescriptionGenerator(Configuration)
     );
     Candidate = codeProperty = new CodeMemberProperty();
     property = new GenericProperty{Alias="anEntity"};
 }
 public void SetUp()
 {
     codeGenConfig = CodeGeneratorConfiguration.Create();
     Configuration = codeGenConfig.DocumentTypes;
     Generator = new InterfacePropertyDeclarationGenerator(
         Configuration,
         TestDataTypeProvider.All,
         new EntityDescriptionGenerator(Configuration)
     );
     Candidate = codeProperty = new CodeMemberProperty();
     property = new GenericProperty { Alias = "aProperty" };
 }
コード例 #21
0
 public ModelGenerator(
     CodeGeneratorConfiguration configuration, 
     CodeGeneratorFactory generatorFactory, 
     CodeGeneratorFactory interfaceGeneratorFactory,
     UmbracoDataTypesProvider dataTypeProvider, 
     IDictionary<string, string> paths)
 {
     this.configuration = configuration;
     this.generatorFactory = generatorFactory;
     this.interfaceGeneratorFactory = interfaceGeneratorFactory;
     this.dataTypeProvider = dataTypeProvider;
     this.paths = paths;
 }
コード例 #22
0
        public static CodeGeneratorConfiguration Create()
        {
            var configuration = new CodeGeneratorConfiguration
            {
                TypeMappings = new TypeMappings()
            };

            configuration.configs = new Dictionary <string, ContentTypeConfiguration>
            {
                { Keys.DocumentType, new ContentTypeConfiguration(configuration, Keys.DocumentType) },
                { Keys.MediaType, new ContentTypeConfiguration(configuration, Keys.MediaType) },
            };
            return(configuration);
        }
コード例 #23
0
		public void OnApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
		{
			var uSyncConfigurationProvider = new USyncConfigurationProvider(HttpContext.Current.Server.MapPath("~/config/uSyncSettings.config"), new HttpContextPathResolver());
			var configurationProvider = new CodeGeneratorConfigurationFileProvider(HttpContext.Current.Server.MapPath("~/config/CodeGen.config"));

			uSyncConfiguration = uSyncConfigurationProvider.GetConfiguration();
			
			dataTypesProvider = new USyncDataTypeProvider(uSyncConfiguration.USyncFolder);
	
			dataTypes = dataTypesProvider.GetDataTypes();
			configuration = configurationProvider.GetConfiguration();

			paths.Add("DocumentType", HttpContext.Current.Server.MapPath(configuration.DocumentTypes.ModelPath));
			paths.Add("MediaType", HttpContext.Current.Server.MapPath(configuration.MediaTypes.ModelPath));

			XmlDoc.Saved += OnDocumentTypeSaved;

			if (configuration.DocumentTypes.GenerateXml)
				GenerateXml(configuration.DocumentTypes);
			if (configuration.MediaTypes.GenerateXml)
				GenerateXml(configuration.MediaTypes);
		}
コード例 #24
0
	    public ContentTypeConfiguration(CodeGeneratorConfiguration config, string contentTypeName)
	    {
	        ContentTypeName = contentTypeName;
	        this.config = config;
	    }
コード例 #25
0
		public CodeGeneratorConfiguration GetConfiguration()
		{
		    return configuration ?? (configuration = LoadConfiguration());
		}
コード例 #26
0
 protected virtual void OnConfiguring(CodeGeneratorConfiguration configuration, string contentTypeName)
 {
     
 }
コード例 #27
0
        public void Parse_Definition_WhenMissingOrUnknown_AndDefaultIsMissing_Throws()
        {
            codeGenConfig = new CodeGeneratorConfiguration();
            codeGenConfig.DefaultDefinitionId = "";
            Configuration = codeGenConfig.MediaTypes;
            Parser = new PropertyParser(Configuration, dataTypeConfiguration);

            ParseProperty(PureProperty);
        }
 protected override void OnConfiguring(CodeGeneratorConfiguration configuration, string contentTypeName)
 {
     var typeConfig = configuration.Get(contentTypeName);
     typeConfig.BaseClass = "BaseClassWithSupport";
 }
コード例 #29
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().DocumentTypes;
     spy1 = new SpyGenerator();
     spy2 = new SpyGenerator();
 }
コード例 #30
0
 public static void SerializeConfiguration(CodeGeneratorConfiguration newConfiguration, XmlWriter writer)
 {
     var serializer = new XmlSerializer(typeof(CodeGeneratorConfiguration), new XmlRootAttribute("CodeGenerator") {Namespace=""});
     serializer.Serialize(writer, newConfiguration, new XmlSerializerNamespaces(new[] { new XmlQualifiedName("", "") }));
     writer.Flush();
 }
コード例 #31
0
 public CodeGeneratorConfiguration Post(CodeGeneratorConfiguration configuration)
 {
     Integration.Configuration.SaveConfiguration(configuration);
     return Get();
 }
 protected override void OnConfiguring(CodeGeneratorConfiguration configuration, string contentTypeName)
 {
     var config = configuration.Get(contentTypeName);
     config.BaseClass = "global::Umbraco.Core.Models.PublishedContent.PublishedContentModel";
 }
コード例 #33
0
 public void SetUp()
 {
     Configuration = new CodeGeneratorConfiguration().MediaTypes;
     Parser = new StructureParser(Configuration);
     ContentType = new MediaType();
 }
コード例 #34
0
 public ContentTypeConfiguration(CodeGeneratorConfiguration config, string contentTypeName)
 {
     ContentTypeName = contentTypeName;
     this.config     = config;
 }
コード例 #35
0
 public CodeGeneratorConfiguration GetConfiguration()
 {
     return(configuration ?? (configuration = LoadConfiguration()));
 }