internal static RouteFilterListResult DeserializeRouteFilterListResult(JsonElement element) { Optional <IReadOnlyList <RouteFilterData> > value = default; Optional <string> nextLink = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <RouteFilterData> array = new List <RouteFilterData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(RouteFilterData.DeserializeRouteFilterData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new RouteFilterListResult(Optional.ToList(value), nextLink.Value)); }
private async Task <RouteFilter> CreateDefaultRouteFilter(RouteFilterCollection filterCollection, string filterName, bool containsRule = false) { var filter = new RouteFilterData() { Location = TestEnvironment.Location, Tags = { { "key", "value" } } }; if (containsRule) { var rule = new RouteFilterRuleData() { Name = Recording.GenerateAssetName("test"), Access = Access.Allow, Communities = { Filter_Commmunity }, Location = TestEnvironment.Location }; filter.Rules.Add(rule); } // Put route filter Operation <RouteFilter> filterOperation = await filterCollection.CreateOrUpdateAsync(filterName, filter); return(await filterOperation.WaitForCompletionAsync());; }
RouteFilter IOperationSource <RouteFilter> .CreateResult(Response response, CancellationToken cancellationToken) { using var document = JsonDocument.Parse(response.ContentStream); var data = RouteFilterData.DeserializeRouteFilterData(document.RootElement); return(new RouteFilter(_armClient, data)); }