@@ -17,16 +17,15 @@ public StateMachineFeatureBuilder(IServiceCollection services)
17
17
_featureProviders = services . AddMvcCore ( ) . PartManager . FeatureProviders ;
18
18
_services = services ;
19
19
}
20
-
20
+
21
21
public StateMachineFeatureBuilder < T > WithKeyType < T > ( )
22
22
where T : struct , IEquatable < T >
23
23
{
24
- _featureProviders . Add ( new StateMachineFeatureProvider < T > ( ) ) ;
25
24
return new StateMachineFeatureBuilder < T > ( _featureProviders , _services ) ;
26
25
}
27
26
}
28
27
29
- public class StateMachineFeatureBuilder < T1 >
28
+ public class StateMachineFeatureBuilder < T1 >
30
29
where T1 : struct , IEquatable < T1 >
31
30
{
32
31
private readonly IList < IApplicationFeatureProvider > _featureProviders ;
@@ -43,12 +42,12 @@ public StateMachineFeatureBuilder(
43
42
public StateMachineFeatureBuilder < T1 , T > WithGraphEnumType < T > ( )
44
43
where T : struct , IConvertible
45
44
{
46
- return new StateMachineFeatureBuilder < T1 , T > ( _featureProviders , _services ) ;
45
+ return new StateMachineFeatureBuilder < T1 , T > ( _featureProviders , _services ) ;
47
46
}
48
47
}
49
48
50
- public class StateMachineFeatureBuilder < T1 , T2 >
51
- where T1 : struct , IEquatable < T1 >
49
+ public class StateMachineFeatureBuilder < T1 , T2 >
50
+ where T1 : struct , IEquatable < T1 >
52
51
where T2 : struct , IConvertible
53
52
{
54
53
private readonly IList < IApplicationFeatureProvider > _featureProviders ;
@@ -61,14 +60,15 @@ public StateMachineFeatureBuilder(
61
60
_featureProviders = featureProviders ;
62
61
_services = services ;
63
62
}
63
+
64
64
public StateMachineFeatureBuilder < T1 , T2 , T > WithVertexEnumType < T > ( )
65
65
where T : struct , IConvertible
66
66
{
67
67
return new StateMachineFeatureBuilder < T1 , T2 , T > ( _featureProviders , _services ) ;
68
68
}
69
69
}
70
70
71
- public class StateMachineFeatureBuilder < T1 , T2 , T3 >
71
+ public class StateMachineFeatureBuilder < T1 , T2 , T3 >
72
72
where T1 : struct , IEquatable < T1 >
73
73
where T2 : struct , IConvertible
74
74
where T3 : struct , IConvertible
@@ -83,14 +83,15 @@ public StateMachineFeatureBuilder(
83
83
_featureProviders = featureProviders ;
84
84
_services = services ;
85
85
}
86
+
86
87
public StateMachineFeatureBuilder < T1 , T2 , T3 , T > WithSubjectType < T > ( )
87
88
where T : StateMachineSubject < T1 , T2 , T3 , T > , new ( )
88
89
{
89
- return new StateMachineFeatureBuilder < T1 , T2 , T3 , T > ( _featureProviders , _services ) ;
90
+ return new StateMachineFeatureBuilder < T1 , T2 , T3 , T > ( _featureProviders , _services ) ;
90
91
}
91
92
}
92
93
93
- public class StateMachineFeatureBuilder < T1 , T2 , T3 , T4 >
94
+ public class StateMachineFeatureBuilder < T1 , T2 , T3 , T4 >
94
95
where T1 : struct , IEquatable < T1 >
95
96
where T2 : struct , IConvertible
96
97
where T3 : struct , IConvertible
@@ -106,20 +107,20 @@ public StateMachineFeatureBuilder(
106
107
_featureProviders = featureProviders ;
107
108
_services = services ;
108
109
}
109
- public StateMachineFeatureBuilder < T1 , T2 , T3 , T4 , T > WithRepositoryType < T > ( )
110
+
111
+ public StateMachineFeatureBuilder < T1 , T2 , T3 , T4 , T > WithRepositoryType < T > ( )
110
112
where T : BaseStateMachineRepository < T1 , T2 , T3 , T4 >
111
113
{
112
- _services . AddScoped < T > ( ) ;
113
- _services . AddScoped < BaseStateMachineRepository < T1 , T2 , T3 , T4 > > ( ( svc ) => svc . GetService < T > ( ) ) ;
114
114
return new StateMachineFeatureBuilder < T1 , T2 , T3 , T4 , T > ( _featureProviders , _services ) ;
115
115
}
116
116
}
117
- public class StateMachineFeatureBuilder < T1 , T2 , T3 , T4 , T5 >
118
- where T1 : struct , IEquatable < T1 >
119
- where T2 : struct , IConvertible
120
- where T3 : struct , IConvertible
117
+
118
+ public class StateMachineFeatureBuilder < T1 , T2 , T3 , T4 , T5 >
119
+ where T1 : struct , IEquatable < T1 >
120
+ where T2 : struct , IConvertible
121
+ where T3 : struct , IConvertible
121
122
where T4 : StateMachineSubject < T1 , T2 , T3 , T4 > , new ( )
122
- where T5 : BaseStateMachineRepository < T1 , T2 , T3 , T4 >
123
+ where T5 : BaseStateMachineRepository < T1 , T2 , T3 , T4 >
123
124
{
124
125
private readonly IList < IApplicationFeatureProvider > _featureProviders ;
125
126
private readonly IServiceCollection _services ;
@@ -130,25 +131,22 @@ public StateMachineFeatureBuilder(
130
131
{
131
132
_featureProviders = featureProviders ;
132
133
_services = services ;
133
- _services . AddScoped < IStateMachineMetaService < T1 > , StateMachineMetaService < T1 , T2 , T3 , T5 , T4 > > ( ) ;
134
134
}
135
135
136
136
public StateMachineFeatureBuilder < T1 , T2 , T3 , T4 , T5 , T > WithStateMachineService < T > ( )
137
137
where T : BaseStateMachineService < T1 , T2 , T3 , T4 , T5 >
138
138
{
139
- _services . AddScoped < T > ( ) ;
140
- _services . AddScoped < BaseStateMachineService < T1 , T2 , T3 , T4 , T5 > > (
141
- serviceProvider => serviceProvider . GetRequiredService < T > ( ) ) ;
142
139
return new StateMachineFeatureBuilder < T1 , T2 , T3 , T4 , T5 , T > ( _featureProviders , _services ) ;
143
140
}
144
- }
145
-
146
- public class StateMachineFeatureBuilder < T1 , T2 , T3 , T4 , T5 , T6 >
147
- where T1 : struct , IEquatable < T1 >
148
- where T2 : struct , IConvertible
149
- where T3 : struct , IConvertible
150
- where T4 : StateMachineSubject < T1 , T2 , T3 , T4 >
151
- where T5 : BaseStateMachineRepository < T1 , T2 , T3 , T4 >
141
+ }
142
+
143
+ public class StateMachineFeatureBuilder < T1 , T2 , T3 , T4 , T5 , T6 >
144
+ where T1 : struct , IEquatable < T1 >
145
+ where T2 : struct , IConvertible
146
+ where T3 : struct , IConvertible
147
+ where T4 : StateMachineSubject < T1 , T2 , T3 , T4 > , new ( )
148
+ where T5 : BaseStateMachineRepository < T1 , T2 , T3 , T4 >
149
+ where T6 : BaseStateMachineService < T1 , T2 , T3 , T4 , T5 >
152
150
{
153
151
private readonly IList < IApplicationFeatureProvider > _featureProviders ;
154
152
private readonly IServiceCollection _services ;
@@ -160,5 +158,36 @@ public StateMachineFeatureBuilder(
160
158
_featureProviders = featureProviders ;
161
159
_services = services ;
162
160
}
163
- }
161
+
162
+ public void Build ( )
163
+ {
164
+ AddFeatureProvider ( ) ;
165
+ AddStateMachineRepository ( ) ;
166
+ AddStateMachineMetaService ( ) ;
167
+ AddStateMachineService ( ) ;
168
+ }
169
+
170
+ private void AddFeatureProvider ( )
171
+ {
172
+ _featureProviders . Add ( new StateMachineFeatureProvider < T1 > ( ) ) ;
173
+ }
174
+
175
+ private void AddStateMachineRepository ( )
176
+ {
177
+ _services . AddScoped < T5 > ( ) ;
178
+ _services . AddScoped < BaseStateMachineRepository < T1 , T2 , T3 , T4 > > ( ( svc ) => svc . GetService < T5 > ( ) ) ;
179
+ }
180
+
181
+ private void AddStateMachineMetaService ( )
182
+ {
183
+ _services . AddScoped < IStateMachineMetaService < T1 > , StateMachineMetaService < T1 , T2 , T3 , T5 , T4 > > ( ) ;
184
+ }
185
+
186
+ private void AddStateMachineService ( )
187
+ {
188
+ _services . AddScoped < T6 > ( ) ;
189
+ _services . AddScoped < BaseStateMachineService < T1 , T2 , T3 , T4 , T5 > > (
190
+ serviceProvider => serviceProvider . GetRequiredService < T6 > ( ) ) ;
191
+ }
192
+ }
164
193
}
0 commit comments