| 
0
 | 
     1 <#
 | 
| 
 | 
     2 
 | 
| 
 | 
     3 OneToManyAssociationType = OneToManyAssociationType.Replace("<", "(Of ").Replace(">", ")");
 | 
| 
 | 
     4 
 | 
| 
 | 
     5 WriteComment        = (tt,s) => WriteLine("'{0}", s);
 | 
| 
 | 
     6 WriteUsing          = (tt,s) => WriteLine("Imports {0}", s);
 | 
| 
 | 
     7 WriteBeginNamespace = (tt,s) => { WriteLine("Namespace {0}", s); WriteLine(""); };
 | 
| 
 | 
     8 WriteEndNamespace   =  tt    => { WriteLine(""); WriteLine("End Namespace");    };
 | 
| 
 | 
     9 WriteBeginClass     = (tt,cl,bc) =>
 | 
| 
 | 
    10 {
 | 
| 
 | 
    11 	WriteLine("Public Partial Class {0}", cl);
 | 
| 
 | 
    12 	if (!string.IsNullOrEmpty(bc))
 | 
| 
 | 
    13 		WriteLine("\tInherits {0}", bc);
 | 
| 
 | 
    14 };
 | 
| 
 | 
    15 WriteEndClass       =  tt    => WriteLine("End Class");
 | 
| 
 | 
    16 MakeGenericType     = (c,t)  => string.Format("{0}(Of {1})", c, t);
 | 
| 
 | 
    17 WriteTableProperty  = (tt,name,pname,maxlen,maxplen) =>
 | 
| 
 | 
    18 {
 | 
| 
 | 
    19 	WriteLine("");
 | 
| 
 | 
    20 	WriteLine("Public ReadOnly Property {0}(){1} As Table(Of {2})", pname, LenDiff(maxplen, pname), name);
 | 
| 
 | 
    21 	WriteLine("\tGet");
 | 
| 
 | 
    22 	WriteLine("\t\tReturn Me.GetTable(Of {0})()", name);
 | 
| 
 | 
    23 	WriteLine("\tEnd Get");
 | 
| 
 | 
    24 	WriteLine("End Property");
 | 
| 
 | 
    25 };
 | 
| 
 | 
    26 WriteAttribute      = (tt,a) => WriteLine("<{0}> _", a.Replace("=", ":="));
 | 
| 
 | 
    27 WriteAttributeLine  =  tt    => {};
 | 
| 
 | 
    28 
 | 
| 
 | 
    29 RenderColumn = (tt,c,maxLens,attrs) =>
 | 
| 
 | 
    30 {
 | 
| 
 | 
    31 	WriteLine("");
 | 
| 
 | 
    32 
 | 
| 
 | 
    33 	var type = MakeType(c.Type);
 | 
| 
 | 
    34 
 | 
| 
 | 
    35 	if (!tt.RenderField)
 | 
| 
 | 
    36 		WriteLine("Private _{0} As {1}", c.MemberName, type);
 | 
| 
 | 
    37 
 | 
| 
 | 
    38 	attrs = attrs.Where(_ => _ != null).ToArray();
 | 
| 
 | 
    39 
 | 
| 
 | 
    40 	if (attrs.Length > 0)
 | 
| 
 | 
    41 		WriteLine("<{0}> _", string.Join(", ", attrs).Replace("=", ":="));
 | 
| 
 | 
    42 
 | 
| 
 | 
    43 	if (tt.RenderField)
 | 
| 
 | 
    44 		WriteLine("Public {0} As {1}", c.MemberName, type);
 | 
| 
 | 
    45 	else
 | 
| 
 | 
    46 	{
 | 
| 
 | 
    47 		WriteLine("Public Property {0} As {1}", c.MemberName, type);
 | 
| 
 | 
    48 		WriteLine("\tGet");
 | 
| 
 | 
    49 		WriteLine("\t\tReturn Me._{0}", c.MemberName);
 | 
| 
 | 
    50 		WriteLine("\tEnd Get");
 | 
| 
 | 
    51 		WriteLine("\tSet");
 | 
| 
 | 
    52 		WriteLine("\t\tMe._{0} = value", c.MemberName);
 | 
| 
 | 
    53 		WriteLine("\tEnd Set");
 | 
| 
 | 
    54 		WriteLine("End Property");
 | 
| 
 | 
    55 	}
 | 
| 
 | 
    56 };
 | 
| 
 | 
    57 
 | 
| 
 | 
    58 RenderForeignKey = (tt,key) =>
 | 
| 
 | 
    59 {
 | 
| 
 | 
    60 	WriteComment(tt, " " + key.KeyName);
 | 
| 
 | 
    61 
 | 
| 
 | 
    62 	var type = "" ;
 | 
| 
 | 
    63 	if (key.AssociationType == AssociationType.OneToMany)
 | 
| 
 | 
    64 		type = string.Format(OneToManyAssociationType, key.OtherTable.ClassName);
 | 
| 
 | 
    65 	else
 | 
| 
 | 
    66 		type = key.OtherTable.ClassName ;
 | 
| 
 | 
    67 
 | 
| 
 | 
    68 	if (!RenderField)
 | 
| 
 | 
    69 		WriteLine("Private _{0} As {1}", key.MemberName, type);
 | 
| 
 | 
    70 
 | 
| 
 | 
    71 	WriteLine("<Association(ThisKey:=\"{0}\", OtherKey:=\"{1}\")> _",
 | 
| 
 | 
    72 		string.Join(", ", (from c in key.ThisColumns  select c.MemberName).ToArray()),
 | 
| 
 | 
    73 		string.Join(", ", (from c in key.OtherColumns select c.MemberName).ToArray()));
 | 
| 
 | 
    74 
 | 
| 
 | 
    75 	if (RenderField)
 | 
| 
 | 
    76 		WriteLine("Public {0} As {1}", key.MemberName, type);
 | 
| 
 | 
    77 	else
 | 
| 
 | 
    78 	{
 | 
| 
 | 
    79 		WriteLine("Public Property {0} As {1}", key.MemberName, type);
 | 
| 
 | 
    80 		WriteLine("\tGet");
 | 
| 
 | 
    81 		WriteLine("\t\tReturn Me._{0}", key.MemberName);
 | 
| 
 | 
    82 		WriteLine("\tEnd Get");
 | 
| 
 | 
    83 		WriteLine("\tSet");
 | 
| 
 | 
    84 		WriteLine("\t\tMe._{0} = value", key.MemberName);
 | 
| 
 | 
    85 		WriteLine("\tEnd Set");
 | 
| 
 | 
    86 		WriteLine("End Property");
 | 
| 
 | 
    87 	}
 | 
| 
 | 
    88 };
 | 
| 
 | 
    89 
 | 
| 
 | 
    90 MakeType = t =>
 | 
| 
 | 
    91 {
 | 
| 
 | 
    92 	switch (t)
 | 
| 
 | 
    93 	{
 | 
| 
 | 
    94 		case "byte[]"   : return "Byte()";
 | 
| 
 | 
    95 		case "string"   : return "String";
 | 
| 
 | 
    96 		case "byte"     : return "Byte";
 | 
| 
 | 
    97 		case "byte?"    : return "Byte?";
 | 
| 
 | 
    98 		case "bool"     : return "Boolean";
 | 
| 
 | 
    99 		case "bool?"    : return "Boolean?";
 | 
| 
 | 
   100 		case "object"   : return "Object";
 | 
| 
 | 
   101 		case "short"    : return "Short";
 | 
| 
 | 
   102 		case "short?"   : return "Short?";
 | 
| 
 | 
   103 		case "decimal"  : return "Decimal";
 | 
| 
 | 
   104 		case "decimal?" : return "Decimal?";
 | 
| 
 | 
   105 		case "int"      : return "Integer";
 | 
| 
 | 
   106 		case "int?"     : return "Integer?";
 | 
| 
 | 
   107 		case "float"    : return "Single";
 | 
| 
 | 
   108 		case "float?"   : return "Single?";
 | 
| 
 | 
   109 		case "double"   : return "Double";
 | 
| 
 | 
   110 		case "double?"  : return "Double?";
 | 
| 
 | 
   111 		case "long"     : return "Long";
 | 
| 
 | 
   112 		case "long?"    : return "Long?";
 | 
| 
 | 
   113 	}
 | 
| 
 | 
   114 	
 | 
| 
 | 
   115 	return t;
 | 
| 
 | 
   116 };
 | 
| 
 | 
   117 #> |