Skip to content

Commit 5c7c9a8

Browse files
committed
method request body and some additional method fixes
1 parent 230f201 commit 5c7c9a8

File tree

6 files changed

+33
-12
lines changed

6 files changed

+33
-12
lines changed

Templates/CSharp/Base/IRequestBuilder.Base.template.tt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,17 @@ public string GetEntityInterfaceDefinition(OdcmClass entity)
77
{
88
string typeDeclaration = null;
99
var className = this.GetEntityRequestBuilderName(entity);
10+
var @namespace = entity.GetNamespaceName();
11+
var iBaseRequestBuilderTypeName = @namespace.GetMiddlewareTypeName("IBaseRequestBuilder");
1012

1113
if (entity.Base == null)
1214
{
13-
typeDeclaration = string.Format("I{0} : IBaseRequestBuilder", className);
15+
typeDeclaration = string.Format("I{0} : {1}", className, iBaseRequestBuilderTypeName);
1416
}
1517
else
1618
{
17-
typeDeclaration = string.Format("I{0} : I{1}RequestBuilder", className, entity.Base.Name.ToCheckedCase());
19+
var baseIRequestBuilderTypeName = entity.Base.GetTypeString(@namespace, "I{0}RequestBuilder");
20+
typeDeclaration = string.Format("I{0} : {1}", className, baseIRequestBuilderTypeName);
1821
}
1922

2023
var stringBuilder = new StringBuilder();

Templates/CSharp/Base/RequestBuilder.Base.template.tt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,16 @@ public string GetClassDefinition(string className, string @namespace)
2121

2222
public string GetEntityClassDefinition(OdcmClass entity)
2323
{
24-
var baseRequestBuilderTypeName = entity.GetNamespaceName().GetMiddlewareTypeName("BaseRequestBuilder");
24+
var @namespace = entity.GetNamespaceName();
25+
var baseRequestBuilderTypeName = @namespace.GetMiddlewareTypeName("BaseRequestBuilder");
26+
2527
string typeDeclaration = null;
2628
var className = this.GetEntityRequestBuilderName(entity);
2729

2830
if (entity.Base != null)
2931
{
30-
typeDeclaration = string.Format("{0} : {1}RequestBuilder, I{0}", className, entity.Base.Name.ToCheckedCase());
32+
var baseTypeRequestBuilderTypeName = entity.Base.GetTypeString(@namespace, "{0}RequestBuilder");
33+
typeDeclaration = string.Format("{0} : {1}, I{0}", className, baseTypeRequestBuilderTypeName);
3134
}
3235
else
3336
{

Templates/CSharp/Requests/IMethodRequest.cs.tt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ var method = host.CurrentType.AsOdcmMethod();
77
var @namespace = method.Namespace.GetNamespaceName();
88
var entityName = method.Class.Name.ToCheckedCase();
99

10+
var iBaseRequestTypeName = @namespace.GetMiddlewareTypeName("IBaseRequest");
11+
1012
var isFunction = method.IsFunction;
1113
var isAction = !isFunction;
1214
var isComposable = method.IsComposable;
@@ -48,7 +50,7 @@ namespace <#=@namespace#>
4850
/// <summary>
4951
/// The interface I<#=requestType#>.
5052
/// </summary>
51-
public partial interface I<#=requestType#> : IBaseRequest
53+
public partial interface I<#=requestType#> : <#=iBaseRequestTypeName#>
5254
{
5355
<#
5456
if (includeRequestBody)

Templates/CSharp/Requests/IMethodRequestBuilder.cs.tt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
var method = host.CurrentType.AsOdcmMethod();
77
var @namespace = method.Namespace.GetNamespaceName();
8+
9+
var optionTypeName = @namespace.GetMiddlewareTypeName("Option");
10+
811
var entityName = method.Class.Name.ToCheckedCase();
912
var requestType = entityName + method.Name.Substring(method.Name.IndexOf('.') + 1).ToCheckedCase() + "Request";
1013
var requestBuilderType = requestType + "Builder";
@@ -26,6 +29,6 @@ namespace <#=@namespace#>
2629
/// </summary>
2730
/// <param name="options">The query and header options for the request.</param>
2831
/// <returns>The built request.</returns>
29-
I<#=requestType#> Request(IEnumerable<Option> options = null);
32+
I<#=requestType#> Request(IEnumerable<<#=optionTypeName#>> options = null);
3033
}
3134
}

Templates/CSharp/Requests/MethodRequest.cs.tt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55

66
var method = host.CurrentType.AsOdcmMethod();
77
var @namespace = method.Namespace.GetNamespaceName();
8+
9+
var baseRequestTypeName = @namespace.GetMiddlewareTypeName("BaseRequest");
10+
var iBaseClientTypeName = @namespace.GetMiddlewareTypeName("IBaseClient");
11+
var optionTypeName = @namespace.GetMiddlewareTypeName("Option");
12+
813
var entityName = method.Class.Name.ToCheckedCase();
914

1015
var isFunction = method.IsFunction;
@@ -55,15 +60,15 @@ namespace <#=@namespace#>
5560
/// <summary>
5661
/// The type <#=requestType#>.
5762
/// </summary>
58-
public partial class <#=requestType#> : BaseRequest, I<#=requestType#>
63+
public partial class <#=requestType#> : <#=baseRequestTypeName#>, I<#=requestType#>
5964
{
6065
/// <summary>
6166
/// Constructs a new <#=requestType#>.
6267
/// </summary>
6368
public <#=requestType#>(
6469
string requestUrl,
65-
IBaseClient client,
66-
IEnumerable<Option> options)
70+
<#=iBaseClientTypeName#> client,
71+
IEnumerable<<#=optionTypeName#>> options)
6772
: base(requestUrl, client, options)
6873
{
6974
<#

Templates/CSharp/Requests/MethodRequestBuilder.cs.tt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
var method = host.CurrentType.AsOdcmMethod();
77
var @namespace = method.Namespace.GetNamespaceName();
8+
89
var entityName = method.Class.Name.ToCheckedCase();
910
var methodName = method.Name.ToCheckedCase();
1011
var requestType = entityName + methodName + "Request";
@@ -13,6 +14,10 @@ var requestBuilderType = requestType + "Builder";
1314
var isPost = method.IsAction() && method.Parameters != null && method.Parameters.Any();
1415
var methodType = method.IsFunction ? "Function" : "Action";
1516

17+
var baseMethodRequestBuilderTypeName = @namespace.GetMiddlewareTypeName("Base" + methodType + "MethodRequestBuilder");
18+
var iBaseClientTypeName = @namespace.GetMiddlewareTypeName("IBaseClient");
19+
var optionTypeName = @namespace.GetMiddlewareTypeName("Option");
20+
1621
// Overloads are determined based on the name of method and the type of the binding parameter.
1722
// There is no differentiation between an entity, and a collection of the same entities.
1823
// This may cause issues in the future that would require changes.
@@ -71,7 +76,7 @@ namespace <#=@namespace#>
7176
/// <summary>
7277
/// The type <#=requestBuilderType#>.
7378
/// </summary>
74-
public partial class <#=requestBuilderType#> : Base<#=methodType#>MethodRequestBuilder<I<#=requestType#>>, I<#=requestBuilderType#>
79+
public partial class <#=requestBuilderType#> : <#=baseMethodRequestBuilderTypeName#><I<#=requestType#>>, I<#=requestBuilderType#>
7580
{
7681
<#
7782
// We only want to generate unique method signatures.
@@ -90,7 +95,7 @@ foreach (var m in methods)
9095
/// <param name="client">The <see cref="IBaseClient"/> for handling requests.</param><#=m.ParameterComments#>
9196
public <#=requestBuilderType#>(
9297
string requestUrl,
93-
IBaseClient client<#=m.ParametersAsArguments#>)
98+
<#=iBaseClientTypeName#> client<#=m.ParametersAsArguments#>)
9499
: base(requestUrl, client)
95100
{
96101
<#
@@ -113,7 +118,7 @@ foreach (var m in methods)
113118
/// <param name="functionUrl">The request URL to </param>
114119
/// <param name="options">The query and header options for the request.</param>
115120
/// <returns>An instance of a specific request class.</returns>
116-
protected override I<#=requestType#> CreateRequest(string functionUrl, IEnumerable<Option> options)
121+
protected override I<#=requestType#> CreateRequest(string functionUrl, IEnumerable<<#=optionTypeName#>> options)
117122
{
118123
var request = new <#=requestType#>(functionUrl, this.Client, options);
119124

0 commit comments

Comments
 (0)