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); } }
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); } }