示例#1
0
        public override async Task LoadWrapup(ObjectGeneration obj)
        {
            await base.LoadWrapup(obj);

            foreach (var field in obj.IterateFields(expandSets: SetMarkerType.ExpandSets.FalseAndInclude))
            {
                if (!(field is DataType dataType))
                {
                    continue;
                }
                XElement elem = new XElement("Enum");
                elem.Add(new XAttribute(Loqui.Generation.Constants.NAME, dataType.StateName));
                elem.Add(new XAttribute(Loqui.Generation.Constants.ENUM_NAME, $"{obj.ObjectName}.{dataType.EnumName}"));
                elem.Add(new XAttribute("binary", nameof(BinaryGenerationType.NoGeneration)));
                elem.Add(new XAttribute(Loqui.Generation.Constants.HAS_BEEN_SET, "false"));
                await obj.LoadField(elem, requireName : true, add : true);
            }
        }
示例#2
0
        public override async Task LoadWrapup(ObjectGeneration obj)
        {
            await base.LoadWrapup(obj);

            if (obj.Fields.Any(f => f is BreakType))
            {
                XElement elem = new XElement("Enum");
                elem.Add(new XAttribute(Loqui.Generation.Constants.NAME, VersioningFieldName));
                elem.Add(new XAttribute(Loqui.Generation.Constants.ENUM_NAME, $"{obj.ObjectName}.{VersioningEnumName}"));
                elem.Add(new XAttribute("binary", nameof(BinaryGenerationType.NoGeneration)));
                elem.Add(new XAttribute(Loqui.Generation.Constants.NULLABLE, "false"));
                var gen = await obj.LoadField(elem, requireName : true, add : false);

                if (gen.Failed)
                {
                    throw new ArgumentException();
                }
                gen.Value.SetObjectGeneration(obj, setDefaults: true);
                obj.Fields.Insert(0, gen.Value);
            }
        }