Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var widgetNames = new HashSet <string> {
                "dxChart",
                "dxDataGrid",
                "dxScheduler",
                "dxPieChart",
                "dxRangeSelector",
                "dxSparkline",
                "dxPivotGrid"
            };

            var ns = new[] { "DevExtreme.AspNet.TagHelpers" };
            var tagInfoPreProcessor = new TagInfoPreProcessor();
            var generator           = new Generator(outputRoot: "../");

            generator.DeleteGeneratedFiles(ns);

            foreach (var obj in GetIntellisenseObjectsFor(widgetNames))
            {
                generator.GenerateClass(new TagInfo(obj, tagInfoPreProcessor, ns, null));
            }

            generator.GenerateEnums(ns, "Enums", EnumRegistry.KnownEnumns);

            generator.GenerateTargetElementsClass(
                ns,
                "InnerScriptTagHelper",
                TargetElementsRegistry.InnerScriptTargets.Select(CreateInnerScriptTarget)
                );

            generator.GenerateTargetElementsClass(
                ns.Concat("Data"),
                "LoadActionDatasourceTagHelper",
                TargetElementsRegistry.DatasourceTargets.Select(GetDataSourceTargetFactory("load-action"))
                );

            generator.GenerateTargetElementsClass(
                ns.Concat("Data"),
                "ItemsDatasourceTagHelper",
                TargetElementsRegistry.DatasourceTargets.Select(GetDataSourceTargetFactory("items"))
                );

            generator.GenerateTargetElementsClass(
                ns.Concat("Data"),
                "UrlDatasourceTagHelper",
                TargetElementsRegistry.DatasourceTargets.Select(GetDataSourceTargetFactory("url"))
                );

            generator.GenerateClass(
                CreatePivotGridDatasourceTag(tagInfoPreProcessor, ns),
                "PivotGridDatasourceTagHelper",
                isPartial: true,
                generateKeyProps: false
                );

            Console.WriteLine("Done");
        }
Ejemplo n.º 2
0
        static TagInfo CreatePivotGridDatasourceTag(TagInfoPreProcessor tagInfoPreProcessor, IEnumerable <string> ns)
        {
            var xDoc    = XDocument.Load($"meta/IntellisenseData_{DX_VERSION}_spec.xml");
            var element = new XElement(xDoc.Root.Elements("IntellisenseObjectInfo").Single(el => el.GetName() == "PivotGridDataSource"));

            element.SetName("datasource");
            element.GetPropElement("store").Remove();

            var result = new TagInfo(element, tagInfoPreProcessor, ns.Concat("Data"), parentTagName: "dx-pivot-grid");

            result.Key           = "dataSource";
            result.BaseClassName = null;

            return(result);
        }
Ejemplo n.º 3
0
        public TagInfo(XElement element, TagInfoPreProcessor preProcessor, IEnumerable <string> ns, string parentTagName)
        {
            _preProcessor = preProcessor;
            Element       = element;
            Namespace     = ns;
            ParentTagName = parentTagName;
            Key           = Element.GetName();

            foreach (var prop in element.Element("Properties").Elements("IntellisenseObjectPropertyInfo"))
            {
                if (prop.IsChildTagElement())
                {
                    ChildTagElements.Add(prop);
                }
                else
                {
                    PropElements.Add(prop);
                }
            }

            preProcessor.Process(this);
        }