From a9769d95413a28a4ae3aa2a102b45af1c0f85ecb Mon Sep 17 00:00:00 2001 From: Evgeniy Kosjakov <42_@mail.ru> Date: Thu, 19 Oct 2017 17:53:57 +0300 Subject: [PATCH 1/3] more actions added --- example/SignalCopy/Program.cs | 90 +++++++++++++++++++++++++++++++---- 1 file changed, 82 insertions(+), 8 deletions(-) diff --git a/example/SignalCopy/Program.cs b/example/SignalCopy/Program.cs index b831266..d76f7f2 100644 --- a/example/SignalCopy/Program.cs +++ b/example/SignalCopy/Program.cs @@ -1,24 +1,28 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using DocoptNet; using Seq.Api; using Seq.Api.Model.Signals; -using System.Collections.Generic; -namespace SeqQuery +namespace SeqConsole { class Program { - const string Usage = @"signal-copy: copy Seq signals from one server to another. + const string Usage = @"signal-copy: copy/print/delete Seq signals from one server to another. Usage: - signal-copy.exe [--srckey=] [--dstkey=] + signal-copy.exe [--action=] [--srckey=] [--dstkey=] + signal-copy.exe [--action=] [--srckey=] [--signal=] + signal-copy.exe [--action=] [--srckey=] signal-copy.exe (-h | --help) Options: -h --help Show this screen. + --action= Action, can be 'copy', 'print' or 'delete'. --srckey= Source server API key. --dstkey= Destination server API key. + --signal= Signal title. "; @@ -30,12 +34,28 @@ static void Main(string[] args) { var arguments = new Docopt().Apply(Usage, args, version: "Seq Signal Copy 0.1", exit: true); - var src = arguments[""].ToString(); - var dst = arguments[""].ToString(); + var action = Normalize(arguments["--action"]); + var src = arguments[""].Value.ToString(); + var dst = arguments[""]?.Value?.ToString(); var srcKey = Normalize(arguments["--srckey"]); var dstKey = Normalize(arguments["--dstkey"]); + var signal = Normalize(arguments["--signal"]); - await Run(src, srcKey, dst, dstKey); + switch (action) + { + case "copy": + await RunCopy(src, srcKey, dst, dstKey); + break; + case "delete": + await RunDelete(src, srcKey, signal); + break; + case "print": + await RunPrint(src, srcKey); + break; + default: + Console.WriteLine($"Unknown action: '{action}'"); + break; + } } catch (Exception ex) { @@ -55,7 +75,61 @@ static string Normalize(ValueObject v) return string.IsNullOrWhiteSpace(s) ? null : s; } - static async Task Run(string src, string srcKey, string dst, string dstKey) + static async Task RunPrint(string src, string srcKey) + { + var srcConnection = new SeqConnection(src, srcKey); + var count = 0; + var countAll = 0; + + foreach (var signal in await srcConnection.Signals.ListAsync()) + { + Console.WriteLine(); + Console.WriteLine($"---- Signal Title: '{signal.Title}', Id: '{signal.Id}' ----"); + Console.WriteLine($"Restricted: '{signal.IsRestricted}', Watched: '{signal.IsWatched}:'"); + Console.WriteLine($"Description: '{signal.Description}'"); + foreach (var property in signal.TaggedProperties) + { + Console.Write($"Property {count}: {property.PropertyName}; "); + count++; + } + Console.WriteLine(); + count = 0; + foreach (var filter in signal.Filters) + { + Console.Write($"Filter {count}: {filter.Filter}, {filter.Description}; "); + count++; + } + Console.WriteLine(); + countAll++; + } + Console.WriteLine($"Done, {countAll} signals printed."); + } + + static async Task RunDelete(string src, string srcKey, string signalName) + { + var srcConnection = new SeqConnection(src, srcKey); + var count = 0; + + foreach (var signal in await srcConnection.Signals.ListAsync()) + { + if (signalName != null && signal.Title == signalName) + { + Console.WriteLine($"Deleting signal '{signal.Title}' with id='{signal.Id}'"); + await srcConnection.Signals.RemoveAsync(signal); + ++count; + } + else if (signalName == null) + { + Console.WriteLine($"Deleting signal '{signal.Title}' with id='{signal.Id}'"); + await srcConnection.Signals.RemoveAsync(signal); + ++count; + } + } + + Console.WriteLine($"Done, {count} signals deleted."); + } + + static async Task RunCopy(string src, string srcKey, string dst, string dstKey) { var srcConnection = new SeqConnection(src, srcKey); var dstConnection = new SeqConnection(dst, dstKey); From 076d8557931a8e0e1a7627b657c80ee1ea287af8 Mon Sep 17 00:00:00 2001 From: Evgeniy Kosjakov <42_@mail.ru> Date: Thu, 19 Oct 2017 20:04:43 +0300 Subject: [PATCH 2/3] namespace fixed --- example/SignalCopy/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/SignalCopy/Program.cs b/example/SignalCopy/Program.cs index d76f7f2..69c9996 100644 --- a/example/SignalCopy/Program.cs +++ b/example/SignalCopy/Program.cs @@ -5,7 +5,7 @@ using Seq.Api; using Seq.Api.Model.Signals; -namespace SeqConsole +namespace SignalCopy { class Program { From 4b71c723f36d81ca8cd5e645869521f7c626dabd Mon Sep 17 00:00:00 2001 From: Evgeniy Kosjakov <42_@mail.ru> Date: Thu, 19 Oct 2017 21:41:35 +0300 Subject: [PATCH 3/3] several updates to nuget packages and target frameworks --- example/SeqQuery/SeqQuery.csproj | 9 ++++++--- example/SeqTail/SeqTail.csproj | 19 +++++++++++-------- example/SignalCopy/SignalCopy.csproj | 9 ++++++--- src/Seq.Api/Seq.Api.csproj | 19 ++++++++++++------- test/Seq.Api.Tests/Seq.Api.Tests.csproj | 9 ++++++--- 5 files changed, 41 insertions(+), 24 deletions(-) diff --git a/example/SeqQuery/SeqQuery.csproj b/example/SeqQuery/SeqQuery.csproj index 7a9f0bd..401b913 100644 --- a/example/SeqQuery/SeqQuery.csproj +++ b/example/SeqQuery/SeqQuery.csproj @@ -1,12 +1,10 @@  - net46;netcoreapp1.0 + netstandard1.5;net46;net45 seq-query Exe SeqQuery - $(PackageTargetFallback);dnxcore50;portable-net45+win8 - 1.0.4 @@ -26,4 +24,9 @@ + + + + + diff --git a/example/SeqTail/SeqTail.csproj b/example/SeqTail/SeqTail.csproj index 2405320..3df7ddc 100644 --- a/example/SeqTail/SeqTail.csproj +++ b/example/SeqTail/SeqTail.csproj @@ -1,13 +1,11 @@  - net46;netcoreapp1.0 + netstandard1.5;net46;net45 seq-tail Exe SeqTail win - $(PackageTargetFallback);dnxcore50;portable-net45+win8 - 1.0.4 @@ -19,12 +17,12 @@ - + + - - - - + + + @@ -32,4 +30,9 @@ + + + + + diff --git a/example/SignalCopy/SignalCopy.csproj b/example/SignalCopy/SignalCopy.csproj index ca49fbe..ddda936 100644 --- a/example/SignalCopy/SignalCopy.csproj +++ b/example/SignalCopy/SignalCopy.csproj @@ -1,12 +1,10 @@  - net46;netcoreapp1.0 + netstandard1.5;net46;net45 signal-copy Exe SignalCopy - $(PackageTargetFallback);dnxcore50;portable-net45+win8 - 1.0.4 @@ -26,4 +24,9 @@ + + + + + diff --git a/src/Seq.Api/Seq.Api.csproj b/src/Seq.Api/Seq.Api.csproj index 110a003..640fb5f 100644 --- a/src/Seq.Api/Seq.Api.csproj +++ b/src/Seq.Api/Seq.Api.csproj @@ -4,7 +4,7 @@ Client library for the Seq HTTP API. 4.0.1 Datalust;Contributors - netstandard1.3;net45 + netstandard1.3;net46;net45 $(NoWarn);CS1591 true true @@ -14,7 +14,6 @@ https://getseq.net/images/seq-nuget.pngg https://github.com/datalust/seq-api http://www.apache.org/licenses/LICENSE-2.0 - 1.6.1 false false false @@ -27,14 +26,20 @@ - - + + - - - + + + + + + + + + diff --git a/test/Seq.Api.Tests/Seq.Api.Tests.csproj b/test/Seq.Api.Tests/Seq.Api.Tests.csproj index a59242f..f0ace8c 100644 --- a/test/Seq.Api.Tests/Seq.Api.Tests.csproj +++ b/test/Seq.Api.Tests/Seq.Api.Tests.csproj @@ -1,12 +1,10 @@  - netcoreapp1.0;net46 + netstandard1.5;net46;net45 Seq.Api.Tests Seq.Api.Tests true - $(PackageTargetFallback);dnxcore50;portable-net45+win8 - 1.0.4 false false false @@ -27,4 +25,9 @@ + + + + +