Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- region.Begin("Function Imports", 1);
- foreach (EdmFunction edmFunction in container.FunctionImports)
- {
- IEnumerable<FunctionImportParameter> parameters = FunctionImportParameter.Create(edmFunction.Parameters, code, ef);
- string paramList = String.Join(", ", parameters.Select(p => p.FunctionParameterType + " " + p.FunctionParameterName).ToArray());
- if (edmFunction.ReturnParameter == null)
- {
- #>
- <#=Accessibility.ForMethod(edmFunction)#> void <#=code.Escape(edmFunction)#>(<#= paramList #>)
- {
- <# foreach(FunctionImportParameter parameter in parameters)
- {
- if(!parameter.NeedsLocalVariable)
- continue;
- #>ObjectParameter <#= parameter.LocalVariableName #>;
- if(<#= parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue)" : parameter.FunctionParameterName + " != null)" #>
- <#= parameter.LocalVariableName #> = new ObjectParameter("<#= parameter.EsqlParameterName #>", <#=parameter.FunctionParameterName#>);
- else
- <#= parameter.LocalVariableName #> = new ObjectParameter("<#= parameter.EsqlParameterName #>", default(<#= parameter.RawClrTypeName #>));
- <#
- }
- #>base.ExecuteFunction("<#= edmFunction.Name #>"<#= code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())) #>);
- }
- <#
- }
- else
- {
- string returnTypeElement = code.Escape(ef.GetElementType(edmFunction.ReturnParameter.TypeUsage));
- #>
- <#=Accessibility.ForMethod(edmFunction)#> ObjectResult<<#=returnTypeElement#>> <#=code.Escape(edmFunction)#>(<#=paramList#>)
- {
- <#
- foreach (var parameter in parameters)
- {
- if (!parameter.NeedsLocalVariable)
- {
- continue;
- }
- #>
- ObjectParameter <#=parameter.LocalVariableName#>;
- if (<#=parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"#>)
- {
- <#=parameter.LocalVariableName#> = new ObjectParameter("<#=parameter.EsqlParameterName#>", <#=parameter.FunctionParameterName#>);
- }
- else
- {
- <#=parameter.LocalVariableName#> = new ObjectParameter("<#=parameter.EsqlParameterName#>", typeof(<#=parameter.RawClrTypeName#>));
- }
- <#
- }
- #>
- return base.ExecuteFunction<<#=returnTypeElement#>>("<#=edmFunction.Name#>"<#=code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))#>);
- }
- <# }
- }
- region.End();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement