diff --git a/src/Moryx.AbstractionLayer/Activities/Activity.cs b/src/Moryx.AbstractionLayer/Activities/Activity.cs index aaaec6ce6..875d3bd54 100644 --- a/src/Moryx.AbstractionLayer/Activities/Activity.cs +++ b/src/Moryx.AbstractionLayer/Activities/Activity.cs @@ -36,7 +36,7 @@ public abstract class Activity : IActivity public IProcess Process { get; set; } /// - public IActivityTracing Tracing { get; set; } + public Tracing Tracing { get; set; } /// public ActivityResult Result { get; set; } @@ -103,7 +103,7 @@ public override string ToString() /// Type of the tracing object. public abstract class Activity : Activity, IActivity where TParam : IParameters - where TTracing : IActivityTracing, new() + where TTracing : Tracing, new() { /// /// Creates a new instance of diff --git a/src/Moryx.AbstractionLayer/Activities/IActivity.cs b/src/Moryx.AbstractionLayer/Activities/IActivity.cs index 5ee957d3f..e8c749132 100644 --- a/src/Moryx.AbstractionLayer/Activities/IActivity.cs +++ b/src/Moryx.AbstractionLayer/Activities/IActivity.cs @@ -29,7 +29,7 @@ public interface IActivity : IDisposable /// /// All activity trace information /// - IActivityTracing Tracing { get; } + Tracing Tracing { get; } /// /// Specifies the special process requirements of this type diff --git a/src/Moryx.AbstractionLayer/Activities/IActivityProgress.cs b/src/Moryx.AbstractionLayer/Activities/IActivityProgress.cs deleted file mode 100644 index 510c095ed..000000000 --- a/src/Moryx.AbstractionLayer/Activities/IActivityProgress.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) 2020, Phoenix Contact GmbH & Co. KG -// Licensed under the Apache License, Version 2.0 - -namespace Moryx.AbstractionLayer -{ - /// - /// Typed interface for the activity progress - /// - public interface IActivityProgress : IActivityTracing - { - /// - /// Relative progress in per-cent as value between 0 and 100 - /// - double Relative { get; } - } -} diff --git a/src/Moryx.AbstractionLayer/Activities/IActivityTracing.cs b/src/Moryx.AbstractionLayer/Activities/IActivityTracing.cs deleted file mode 100644 index f8e3fb54f..000000000 --- a/src/Moryx.AbstractionLayer/Activities/IActivityTracing.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2020, Phoenix Contact GmbH & Co. KG -// Licensed under the Apache License, Version 2.0 - -using System; - -namespace Moryx.AbstractionLayer -{ - /// - /// Interface for activity trace information - /// - public interface IActivityTracing - { - /// - /// The time when this activity was started. - /// - DateTime? Started { get; set; } - - /// - /// The time when this activity was finished. - /// - DateTime? Completed { get; set; } - - /// - /// Contains the error code that is associated with the error that caused e.g. an activity failure - /// - int ErrorCode { get; set; } - - /// - /// Optional tracing text for errors or information - /// - string Text { get; set; } - - /// - /// Transform the current tracing type to the value of - /// - /// Type the is transformed to - /// - /// Transformed object - /// - T Transform() where T : class, IActivityTracing, new(); - } -} diff --git a/src/Moryx.AbstractionLayer/Activities/Tracing.cs b/src/Moryx.AbstractionLayer/Activities/Tracing.cs index 3bca64657..ba9c3d8a6 100644 --- a/src/Moryx.AbstractionLayer/Activities/Tracing.cs +++ b/src/Moryx.AbstractionLayer/Activities/Tracing.cs @@ -11,18 +11,26 @@ namespace Moryx.AbstractionLayer /// Activity trace information /// [DataContract] - public class Tracing : IActivityTracing + public class Tracing { - /// + /// + /// The time when this activity was started. + /// public DateTime? Started { get; set; } - /// + /// + /// The time when this activity was finished. + /// public DateTime? Completed { get; set; } - /// + /// + /// Optional tracing text for errors or information + /// public string Text { get; set; } - /// + /// + /// Contains the error code that is associated with the error that caused e.g. an activity failure + /// public int ErrorCode { get; set; } /// @@ -33,7 +41,7 @@ public class Tracing : IActivityTracing /// // ReSharper disable once InconsistentNaming <-- too cool to rename :P public Sparta Transform() where Sparta - : class, IActivityTracing, new() + : Tracing, new() { if (this is Sparta) return this as Sparta; diff --git a/src/Moryx.AbstractionLayer/Activities/TracingExtension.cs b/src/Moryx.AbstractionLayer/Activities/TracingExtension.cs index 776dc8636..a7ea40c37 100644 --- a/src/Moryx.AbstractionLayer/Activities/TracingExtension.cs +++ b/src/Moryx.AbstractionLayer/Activities/TracingExtension.cs @@ -10,7 +10,7 @@ public static class TracingExtension /// /// Transform tracing type on activity /// - public static T TransformTracing(this IActivity activity) where T : class, IActivityTracing, new() + public static T TransformTracing(this IActivity activity) where T : Tracing, new() { var baseType = (Activity) activity; var tracing = baseType.Tracing.Transform(); @@ -23,7 +23,7 @@ public static class TracingExtension /// /// Tracing to add information to /// Setter delegate - public static T Trace(this T activityTracing, Action setter) where T : class, IActivityTracing, new() + public static T Trace(this T activityTracing, Action setter) where T : Tracing, new() { setter(activityTracing); return activityTracing; diff --git a/src/Tests/Moryx.AbstractionLayer.Tests/TracingActivityTest.cs b/src/Tests/Moryx.AbstractionLayer.Tests/TracingActivityTest.cs index dc4552088..f2f655cb7 100644 --- a/src/Tests/Moryx.AbstractionLayer.Tests/TracingActivityTest.cs +++ b/src/Tests/Moryx.AbstractionLayer.Tests/TracingActivityTest.cs @@ -133,14 +133,12 @@ private enum FooProgress Done = 100 } - private class FooTracing : Tracing, IActivityProgress + private class FooTracing : Tracing { public string FooName { get; set; } public int FooNumber { get; set; } - - public double Relative => base.Progress; - + public new FooProgress Progress { get { return (FooProgress) base.Progress; }