Beispiel #1
0
        public override async Task Load(XElement node, bool requireName = true)
        {
            await base.Load(node, requireName);

            if (node.TryGetAttribute <string>("maleMarker", out var maleMarker))
            {
                MaleMarker = new RecordType(maleMarker);
            }

            if (node.TryGetAttribute <string>("femaleMarker", out var femaleMarker))
            {
                FemaleMarker = new RecordType(femaleMarker);
            }

            if (MaleMarker.HasValue != FemaleMarker.HasValue)
            {
                throw new ArgumentException("Both submarkers must be set at once.");
            }

            this.MarkerPerGender = node.GetAttribute <bool>("markerPerGender");

            if (MaleMarker.HasValue)
            {
                this.SubTypeGeneration.NullableProperty.OnNext((true, true));
            }

            FemaleConversions = RecordTypeConverterModule.GetConverter(node.Element(XName.Get("FemaleTypeOverrides", LoquiGenerator.Namespace)));
            MaleConversions   = RecordTypeConverterModule.GetConverter(node.Element(XName.Get("MaleTypeOverrides", LoquiGenerator.Namespace)));
        }
Beispiel #2
0
 public override void GenerateInRegistration(FileGeneration fg)
 {
     base.GenerateInRegistration(fg);
     RecordTypeConverterModule.GenerateConverterMember(fg, this.ObjectGen, this.FemaleConversions, $"{this.Name}Female");
     RecordTypeConverterModule.GenerateConverterMember(fg, this.ObjectGen, this.MaleConversions, $"{this.Name}Male");
 }