@@ -149,50 +149,19 @@ private static void MakeServers(IList<OpenApiServer> servers, ParsingContext con
149
149
{
150
150
foreach ( var scheme in schemes )
151
151
{
152
- if ( String . IsNullOrEmpty ( scheme ) )
153
- {
154
- host = "//" + host ; // The double slash prefix creates a relative url where the scheme is defined by the BaseUrl
155
- }
156
- int ? port = null ;
157
- if ( host . Contains ( ":" ) )
158
- {
159
- var pieces = host . Split ( ':' ) ;
160
- host = pieces . First ( ) ;
161
- port = int . Parse ( pieces . Last ( ) ) ;
162
- }
163
- var uriBuilder = new UriBuilder ( scheme , host )
164
- {
165
- Path = basePath
166
- } ;
167
-
168
- if ( port != null )
169
- {
170
- uriBuilder . Port = port . Value ;
171
- }
172
-
173
152
var server = new OpenApiServer
174
153
{
175
- Url = uriBuilder . ToString ( )
154
+ Url = BuildUrl ( scheme , host , basePath )
176
155
} ;
177
156
178
157
servers . Add ( server ) ;
179
158
}
180
159
}
181
160
else
182
161
{
183
- if ( ! String . IsNullOrEmpty ( host ) )
184
- {
185
- host = "//" + host ; // The double slash prefix creates a relative url where the scheme is defined by the BaseUrl
186
- }
187
- var uriBuilder = new UriBuilder ( )
188
- {
189
- Scheme = null ,
190
- Host = host ,
191
- Path = basePath
192
- } ;
193
162
var server = new OpenApiServer
194
163
{
195
- Url = uriBuilder . ToString ( )
164
+ Url = BuildUrl ( null , host , basePath )
196
165
} ;
197
166
198
167
servers . Add ( server ) ;
@@ -209,6 +178,37 @@ private static void MakeServers(IList<OpenApiServer> servers, ParsingContext con
209
178
}
210
179
}
211
180
181
+ private static string BuildUrl ( string scheme , string host , string basePath )
182
+ {
183
+ if ( String . IsNullOrEmpty ( scheme ) && ! String . IsNullOrEmpty ( host ) )
184
+ {
185
+ host = "//" + host ; // The double slash prefix creates a relative url where the scheme is defined by the BaseUrl
186
+ }
187
+
188
+ int ? port = null ;
189
+
190
+ if ( ! String . IsNullOrEmpty ( host ) && host . Contains ( ":" ) )
191
+ {
192
+ var pieces = host . Split ( ':' ) ;
193
+ host = pieces . First ( ) ;
194
+ port = int . Parse ( pieces . Last ( ) ) ;
195
+ }
196
+
197
+ var uriBuilder = new UriBuilder ( )
198
+ {
199
+ Scheme = scheme ,
200
+ Host = host ,
201
+ Path = basePath
202
+ } ;
203
+
204
+ if ( port != null )
205
+ {
206
+ uriBuilder . Port = port . Value ;
207
+ }
208
+
209
+ return uriBuilder . ToString ( ) ;
210
+ }
211
+
212
212
public static OpenApiDocument LoadOpenApi ( RootNode rootNode )
213
213
{
214
214
var openApidoc = new OpenApiDocument ( ) ;
0 commit comments