Skip to content

Commit 65ca90d

Browse files
Return an empty list if groups are not supported in pricing tier (#687)
Co-authored-by: James Woodbridge <james.woodbridge@tpr.gov.uk>
1 parent 167a8de commit 65ca90d

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

tools/code/common/Group.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.IO;
77
using System.Linq;
88
using System.Net;
9+
using System.Net.Http;
910
using System.Text.Json.Serialization;
1011
using System.Threading;
1112
using System.Threading.Tasks;
@@ -149,10 +150,19 @@ await uri.ListNames(pipeline, cancellationToken)
149150
.Delete(pipeline, cancellationToken),
150151
cancellationToken);
151152

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)
154162
.Select(jsonObject => jsonObject.GetStringProperty("name"))
155-
.Select(GroupName.From);
163+
.Select(GroupName.From)
164+
.Catch(exceptionHandler);
165+
}
156166

157167
public static IAsyncEnumerable<(GroupName Name, GroupDto Dto)> List(this GroupsUri groupsUri, HttpPipeline pipeline, CancellationToken cancellationToken) =>
158168
groupsUri.ListNames(pipeline, cancellationToken)

0 commit comments

Comments
 (0)