Skip to content

Commit 994314f

Browse files
committed
Angular
- custom http client more options - use custom http client via fluent - prefer interfaces via fluent api - import from generic types fixed - default values on interfaces fixed ASP.NET - optional parameters from action/route template Fluent - do not generate all code on before build event - optional before build code in GeneratorMain added - ignore type via SetType added Reflection - read generic types fixed
1 parent c0d1a4c commit 994314f

30 files changed

+580
-110
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace KY.Generator.Angular.Commands
2+
{
3+
public class AngularHttpClientMethodOptions
4+
{
5+
public bool HasHttpOptions { get; set; } = true;
6+
public bool NotGeneric { get; set; }
7+
public bool ReturnGeneric { get; set; } = true;
8+
public bool ParameterGeneric { get; set; }
9+
public bool UseParameters { get; set; }
10+
public bool ReturnsAny { get; set; }
11+
}
12+
}

Angular/Commands/AngularServiceCommand.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,18 @@ public override IGeneratorCommandResult Run(IOutput output)
3434
writeConfiguration.Service.EndlessTries = this.Parameters.EndlessTries;
3535
writeConfiguration.Service.Timeouts = this.Parameters.Timeouts;
3636
writeConfiguration.Model.RelativePath = this.Parameters.RelativeModelPath;
37+
writeConfiguration.Service.HttpClient.Name = this.Parameters.HttpClient;
38+
writeConfiguration.Service.HttpClient.Import = this.Parameters.HttpClientUsing;
39+
writeConfiguration.Service.HttpClient.Get = this.Parameters.HttpClientGet;
40+
writeConfiguration.Service.HttpClient.HasGetOptions = this.Parameters.HttpClientGetOptions;
41+
writeConfiguration.Service.HttpClient.Post = this.Parameters.HttpClientPost;
42+
writeConfiguration.Service.HttpClient.HasPostOptions = this.Parameters.HttpClientPostOptions;
43+
writeConfiguration.Service.HttpClient.Patch = this.Parameters.HttpClientPatch;
44+
writeConfiguration.Service.HttpClient.HasPatchOptions = this.Parameters.HttpClientPatchOptions;
45+
writeConfiguration.Service.HttpClient.Put = this.Parameters.HttpClientPut;
46+
writeConfiguration.Service.HttpClient.HasPutOptions = this.Parameters.HttpClientPutOptions;
47+
writeConfiguration.Service.HttpClient.Delete = this.Parameters.HttpClientDelete;
48+
writeConfiguration.Service.HttpClient.HasDeleteOptions = this.Parameters.HttpClientDeleteOptions;
3749

3850
output.DeleteAllRelatedFiles(writeConfiguration.OutputId, this.Parameters.RelativePath);
3951

Angular/Commands/AngularServiceCommandParameters.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,17 @@ public class AngularServiceCommandParameters : GeneratorCommandParameters
1010
public bool EndlessTries { get; set; }
1111
public List<int> Timeouts { get; set; }
1212
public bool Strict { get; set; }
13+
public string HttpClient { get; set; }
14+
public string HttpClientUsing { get; set; }
15+
public string HttpClientGet { get; set; }
16+
public AngularHttpClientMethodOptions HttpClientGetOptions { get; set; } = new();
17+
public string HttpClientPost { get; set; }
18+
public AngularHttpClientMethodOptions HttpClientPostOptions { get; set; } = new();
19+
public string HttpClientPatch { get; set; }
20+
public AngularHttpClientMethodOptions HttpClientPatchOptions { get; set; } = new();
21+
public string HttpClientPut { get; set; }
22+
public AngularHttpClientMethodOptions HttpClientPutOptions { get; set; } = new();
23+
public string HttpClientDelete { get; set; }
24+
public AngularHttpClientMethodOptions HttpClientDeleteOptions { get; set; } = new();
1325
}
1426
}
Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
1-
namespace KY.Generator.Angular.Configurations
1+
using KY.Generator.Angular.Commands;
2+
3+
namespace KY.Generator.Angular.Configurations
24
{
35
public class AngularWriteHttpClientConfiguration
46
{
57
public string Name { get; set; }
68
public string Import { get; set; }
9+
public string Get { get; set; }
10+
public AngularHttpClientMethodOptions HasGetOptions { get; set; }
11+
public string Post { get; set; }
12+
public AngularHttpClientMethodOptions HasPostOptions { get; set; }
13+
public string Patch { get; set; }
14+
public AngularHttpClientMethodOptions HasPatchOptions { get; set; }
15+
public string Put { get; set; }
16+
public AngularHttpClientMethodOptions HasPutOptions { get; set; }
17+
public string Delete { get; set; }
18+
public AngularHttpClientMethodOptions HasDeleteOptions { get; set; }
719
}
8-
}
20+
}

Angular/Configurations/AngularWriteServiceConfiguration.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ public class AngularWriteServiceConfiguration
66
{
77
public string Name { get; set; }
88
public string RelativePath { get; set; }
9-
public AngularWriteHttpClientConfiguration HttpClient { get; set; }
9+
public AngularWriteHttpClientConfiguration HttpClient { get; set; } = new();
1010
public bool EndlessTries { get; set; }
1111
public List<int> Timeouts { get; set; }
1212
}
13-
}
13+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
using KY.Generator.Angular.Commands;
2+
3+
namespace KY.Generator.Angular.Fluent
4+
{
5+
public class AngularHttpClientSyntax : IAngularHttpClientMethodSyntax
6+
{
7+
private readonly AngularHttpClientMethodOptions options;
8+
9+
public AngularHttpClientSyntax(AngularHttpClientMethodOptions options)
10+
{
11+
this.options = options;
12+
}
13+
14+
public IAngularHttpClientMethodSyntax NoHttpOptions()
15+
{
16+
this.options.HasHttpOptions = false;
17+
return this;
18+
}
19+
20+
public IAngularHttpClientMethodSyntax NotGeneric()
21+
{
22+
this.options.NotGeneric = true;
23+
return this;
24+
}
25+
26+
public IAngularHttpClientMethodSyntax ReturnGeneric()
27+
{
28+
this.options.ReturnGeneric = true;
29+
return this;
30+
}
31+
32+
public IAngularHttpClientMethodSyntax ParameterGeneric()
33+
{
34+
this.options.ParameterGeneric = true;
35+
return this;
36+
}
37+
38+
public IAngularHttpClientMethodSyntax UseParameters()
39+
{
40+
this.options.UseParameters = true;
41+
return this;
42+
}
43+
44+
public IAngularHttpClientMethodSyntax ReturnsAny()
45+
{
46+
this.options.ReturnsAny = true;
47+
return this;
48+
}
49+
}
50+
}

Angular/Fluent/AngularModelSyntax.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,11 @@ public IAngularModelSyntax Strict(bool value = true)
5757
this.command.Parameters.Strict = value;
5858
return this;
5959
}
60+
61+
public IAngularModelSyntax PreferInterfaces()
62+
{
63+
this.command.Parameters.PreferInterfaces = true;
64+
return this;
65+
}
6066
}
6167
}

Angular/Fluent/AngularServiceSyntax.cs

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
using System.Linq;
1+
using System;
2+
using System.Linq;
23
using KY.Generator.Angular.Commands;
34

45
namespace KY.Generator.Angular.Fluent
56
{
6-
internal class AngularServiceSyntax : IAngularServiceSyntax
7+
internal class AngularServiceSyntax : IAngularServiceSyntax, IAngularHttpClientSyntax
78
{
89
private readonly AngularWriteSyntax syntax;
910
private readonly AngularServiceCommand command;
@@ -44,5 +45,47 @@ public IAngularServiceSyntax Name(string name)
4445
this.command.Parameters.Name = name;
4546
return this;
4647
}
48+
49+
public IAngularHttpClientSyntax HttpClient(string type, string import)
50+
{
51+
this.command.Parameters.HttpClient = type;
52+
this.command.Parameters.HttpClientUsing = import;
53+
return this;
54+
}
55+
56+
public IAngularHttpClientSyntax GetMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null)
57+
{
58+
this.command.Parameters.HttpClientGet = name;
59+
optionsAction?.Invoke(new AngularHttpClientSyntax(this.command.Parameters.HttpClientGetOptions));
60+
return this;
61+
}
62+
63+
public IAngularHttpClientSyntax PostMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null)
64+
{
65+
this.command.Parameters.HttpClientPost = name;
66+
optionsAction?.Invoke(new AngularHttpClientSyntax(this.command.Parameters.HttpClientPostOptions));
67+
return this;
68+
}
69+
70+
public IAngularHttpClientSyntax PutMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null)
71+
{
72+
this.command.Parameters.HttpClientPut = name;
73+
optionsAction?.Invoke(new AngularHttpClientSyntax(this.command.Parameters.HttpClientPutOptions));
74+
return this;
75+
}
76+
77+
public IAngularHttpClientSyntax PatchMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null)
78+
{
79+
this.command.Parameters.HttpClientPatch = name;
80+
optionsAction?.Invoke(new AngularHttpClientSyntax(this.command.Parameters.HttpClientPatchOptions));
81+
return this;
82+
}
83+
84+
public IAngularHttpClientSyntax DeleteMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null)
85+
{
86+
this.command.Parameters.HttpClientDelete = name;
87+
optionsAction?.Invoke(new AngularHttpClientSyntax(this.command.Parameters.HttpClientDeleteOptions));
88+
return this;
89+
}
4790
}
4891
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace KY.Generator.Angular.Fluent
2+
{
3+
public interface IAngularHttpClientMethodSyntax
4+
{
5+
IAngularHttpClientMethodSyntax NoHttpOptions();
6+
IAngularHttpClientMethodSyntax NotGeneric();
7+
IAngularHttpClientMethodSyntax ReturnGeneric();
8+
IAngularHttpClientMethodSyntax ParameterGeneric();
9+
IAngularHttpClientMethodSyntax UseParameters();
10+
IAngularHttpClientMethodSyntax ReturnsAny();
11+
}
12+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
3+
namespace KY.Generator.Angular.Fluent
4+
{
5+
public interface IAngularHttpClientSyntax : IAngularServiceSyntax
6+
{
7+
IAngularHttpClientSyntax GetMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null);
8+
IAngularHttpClientSyntax PostMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null);
9+
IAngularHttpClientSyntax PutMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null);
10+
IAngularHttpClientSyntax PatchMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null);
11+
IAngularHttpClientSyntax DeleteMethod(string name, Action<IAngularHttpClientMethodSyntax> optionsAction = null);
12+
}
13+
}

0 commit comments

Comments
 (0)