|
6 | 6 | using System.IO; |
7 | 7 | using System.Linq; |
8 | 8 | using System.Net; |
| 9 | +using System.Net.Http; |
9 | 10 | using System.Text.Json.Serialization; |
10 | 11 | using System.Threading; |
11 | 12 | using System.Threading.Tasks; |
@@ -149,10 +150,19 @@ await uri.ListNames(pipeline, cancellationToken) |
149 | 150 | .Delete(pipeline, cancellationToken), |
150 | 151 | cancellationToken); |
151 | 152 |
|
152 | | - public static IAsyncEnumerable<GroupName> ListNames(this GroupsUri uri, HttpPipeline pipeline, CancellationToken cancellationToken) => |
153 | | - pipeline.ListJsonObjects(uri.ToUri(), cancellationToken) |
| 153 | + public static IAsyncEnumerable<GroupName> ListNames(this GroupsUri uri, HttpPipeline pipeline, CancellationToken cancellationToken) |
| 154 | + { |
| 155 | + var exceptionHandler = (HttpRequestException exception) => |
| 156 | + exception.StatusCode == HttpStatusCode.BadRequest |
| 157 | + && exception.Message.Contains("MethodNotAllowedInPricingTier", StringComparison.OrdinalIgnoreCase) |
| 158 | + ? AsyncEnumerable.Empty<GroupName>() |
| 159 | + : throw exception; |
| 160 | + |
| 161 | + return pipeline.ListJsonObjects(uri.ToUri(), cancellationToken) |
154 | 162 | .Select(jsonObject => jsonObject.GetStringProperty("name")) |
155 | | - .Select(GroupName.From); |
| 163 | + .Select(GroupName.From) |
| 164 | + .Catch(exceptionHandler); |
| 165 | + } |
156 | 166 |
|
157 | 167 | public static IAsyncEnumerable<(GroupName Name, GroupDto Dto)> List(this GroupsUri groupsUri, HttpPipeline pipeline, CancellationToken cancellationToken) => |
158 | 168 | groupsUri.ListNames(pipeline, cancellationToken) |
|
0 commit comments