Skip to content

Commit 5d5ec33

Browse files
committed
Fixed InputFactory Nullable
1 parent 4dd3bf0 commit 5d5ec33

5 files changed

Lines changed: 48 additions & 30 deletions

File tree

src/Linq2GraphQL.Generator/GraphQLSchema/RootSchema.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,21 @@ private bool CSharpNullQuestion()
275275

276276
}
277277

278+
public string CSharpTypeNameFullNeverNull
279+
{
280+
get
281+
{
282+
var result = CSharpTypeName;
283+
284+
if (IsList)
285+
{
286+
return $"List<{result}>";
287+
}
288+
289+
return result;
290+
}
291+
}
292+
278293
public string CSharpTypeNameFull
279294
{
280295
get

src/Linq2GraphQL.Generator/Templates/Class/InputFactoryClassTemplate.cs

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace Linq2GraphQL.Generator.Templates.Class
1616
/// Class to produce the template output
1717
/// </summary>
1818

19-
#line 1 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
19+
#line 1 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
2020
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
2121
public partial class InputFactoryClassTemplate : InputFactoryClassTemplateBase
2222
{
@@ -29,14 +29,14 @@ public virtual string TransformText()
2929
this.Write("using System;\r\nusing System.Collections.Generic;\r\nusing System.Text.Json.Serializ" +
3030
"ation;\r\nusing Linq2GraphQL.Client;\r\n\r\nnamespace ");
3131

32-
#line 9 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
32+
#line 9 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
3333
this.Write(this.ToStringHelper.ToStringWithCulture(namespaceName));
3434

3535
#line default
3636
#line hidden
3737
this.Write(";\r\n\r\npublic static class IF \r\n{ \r\n");
3838

39-
#line 13 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
39+
#line 13 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
4040

4141
foreach (var field in inputs)
4242
{
@@ -46,28 +46,28 @@ public virtual string TransformText()
4646
#line hidden
4747
this.Write("\tpublic static ");
4848

49-
#line 17 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
49+
#line 17 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
5050
this.Write(this.ToStringHelper.ToStringWithCulture(field.CSharpName));
5151

5252
#line default
5353
#line hidden
5454
this.Write(" ");
5555

56-
#line 17 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
56+
#line 17 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
5757
this.Write(this.ToStringHelper.ToStringWithCulture(field.CSharpName.RemoveFromEnd("Input")));
5858

5959
#line default
6060
#line hidden
6161
this.Write("() \r\n\t{\r\n\t\treturn new ");
6262

63-
#line 19 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
63+
#line 19 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
6464
this.Write(this.ToStringHelper.ToStringWithCulture(field.CSharpName));
6565

6666
#line default
6767
#line hidden
6868
this.Write("();\r\n\t}\r\n");
6969

70-
#line 21 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
70+
#line 21 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
7171

7272
}
7373

@@ -76,7 +76,7 @@ public virtual string TransformText()
7676
#line hidden
7777
this.Write("}\r\n\r\n\r\n");
7878

79-
#line 27 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
79+
#line 27 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
8080

8181
foreach (var input in inputs.Where(x => x.AllFields.Any()))
8282
{
@@ -86,14 +86,14 @@ public virtual string TransformText()
8686
#line hidden
8787
this.Write("\r\npublic static class ");
8888

89-
#line 32 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
89+
#line 32 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
9090
this.Write(this.ToStringHelper.ToStringWithCulture(input.CSharpName));
9191

9292
#line default
9393
#line hidden
9494
this.Write("Extensions\r\n{ \r\n\t");
9595

96-
#line 34 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
96+
#line 34 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
9797

9898
foreach (var field in input.AllFields)
9999
{
@@ -103,7 +103,7 @@ public virtual string TransformText()
103103
#line default
104104
#line hidden
105105

106-
#line 39 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
106+
#line 39 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
107107

108108
if (fieldInfo.CSharpType.IsValueTypeOrString() || fieldInfo.IsEnum)
109109
{
@@ -113,42 +113,42 @@ public virtual string TransformText()
113113
#line hidden
114114
this.Write("\r\n public static ");
115115

116-
#line 44 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
116+
#line 44 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
117117
this.Write(this.ToStringHelper.ToStringWithCulture(input.CSharpName));
118118

119119
#line default
120120
#line hidden
121121
this.Write(" ");
122122

123-
#line 44 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
123+
#line 44 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
124124
this.Write(this.ToStringHelper.ToStringWithCulture(field.CSharpName));
125125

126126
#line default
127127
#line hidden
128128
this.Write("(this ");
129129

130-
#line 44 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
130+
#line 44 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
131131
this.Write(this.ToStringHelper.ToStringWithCulture(input.CSharpName));
132132

133133
#line default
134134
#line hidden
135135
this.Write(" input, ");
136136

137-
#line 44 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
137+
#line 44 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
138138
this.Write(this.ToStringHelper.ToStringWithCulture(fieldInfo.CSharpTypeNameFull));
139139

140140
#line default
141141
#line hidden
142142
this.Write(" val)\r\n {\r\n input.");
143143

144-
#line 46 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
144+
#line 46 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
145145
this.Write(this.ToStringHelper.ToStringWithCulture(field.CSharpName));
146146

147147
#line default
148148
#line hidden
149149
this.Write(" = val;\r\n return input;\r\n }\r\n\r\n");
150150

151-
#line 50 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
151+
#line 50 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
152152

153153
}
154154
else
@@ -159,49 +159,49 @@ public virtual string TransformText()
159159
#line hidden
160160
this.Write(" public static ");
161161

162-
#line 55 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
162+
#line 55 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
163163
this.Write(this.ToStringHelper.ToStringWithCulture(input.CSharpName));
164164

165165
#line default
166166
#line hidden
167167
this.Write(" ");
168168

169-
#line 55 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
169+
#line 55 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
170170
this.Write(this.ToStringHelper.ToStringWithCulture(field.CSharpName));
171171

172172
#line default
173173
#line hidden
174174
this.Write("(this ");
175175

176-
#line 55 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
176+
#line 55 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
177177
this.Write(this.ToStringHelper.ToStringWithCulture(input.CSharpName));
178178

179179
#line default
180180
#line hidden
181181
this.Write(" input, Action<");
182182

183-
#line 55 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
183+
#line 55 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
184184
this.Write(this.ToStringHelper.ToStringWithCulture(fieldInfo.CSharpTypeNameFull));
185185

186186
#line default
187187
#line hidden
188188
this.Write("> mod)\r\n {\r\n var filter = new ");
189189

190-
#line 57 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
191-
this.Write(this.ToStringHelper.ToStringWithCulture(fieldInfo.CSharpTypeNameFull));
190+
#line 57 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
191+
this.Write(this.ToStringHelper.ToStringWithCulture(fieldInfo.CSharpTypeNameFullNeverNull));
192192

193193
#line default
194194
#line hidden
195195
this.Write("();\r\n mod ??= _ => { };\r\n mod(filter); \r\n input.");
196196

197-
#line 60 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
197+
#line 60 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
198198
this.Write(this.ToStringHelper.ToStringWithCulture(field.CSharpName));
199199

200200
#line default
201201
#line hidden
202202
this.Write(" = filter;\r\n return input;\r\n }\r\n\r\n");
203203

204-
#line 64 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
204+
#line 64 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
205205

206206
}
207207
}
@@ -211,7 +211,7 @@ public virtual string TransformText()
211211
#line hidden
212212
this.Write("}\r\n");
213213

214-
#line 69 "C:\Code\DevOps\Linq2GraphQL\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
214+
#line 69 "C:\Code\Github\Linq2GraphQL.Client\src\Linq2GraphQL.Generator\Templates\Class\InputFactoryClassTemplate.tt"
215215

216216
}
217217

src/Linq2GraphQL.Generator/Templates/Class/InputFactoryClassTemplate.tt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public static class <#= input.CSharpName #>Extensions
5454
#>
5555
public static <#= input.CSharpName #> <#= field.CSharpName #>(this <#= input.CSharpName #> input, Action<<#= fieldInfo.CSharpTypeNameFull #>> mod)
5656
{
57-
var filter = new <#= fieldInfo.CSharpTypeNameFull #>();
57+
var filter = new <#= fieldInfo.CSharpTypeNameFullNeverNull #>();
5858
mod ??= _ => { };
5959
mod(filter);
6060
input.<#= field.CSharpName #> = filter;

src/Linq2GraphQL.Generator/Templates/Class/InputFactoryClassTemplate.tt.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,7 @@ public InputFactoryClassTemplate(IList<GraphqlType> inputs, string namespaceName
1010
this.inputs = inputs;
1111
this.namespaceName = namespaceName;
1212
}
13+
14+
15+
1316
}

test/Linq2GraphQL.TestClientNullable/Generated/Inputs/InputFactory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public static CustomerInput Orders(this CustomerInput input, Action<List<OrderIn
9090

9191
public static CustomerInput Address(this CustomerInput input, Action<AddressInput?> mod)
9292
{
93-
var filter = new AddressInput?();
93+
var filter = new AddressInput();
9494
mod ??= _ => { };
9595
mod(filter);
9696
input.Address = filter;
@@ -137,7 +137,7 @@ public static OrderInput Customer(this OrderInput input, Action<CustomerInput> m
137137

138138
public static OrderInput Address(this OrderInput input, Action<AddressInput?> mod)
139139
{
140-
var filter = new AddressInput?();
140+
var filter = new AddressInput();
141141
mod ??= _ => { };
142142
mod(filter);
143143
input.Address = filter;
@@ -189,7 +189,7 @@ public static OrderLineInput Order(this OrderLineInput input, Action<OrderInput>
189189

190190
public static OrderLineInput Item(this OrderLineInput input, Action<ItemInput?> mod)
191191
{
192-
var filter = new ItemInput?();
192+
var filter = new ItemInput();
193193
mod ??= _ => { };
194194
mod(filter);
195195
input.Item = filter;

0 commit comments

Comments
 (0)