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/Program.cs b/example/SignalCopy/Program.cs
index b831266..69c9996 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 SignalCopy
{
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);
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 @@
+
+
+
+
+