Exemplo n.º 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)));
    }
Exemplo n.º 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");
 }