コード例 #1
0
 private static IEnumerable<LinkField> LinkFields(XmlPortNode xmlPortNode)
 {
     switch (xmlPortNode)
     {
         case XmlPortTableElement e:
             return e.Properties.LinkFields;
         case XmlPortTableAttribute a:
             return a.Properties.LinkFields;
         default:
             return Enumerable.Empty<LinkField>();
     }
 }
コード例 #2
0
 private static IEnumerable<TableFilterLine> SourceTableViewFilter(XmlPortNode xmlPortNode)
 {
     switch (xmlPortNode)
     {
         case XmlPortTableElement e:
             return e.Properties.SourceTableView.TableFilter;
         case XmlPortTableAttribute a:
             return a.Properties.SourceTableView.TableFilter;
         default:
             return Enumerable.Empty<TableFilterLine>();
     }
 }
コード例 #3
0
 public static void Write(this XmlPortNode xmlPortNode, CSideWriter writer)
 {
     TypeSwitch.Do(
         xmlPortNode,
         TypeSwitch.Case <XmlPortTextElement>(n => n.Write(writer)),
         TypeSwitch.Case <XmlPortTextAttribute>(n => n.Write(writer)),
         TypeSwitch.Case <XmlPortTableElement>(n => n.Write(writer)),
         TypeSwitch.Case <XmlPortTableAttribute>(n => n.Write(writer)),
         TypeSwitch.Case <XmlPortFieldElement>(n => n.Write(writer)),
         TypeSwitch.Case <XmlPortFieldAttribute>(n => n.Write(writer))
         );
 }
コード例 #4
0
        public static IEnumerable<ParameterBase> ToParameters(this XmlPortNode xmlPortNode)
        {
            yield return new SimpleParameter("ID", xmlPortNode.ID);
            yield return new SimpleParameter("Name", xmlPortNode.NodeName);

            foreach (var parameter in xmlPortNode.AllProperties.WithAValue.SelectMany(p => p.ToParameters()))
            {
                yield return parameter;
            }

            yield return new ScriptBlockParameter(
                "ChildNodes",
                xmlPortNode.Children.Select(n=>n.ToInvocation()).Cast<Statement>()
                    .Concat(SourceTableViewFilter(xmlPortNode).Select(f=>f.ToInvocation()).Cast<Statement>())
                    .Concat(LinkFields(xmlPortNode).Select(l=> l.ToInvocation()).Cast<Statement>())
            );
        }
コード例 #5
0
 public static Invocation ToInvocation(this XmlPortNode xmlPortNode) => new Invocation($"New-CBreezeXmlPort{xmlPortNode.SourceType}{xmlPortNode.NodeType}", xmlPortNode.ToParameters());