diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/src/Providers/AzureCollectionResultDefinition.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/src/Providers/AzureCollectionResultDefinition.cs index 5c54f060b16b..8032ddcf0b5d 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/src/Providers/AzureCollectionResultDefinition.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/src/Providers/AzureCollectionResultDefinition.cs @@ -117,7 +117,12 @@ private MethodBodyStatement[] BuildAsPagesMethodBody() Declare("result", ResponseModelType, responseVariable.CastTo(ResponseModelType), out var resultVariable), }; - var nextPageExpression = _paging.NextLink != null ? nextPageVariable.NullConditional().Property("AbsoluteUri") : nextPageVariable; + ValueExpression nextPageExpression = _paging.NextLink != null + ? new TernaryConditionalExpression( + nextPageVariable.NullConditional().Property(nameof(Uri.IsAbsoluteUri)).Equal(True), + nextPageVariable.Property(nameof(Uri.AbsoluteUri)), + nextPageVariable.NullConditional().Property(nameof(Uri.OriginalString))) + : nextPageVariable; if (_isProtocol) { // Convert items to BinaryData diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/MaxPageSizePassedToNextRequest.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/MaxPageSizePassedToNextRequest.cs index 8f8642a0e69a..274fd709a06d 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/MaxPageSizePassedToNextRequest.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/MaxPageSizePassedToNextRequest.cs @@ -52,7 +52,7 @@ public CatClientGetCatsCollectionResult(global::Samples.CatClient client, int? m { items.Add(global::System.ClientModel.Primitives.ModelReaderWriter.Write(item, global::Samples.ModelSerializationExtensions.WireOptions, global::Samples.SamplesContext.Default)); } - yield return global::Azure.Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(items, (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.NextCat; if ((nextPage == null)) { diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/MaxPageSizeRequiredPassedToNextRequest.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/MaxPageSizeRequiredPassedToNextRequest.cs index fcece0dc504d..842ab8b7afff 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/MaxPageSizeRequiredPassedToNextRequest.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/MaxPageSizeRequiredPassedToNextRequest.cs @@ -52,7 +52,7 @@ public CatClientGetCatsCollectionResult(global::Samples.CatClient client, int ma { items.Add(global::System.ClientModel.Primitives.ModelReaderWriter.Write(item, global::Samples.ModelSerializationExtensions.WireOptions, global::Samples.SamplesContext.Default)); } - yield return global::Azure.Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(items, (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.NextCat; if ((nextPage == null)) { diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBody.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBody.cs index 1a4c25db957f..ffbd18872843 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBody.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBody.cs @@ -49,7 +49,7 @@ public CatClientGetCatsCollectionResult(global::Samples.CatClient client, global { items.Add(global::System.ClientModel.Primitives.ModelReaderWriter.Write(item, global::Samples.ModelSerializationExtensions.WireOptions, global::Samples.SamplesContext.Default)); } - yield return global::Azure.Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(items, (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.NextCat; if ((nextPage == null)) { diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyAsync.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyAsync.cs index b0a3ddbf7aaf..18adcc6c7d90 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyAsync.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyAsync.cs @@ -50,7 +50,7 @@ public CatClientGetCatsAsyncCollectionResult(global::Samples.CatClient client, g { items.Add(global::System.ClientModel.Primitives.ModelReaderWriter.Write(item, global::Samples.ModelSerializationExtensions.WireOptions, global::Samples.SamplesContext.Default)); } - yield return global::Azure.Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(items, (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.NextCat; if ((nextPage == null)) { diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfT.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfT.cs index 86e8c216a0a9..1f5577f6147f 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfT.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfT.cs @@ -43,7 +43,7 @@ public CatClientGetCatsCollectionResultOfT(global::Samples.CatClient client, glo yield break; } global::Samples.Models.Page result = ((global::Samples.Models.Page)response); - yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.NextCat; if ((nextPage == null)) { diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfTAsync.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfTAsync.cs index 474db7ac5fde..74c63b2b6172 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfTAsync.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfTAsync.cs @@ -44,7 +44,7 @@ public CatClientGetCatsAsyncCollectionResultOfT(global::Samples.CatClient client yield break; } global::Samples.Models.Page result = ((global::Samples.Models.Page)response); - yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.NextCat; if ((nextPage == null)) { diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfTWithStringProperty.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfTWithStringProperty.cs index f231ec4dd93b..499bf7d2724c 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfTWithStringProperty.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyOfTWithStringProperty.cs @@ -43,13 +43,13 @@ public CatClientGetCatsCollectionResultOfT(global::Samples.CatClient client, glo yield break; } global::Samples.Models.Page result = ((global::Samples.Models.Page)response); - yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); string nextPageString = result.NextCat; if (string.IsNullOrEmpty(nextPageString)) { yield break; } - nextPage = new global::System.Uri(nextPageString); + nextPage = new global::System.Uri(nextPageString, global::System.UriKind.RelativeOrAbsolute); } } diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyWithStringProperty.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyWithStringProperty.cs index d85232d9d9a8..7c882f70bcf4 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyWithStringProperty.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInBodyWithStringProperty.cs @@ -49,13 +49,13 @@ public CatClientGetCatsCollectionResult(global::Samples.CatClient client, global { items.Add(global::System.ClientModel.Primitives.ModelReaderWriter.Write(item, global::Samples.ModelSerializationExtensions.WireOptions, global::Samples.SamplesContext.Default)); } - yield return global::Azure.Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(items, (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); string nextPageString = result.NextCat; if (string.IsNullOrEmpty(nextPageString)) { yield break; } - nextPage = new global::System.Uri(nextPageString); + nextPage = new global::System.Uri(nextPageString, global::System.UriKind.RelativeOrAbsolute); } } diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeader.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeader.cs index 5ba3e9dd35ef..971445cd9719 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeader.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeader.cs @@ -49,10 +49,10 @@ public CatClientGetCatsCollectionResult(global::Samples.CatClient client, global { items.Add(global::System.ClientModel.Primitives.ModelReaderWriter.Write(item, global::Samples.ModelSerializationExtensions.WireOptions, global::Samples.SamplesContext.Default)); } - yield return global::Azure.Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(items, (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if ((response.Headers.TryGetValue("nextCat", out string value) && !string.IsNullOrEmpty(value))) { - nextPage = new global::System.Uri(value); + nextPage = new global::System.Uri(value, global::System.UriKind.RelativeOrAbsolute); } else { diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderAsync.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderAsync.cs index 9acdbb104f08..d70517c28fca 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderAsync.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderAsync.cs @@ -50,10 +50,10 @@ public CatClientGetCatsAsyncCollectionResult(global::Samples.CatClient client, g { items.Add(global::System.ClientModel.Primitives.ModelReaderWriter.Write(item, global::Samples.ModelSerializationExtensions.WireOptions, global::Samples.SamplesContext.Default)); } - yield return global::Azure.Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(items, (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if ((response.Headers.TryGetValue("nextCat", out string value) && !string.IsNullOrEmpty(value))) { - nextPage = new global::System.Uri(value); + nextPage = new global::System.Uri(value, global::System.UriKind.RelativeOrAbsolute); } else { diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderOfT.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderOfT.cs index f47ff1331eb7..ef4f11722b56 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderOfT.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderOfT.cs @@ -43,10 +43,10 @@ public CatClientGetCatsCollectionResultOfT(global::Samples.CatClient client, glo yield break; } global::Samples.Models.Page result = ((global::Samples.Models.Page)response); - yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if ((response.Headers.TryGetValue("nextCat", out string value) && !string.IsNullOrEmpty(value))) { - nextPage = new global::System.Uri(value); + nextPage = new global::System.Uri(value, global::System.UriKind.RelativeOrAbsolute); } else { diff --git a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderOfTAsync.cs b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderOfTAsync.cs index 03f4eea3ea15..61810ec27ed8 100644 --- a/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderOfTAsync.cs +++ b/eng/packages/http-client-csharp/generator/Azure.Generator/test/Providers/CollectionResultDefinitions/TestData/NextLinkTests/NextLinkInHeaderOfTAsync.cs @@ -44,10 +44,10 @@ public CatClientGetCatsAsyncCollectionResultOfT(global::Samples.CatClient client yield break; } global::Samples.Models.Page result = ((global::Samples.Models.Page)response); - yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), nextPage?.AbsoluteUri, response); + yield return global::Azure.Page.FromValues(((global::System.Collections.Generic.IReadOnlyList)result.Cats), (nextPage?.IsAbsoluteUri == true) ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if ((response.Headers.TryGetValue("nextCat", out string value) && !string.IsNullOrEmpty(value))) { - nextPage = new global::System.Uri(value); + nextPage = new global::System.Uri(value, global::System.UriKind.RelativeOrAbsolute); } else { diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkAsyncCollectionResult.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkAsyncCollectionResult.cs index 256e093b6ce3..005466e2348e 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkAsyncCollectionResult.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkAsyncCollectionResult.cs @@ -49,7 +49,7 @@ public override async IAsyncEnumerable> AsPages(string continua { items.Add(ModelReaderWriter.Write(item, ModelSerializationExtensions.WireOptions, BasicTypeSpecContext.Default)); } - yield return Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return Page.FromValues(items, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if (response.Headers.TryGetValue("next", out string value) && !string.IsNullOrEmpty(value)) { nextPage = new Uri(value, UriKind.RelativeOrAbsolute); diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkAsyncCollectionResultOfT.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkAsyncCollectionResultOfT.cs index d4072e79f227..07a845cc0426 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkAsyncCollectionResultOfT.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkAsyncCollectionResultOfT.cs @@ -43,7 +43,7 @@ public override async IAsyncEnumerable> AsPages(string continua yield break; } ListWithHeaderNextLinkResponse result = (ListWithHeaderNextLinkResponse)response; - yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.AbsoluteUri, response); + yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if (response.Headers.TryGetValue("next", out string value) && !string.IsNullOrEmpty(value)) { nextPage = new Uri(value, UriKind.RelativeOrAbsolute); diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkCollectionResult.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkCollectionResult.cs index 0af762723302..2ecbfdff4b8d 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkCollectionResult.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkCollectionResult.cs @@ -48,7 +48,7 @@ public override IEnumerable> AsPages(string continuationToken, { items.Add(ModelReaderWriter.Write(item, ModelSerializationExtensions.WireOptions, BasicTypeSpecContext.Default)); } - yield return Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return Page.FromValues(items, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if (response.Headers.TryGetValue("next", out string value) && !string.IsNullOrEmpty(value)) { nextPage = new Uri(value, UriKind.RelativeOrAbsolute); diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkCollectionResultOfT.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkCollectionResultOfT.cs index 250c8a12e127..e6417f9a9250 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkCollectionResultOfT.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkCollectionResultOfT.cs @@ -42,7 +42,7 @@ public override IEnumerable> AsPages(string continuationToken, yield break; } ListWithHeaderNextLinkResponse result = (ListWithHeaderNextLinkResponse)response; - yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.AbsoluteUri, response); + yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if (response.Headers.TryGetValue("next", out string value) && !string.IsNullOrEmpty(value)) { nextPage = new Uri(value, UriKind.RelativeOrAbsolute); diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageAsyncCollectionResult.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageAsyncCollectionResult.cs index 9118753e8d28..18b361fd4dbd 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageAsyncCollectionResult.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageAsyncCollectionResult.cs @@ -52,7 +52,7 @@ public override async IAsyncEnumerable> AsPages(string continua { items.Add(ModelReaderWriter.Write(item, ModelSerializationExtensions.WireOptions, BasicTypeSpecContext.Default)); } - yield return Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return Page.FromValues(items, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if (response.Headers.TryGetValue("next", out string value) && !string.IsNullOrEmpty(value)) { nextPage = new Uri(value, UriKind.RelativeOrAbsolute); diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageAsyncCollectionResultOfT.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageAsyncCollectionResultOfT.cs index 29f9ed1fb0fa..99026d638e58 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageAsyncCollectionResultOfT.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageAsyncCollectionResultOfT.cs @@ -46,7 +46,7 @@ public override async IAsyncEnumerable> AsPages(string continua yield break; } ListWithHeaderNextLinkWithMaxPageResponse result = (ListWithHeaderNextLinkWithMaxPageResponse)response; - yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.AbsoluteUri, response); + yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if (response.Headers.TryGetValue("next", out string value) && !string.IsNullOrEmpty(value)) { nextPage = new Uri(value, UriKind.RelativeOrAbsolute); diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageCollectionResult.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageCollectionResult.cs index 1221205d6ef5..f12acb7bcd64 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageCollectionResult.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageCollectionResult.cs @@ -51,7 +51,7 @@ public override IEnumerable> AsPages(string continuationToken, { items.Add(ModelReaderWriter.Write(item, ModelSerializationExtensions.WireOptions, BasicTypeSpecContext.Default)); } - yield return Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return Page.FromValues(items, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if (response.Headers.TryGetValue("next", out string value) && !string.IsNullOrEmpty(value)) { nextPage = new Uri(value, UriKind.RelativeOrAbsolute); diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageCollectionResultOfT.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageCollectionResultOfT.cs index 5de4936a52dc..e1f19c769c3a 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageCollectionResultOfT.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithHeaderNextLinkWithMaxPageCollectionResultOfT.cs @@ -45,7 +45,7 @@ public override IEnumerable> AsPages(string continuationToken, yield break; } ListWithHeaderNextLinkWithMaxPageResponse result = (ListWithHeaderNextLinkWithMaxPageResponse)response; - yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.AbsoluteUri, response); + yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); if (response.Headers.TryGetValue("next", out string value) && !string.IsNullOrEmpty(value)) { nextPage = new Uri(value, UriKind.RelativeOrAbsolute); diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkAsyncCollectionResult.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkAsyncCollectionResult.cs index cc2e17adfaa2..ec5158dd1551 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkAsyncCollectionResult.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkAsyncCollectionResult.cs @@ -49,7 +49,7 @@ public override async IAsyncEnumerable> AsPages(string continua { items.Add(ModelReaderWriter.Write(item, ModelSerializationExtensions.WireOptions, BasicTypeSpecContext.Default)); } - yield return Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return Page.FromValues(items, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.Next; if (nextPage == null) { diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkAsyncCollectionResultOfT.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkAsyncCollectionResultOfT.cs index 0d2a8afe07a9..93d3e6aed3d0 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkAsyncCollectionResultOfT.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkAsyncCollectionResultOfT.cs @@ -43,7 +43,7 @@ public override async IAsyncEnumerable> AsPages(string continua yield break; } ListWithNextLinkResponse result = (ListWithNextLinkResponse)response; - yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.AbsoluteUri, response); + yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.Next; if (nextPage == null) { diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkCollectionResult.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkCollectionResult.cs index c677f589a60d..49a5a2c8e4b7 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkCollectionResult.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkCollectionResult.cs @@ -48,7 +48,7 @@ public override IEnumerable> AsPages(string continuationToken, { items.Add(ModelReaderWriter.Write(item, ModelSerializationExtensions.WireOptions, BasicTypeSpecContext.Default)); } - yield return Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return Page.FromValues(items, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.Next; if (nextPage == null) { diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkCollectionResultOfT.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkCollectionResultOfT.cs index b5a704943f9e..0638f2ecd058 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkCollectionResultOfT.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithNextLinkCollectionResultOfT.cs @@ -42,7 +42,7 @@ public override IEnumerable> AsPages(string continuationToken, yield break; } ListWithNextLinkResponse result = (ListWithNextLinkResponse)response; - yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.AbsoluteUri, response); + yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); nextPage = result.Next; if (nextPage == null) { diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkAsyncCollectionResult.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkAsyncCollectionResult.cs index 76ca501abe6f..a65d8e3f745d 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkAsyncCollectionResult.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkAsyncCollectionResult.cs @@ -49,7 +49,7 @@ public override async IAsyncEnumerable> AsPages(string continua { items.Add(ModelReaderWriter.Write(item, ModelSerializationExtensions.WireOptions, BasicTypeSpecContext.Default)); } - yield return Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return Page.FromValues(items, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); string nextPageString = result.Next; if (string.IsNullOrEmpty(nextPageString)) { diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkAsyncCollectionResultOfT.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkAsyncCollectionResultOfT.cs index 8b1d745047a3..e3662bfae99f 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkAsyncCollectionResultOfT.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkAsyncCollectionResultOfT.cs @@ -43,7 +43,7 @@ public override async IAsyncEnumerable> AsPages(string continua yield break; } ListWithStringNextLinkResponse result = (ListWithStringNextLinkResponse)response; - yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.AbsoluteUri, response); + yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); string nextPageString = result.Next; if (string.IsNullOrEmpty(nextPageString)) { diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkCollectionResult.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkCollectionResult.cs index 413baca391d3..c65f6848e2de 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkCollectionResult.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkCollectionResult.cs @@ -48,7 +48,7 @@ public override IEnumerable> AsPages(string continuationToken, { items.Add(ModelReaderWriter.Write(item, ModelSerializationExtensions.WireOptions, BasicTypeSpecContext.Default)); } - yield return Page.FromValues(items, nextPage?.AbsoluteUri, response); + yield return Page.FromValues(items, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); string nextPageString = result.Next; if (string.IsNullOrEmpty(nextPageString)) { diff --git a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkCollectionResultOfT.cs b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkCollectionResultOfT.cs index 72bca1f2640d..8f729bf36826 100644 --- a/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkCollectionResultOfT.cs +++ b/eng/packages/http-client-csharp/generator/TestProjects/Local/Basic-TypeSpec/src/Generated/CollectionResults/BasicTypeSpecClientGetWithStringNextLinkCollectionResultOfT.cs @@ -42,7 +42,7 @@ public override IEnumerable> AsPages(string continuationToken, yield break; } ListWithStringNextLinkResponse result = (ListWithStringNextLinkResponse)response; - yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.AbsoluteUri, response); + yield return Page.FromValues((IReadOnlyList)result.Things, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); string nextPageString = result.Next; if (string.IsNullOrEmpty(nextPageString)) {