From 2901cbbdbee903bb7d2cfe5e8e4d1cce3882318f Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Tue, 21 Aug 2018 14:38:37 -0500 Subject: [PATCH] extract url validator to extension method --- .../Extensions/StringExtensions.cs | 12 ++++++++++++ src/FilterLists.Services/FilterLists.Services.csproj | 4 ---- src/FilterLists.Services/Snapshot/Snapshot.cs | 6 +----- 3 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 src/FilterLists.Services/Extensions/StringExtensions.cs diff --git a/src/FilterLists.Services/Extensions/StringExtensions.cs b/src/FilterLists.Services/Extensions/StringExtensions.cs new file mode 100644 index 000000000..bf25db4ca --- /dev/null +++ b/src/FilterLists.Services/Extensions/StringExtensions.cs @@ -0,0 +1,12 @@ +using System; +using System.Linq; + +namespace FilterLists.Services.Extensions +{ + public static class StringExtensions + { + public static bool IsValidHttpOrHttpsUrl(this string source) => + Uri.TryCreate(source, UriKind.Absolute, out var uriResult) && + new[] {Uri.UriSchemeHttps, Uri.UriSchemeHttp}.Contains(uriResult.Scheme); + } +} \ No newline at end of file diff --git a/src/FilterLists.Services/FilterLists.Services.csproj b/src/FilterLists.Services/FilterLists.Services.csproj index abacb7ccc..ab115a047 100644 --- a/src/FilterLists.Services/FilterLists.Services.csproj +++ b/src/FilterLists.Services/FilterLists.Services.csproj @@ -29,8 +29,4 @@ - - - - \ No newline at end of file diff --git a/src/FilterLists.Services/Snapshot/Snapshot.cs b/src/FilterLists.Services/Snapshot/Snapshot.cs index 45f935635..91be84ddb 100644 --- a/src/FilterLists.Services/Snapshot/Snapshot.cs +++ b/src/FilterLists.Services/Snapshot/Snapshot.cs @@ -45,7 +45,7 @@ public Snapshot(FilterListsDbContext dbContext, EmailService emailService, Filte public async Task TrySaveAsync() { await AddSnapEntity(); - if (!IsViewUrlValid()) + if (!list.ViewUrl.IsValidHttpOrHttpsUrl()) return; try { @@ -63,10 +63,6 @@ private async Task AddSnapEntity() await dbContext.SaveChangesAsync(); } - private bool IsViewUrlValid() => - Uri.TryCreate(list.ViewUrl, UriKind.Absolute, out var uriResult) && - (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps); - private async Task SaveAsync() { using (var transaction = dbContext.Database.BeginTransaction())