public static CodeTypeMember ConvertToSourcesMethod(TranslateAttribute attr, CodeMemberMethod method, CodeParameterDeclarationExpression from) { method.Statements.Add(from.ReturnNullIfNull()); var to = "to".DeclareGenericVar(attr.SourceType, typeof(List <>)); method.Statements.Add(to); CodeVariableDeclarationStatement item; var iter = from.ForEach(attr.TargetType, out item); method.Statements.Add(iter); var useExtensionMethod = attr is TranslateExtensionAttribute; var itemMethod = useExtensionMethod ? item.Call(attr.GetConvertToSourceMethodName()) : attr.SourceType.Call(attr.GetConvertToSourceMethodName(), item); iter.Statements.Add(to.Call(LIST_ADD_METHOD, itemMethod)); method.Statements.Add(to.Return()); return(method); }
public static CodeMemberMethod DeclareToSourceMethod(TranslateAttribute attr, CodeParameterDeclarationExpression from) { return attr.GetConvertToSourceMethodName().DeclareMethod( attr.SourceType, MemberAttributes.Public | MemberAttributes.Static, from); }
public static CodeTypeMember ConvertToSourcesMethod(TranslateAttribute attr, CodeMemberMethod method, CodeParameterDeclarationExpression from) { method.Statements.Add(from.ReturnNullIfNull()); var to = "to".DeclareGenericVar(attr.SourceType, typeof(List<>)); method.Statements.Add(to); CodeVariableDeclarationStatement item; var iter = from.ForEach(attr.TargetType, out item); method.Statements.Add(iter); var useExtensionMethod = attr is TranslateExtensionAttribute; var itemMethod = useExtensionMethod ? item.Call(attr.GetConvertToSourceMethodName()) : attr.SourceType.Call(attr.GetConvertToSourceMethodName(), item); iter.Statements.Add(to.Call(LIST_ADD_METHOD, itemMethod)); method.Statements.Add(to.Return()); return method; }
public static CodeMemberMethod DeclareToSourceMethod(TranslateAttribute attr, CodeParameterDeclarationExpression from) { return(attr.GetConvertToSourceMethodName().DeclareMethod( attr.SourceType, MemberAttributes.Public | MemberAttributes.Static, from)); }