From 25c8d870b9b2af9ebae4a97111bc48c6ae251e5a Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Thu, 5 Mar 2020 15:56:25 +0800 Subject: [PATCH] proper filter for webapp and function app (#993) * proper filter for webapp and function app * minor refactor * fix after review --- .../AppService/FunctionAppsImpl.cs | 23 +++++++++++-------- .../AppService/WebAppsImpl.cs | 23 +++++++++++-------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/ResourceManagement/AppService/FunctionAppsImpl.cs b/src/ResourceManagement/AppService/FunctionAppsImpl.cs index 3346e7454..8cba743ac 100755 --- a/src/ResourceManagement/AppService/FunctionAppsImpl.cs +++ b/src/ResourceManagement/AppService/FunctionAppsImpl.cs @@ -31,14 +31,7 @@ internal partial class FunctionAppsImpl : ///GENMHASH:95834C6C7DA388E666B705A62A7D02BF:437A8ECA353AAE23242BFC82A5066CC3 public override IEnumerable ListByResourceGroup(string resourceGroupName) { - Func converter = inner => - { - return Extensions.Synchronize(() => PopulateModelAsync(inner)); - }; - - return Extensions.Synchronize(() => Inner.ListByResourceGroupAsync(resourceGroupName)) - .AsContinuousCollection(link => Extensions.Synchronize(() => Inner.ListByResourceGroupNextAsync(link))) - .Select(inner => converter(inner)); + return base.ListByResourceGroup(resourceGroupName).Where(this.FilterFunctionApp); } public override async Task> ListByResourceGroupAsync(string resourceGroupName, bool loadAllPages = true, CancellationToken cancellationToken = default(CancellationToken)) @@ -48,7 +41,12 @@ public override IEnumerable ListByResourceGroup(string resourceGro Inner.ListByResourceGroupNextAsync, async (inner, cancellation) => await PopulateModelAsync(inner, cancellation), loadAllPages, cancellationToken); - return PagedCollection.CreateFromEnumerable(collection.Where(w => "functionapp".Equals(w.Inner.Kind, StringComparison.OrdinalIgnoreCase))); + return PagedCollection.CreateFromEnumerable(collection.Where(this.FilterFunctionApp)); + } + + public override IEnumerable List() + { + return base.List().Where(this.FilterFunctionApp); } public override async Task> ListAsync(bool loadAllPages = true, CancellationToken cancellationToken = default(CancellationToken)) @@ -58,7 +56,12 @@ public override IEnumerable ListByResourceGroup(string resourceGro Inner.ListNextAsync, async (inner, cancellation) => await PopulateModelAsync(inner, cancellation), loadAllPages, cancellationToken); - return PagedCollection.CreateFromEnumerable(collection.Where(w => "functionapp".Equals(w.Inner.Kind, StringComparison.OrdinalIgnoreCase))); + return PagedCollection.CreateFromEnumerable(collection.Where(this.FilterFunctionApp)); + } + + private bool FilterFunctionApp(IFunctionApp w) + { + return w.Inner.Kind != null && w.Inner.Kind.ToLower().Split(new char[] { ',' }).Contains("functionapp"); } ///GENMHASH:0679DF8CA692D1AC80FC21655835E678:586E2B084878E8767487234B852D8D20 diff --git a/src/ResourceManagement/AppService/WebAppsImpl.cs b/src/ResourceManagement/AppService/WebAppsImpl.cs index 8f703dbec..d60acc40d 100755 --- a/src/ResourceManagement/AppService/WebAppsImpl.cs +++ b/src/ResourceManagement/AppService/WebAppsImpl.cs @@ -32,14 +32,7 @@ internal partial class WebAppsImpl : public override IEnumerable ListByResourceGroup(string resourceGroupName) { - Func converter = inner => - { - return Extensions.Synchronize(() => PopulateModelAsync(inner)); - }; - - return Extensions.Synchronize(() => Inner.ListByResourceGroupAsync(resourceGroupName)) - .AsContinuousCollection(link => Extensions.Synchronize(() => Inner.ListByResourceGroupNextAsync(link))) - .Select(inner => converter(inner)); + return base.ListByResourceGroup(resourceGroupName).Where(this.FilterWebApp); } public override async Task> ListByResourceGroupAsync(string resourceGroupName, bool loadAllPages = true, CancellationToken cancellationToken = default(CancellationToken)) @@ -49,7 +42,12 @@ public override IEnumerable ListByResourceGroup(string resourceGroupNam Inner.ListByResourceGroupNextAsync, async (inner, cancellation) => await PopulateModelAsync(inner, cancellation), loadAllPages, cancellationToken); - return PagedCollection.CreateFromEnumerable(collection.Where(w => w.Inner.Kind != null && w.Inner.Kind.Split(new char[] { ',' }).Contains("app"))); + return PagedCollection.CreateFromEnumerable(collection.Where(this.FilterWebApp)); + } + + public override IEnumerable List() + { + return base.List().Where(this.FilterWebApp); } public override async Task> ListAsync(bool loadAllPages = true, CancellationToken cancellationToken = default(CancellationToken)) @@ -59,7 +57,12 @@ public override IEnumerable ListByResourceGroup(string resourceGroupNam Inner.ListNextAsync, async (inner, cancellation) => await PopulateModelAsync(inner, cancellation), loadAllPages, cancellationToken); - return PagedCollection.CreateFromEnumerable(collection.Where(w => w.Inner.Kind != null && w.Inner.Kind.Split(new char[] { ',' }).Contains("app"))); + return PagedCollection.CreateFromEnumerable(collection.Where(this.FilterWebApp)); + } + + private bool FilterWebApp(IWebApp w) + { + return w.Inner.Kind != null && w.Inner.Kind.Split(new char[] { ',' }).Contains("app"); } ///GENMHASH:0679DF8CA692D1AC80FC21655835E678:586E2B084878E8767487234B852D8D20