diff --git a/src/Artemis.Core/Artemis.Core.csproj.DotSettings b/src/Artemis.Core/Artemis.Core.csproj.DotSettings
new file mode 100644
index 000000000..babfa2469
--- /dev/null
+++ b/src/Artemis.Core/Artemis.Core.csproj.DotSettings
@@ -0,0 +1,29 @@
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
\ No newline at end of file
diff --git a/src/Artemis.Core/Constants.cs b/src/Artemis.Core/Constants.cs
index 5762b16eb..0fa81409d 100644
--- a/src/Artemis.Core/Constants.cs
+++ b/src/Artemis.Core/Constants.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.IO;
-using Artemis.Core.Plugins;
namespace Artemis.Core
{
@@ -15,6 +14,11 @@ namespace Artemis.Core
///
public static readonly string ApplicationFolder = Path.GetDirectoryName(typeof(Constants).Assembly.Location);
+ ///
+ /// The full path to the Artemis executable
+ ///
+ public static readonly string ExecutablePath = ApplicationUtilities.GetCurrentLocation();
+
///
/// The full path to the Artemis data folder
///
diff --git a/src/Artemis.Core/Events/DeviceConfigurationEventArgs.cs b/src/Artemis.Core/Events/DeviceConfigurationEventArgs.cs
index 94eae8f38..ba4ce72de 100644
--- a/src/Artemis.Core/Events/DeviceConfigurationEventArgs.cs
+++ b/src/Artemis.Core/Events/DeviceConfigurationEventArgs.cs
@@ -1,7 +1,6 @@
using System;
-using Artemis.Core.Models.Surface;
-namespace Artemis.Core.Events
+namespace Artemis.Core
{
public class SurfaceConfigurationEventArgs : EventArgs
{
diff --git a/src/Artemis.Core/Events/DeviceEventArgs.cs b/src/Artemis.Core/Events/DeviceEventArgs.cs
index 1401cee36..1d4f3eabc 100644
--- a/src/Artemis.Core/Events/DeviceEventArgs.cs
+++ b/src/Artemis.Core/Events/DeviceEventArgs.cs
@@ -1,7 +1,7 @@
using System;
using RGB.NET.Core;
-namespace Artemis.Core.Events
+namespace Artemis.Core
{
public class DeviceEventArgs : EventArgs
{
diff --git a/src/Artemis.Core/Events/FrameRenderedEventArgs.cs b/src/Artemis.Core/Events/FrameRenderedEventArgs.cs
index 5267bd344..22f91ded7 100644
--- a/src/Artemis.Core/Events/FrameRenderedEventArgs.cs
+++ b/src/Artemis.Core/Events/FrameRenderedEventArgs.cs
@@ -1,8 +1,7 @@
using System;
-using Artemis.Core.RGB.NET;
using RGB.NET.Core;
-namespace Artemis.Core.Events
+namespace Artemis.Core
{
public class FrameRenderedEventArgs : EventArgs
{
diff --git a/src/Artemis.Core/Events/FrameRenderingEventArgs.cs b/src/Artemis.Core/Events/FrameRenderingEventArgs.cs
index 1066a2950..89e0dbd45 100644
--- a/src/Artemis.Core/Events/FrameRenderingEventArgs.cs
+++ b/src/Artemis.Core/Events/FrameRenderingEventArgs.cs
@@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
-using Artemis.Core.Plugins.Modules;
+using Artemis.Core.Modules;
using RGB.NET.Core;
using SkiaSharp;
-namespace Artemis.Core.Events
+namespace Artemis.Core
{
public class FrameRenderingEventArgs : EventArgs
{
diff --git a/src/Artemis.Core/Events/LayerPropertyEventArgs.cs b/src/Artemis.Core/Events/LayerPropertyEventArgs.cs
index 9f16dc690..c469947d0 100644
--- a/src/Artemis.Core/Events/LayerPropertyEventArgs.cs
+++ b/src/Artemis.Core/Events/LayerPropertyEventArgs.cs
@@ -1,7 +1,6 @@
using System;
-using Artemis.Core.Models.Profile.LayerProperties;
-namespace Artemis.Core.Events
+namespace Artemis.Core
{
public class LayerPropertyEventArgs : EventArgs
{
diff --git a/src/Artemis.Core/Events/PluginEventArgs.cs b/src/Artemis.Core/Events/PluginEventArgs.cs
index 8c71dcd2b..9f69f4974 100644
--- a/src/Artemis.Core/Events/PluginEventArgs.cs
+++ b/src/Artemis.Core/Events/PluginEventArgs.cs
@@ -1,7 +1,6 @@
using System;
-using Artemis.Core.Plugins;
-namespace Artemis.Core.Events
+namespace Artemis.Core
{
public class PluginEventArgs : EventArgs
{
diff --git a/src/Artemis.Core/Exceptions/ArtemisCoreException.cs b/src/Artemis.Core/Exceptions/ArtemisCoreException.cs
index 163368e3d..a6aa34341 100644
--- a/src/Artemis.Core/Exceptions/ArtemisCoreException.cs
+++ b/src/Artemis.Core/Exceptions/ArtemisCoreException.cs
@@ -1,18 +1,17 @@
using System;
-namespace Artemis.Core.Exceptions
+namespace Artemis.Core
{
+ ///
+ /// Represents errors that occur withing the Artemis Core
+ ///
public class ArtemisCoreException : Exception
{
- public ArtemisCoreException()
+ internal ArtemisCoreException(string message) : base(message)
{
}
- public ArtemisCoreException(string message) : base(message)
- {
- }
-
- public ArtemisCoreException(string message, Exception inner) : base(message, inner)
+ internal ArtemisCoreException(string message, Exception inner) : base(message, inner)
{
}
}
diff --git a/src/Artemis.Core/Plugins/Exceptions/ArtemisPluginException.cs b/src/Artemis.Core/Exceptions/ArtemisPluginException.cs
similarity index 94%
rename from src/Artemis.Core/Plugins/Exceptions/ArtemisPluginException.cs
rename to src/Artemis.Core/Exceptions/ArtemisPluginException.cs
index a69362c39..c0a889ce1 100644
--- a/src/Artemis.Core/Plugins/Exceptions/ArtemisPluginException.cs
+++ b/src/Artemis.Core/Exceptions/ArtemisPluginException.cs
@@ -1,6 +1,6 @@
using System;
-namespace Artemis.Core.Plugins.Exceptions
+namespace Artemis.Core
{
public class ArtemisPluginException : Exception
{
diff --git a/src/Artemis.Core/Plugins/Exceptions/ArtemisPluginLockException.cs b/src/Artemis.Core/Exceptions/ArtemisPluginLockException.cs
similarity index 92%
rename from src/Artemis.Core/Plugins/Exceptions/ArtemisPluginLockException.cs
rename to src/Artemis.Core/Exceptions/ArtemisPluginLockException.cs
index 3fa5c4674..c6cb4c8f0 100644
--- a/src/Artemis.Core/Plugins/Exceptions/ArtemisPluginLockException.cs
+++ b/src/Artemis.Core/Exceptions/ArtemisPluginLockException.cs
@@ -1,6 +1,6 @@
using System;
-namespace Artemis.Core.Plugins.Exceptions
+namespace Artemis.Core
{
public class ArtemisPluginLockException : Exception
{
diff --git a/src/Artemis.Core/Extensions/DirectoryInfoExtensions.cs b/src/Artemis.Core/Extensions/DirectoryInfoExtensions.cs
index 641e938e8..164f8ef2e 100644
--- a/src/Artemis.Core/Extensions/DirectoryInfoExtensions.cs
+++ b/src/Artemis.Core/Extensions/DirectoryInfoExtensions.cs
@@ -1,6 +1,6 @@
using System.IO;
-namespace Artemis.Core.Extensions
+namespace Artemis.Core
{
public static class DirectoryInfoExtensions
{
diff --git a/src/Artemis.Core/Extensions/DoubleExtensions.cs b/src/Artemis.Core/Extensions/DoubleExtensions.cs
index 62ec1117e..42cfcfbc1 100644
--- a/src/Artemis.Core/Extensions/DoubleExtensions.cs
+++ b/src/Artemis.Core/Extensions/DoubleExtensions.cs
@@ -1,7 +1,7 @@
using System;
using System.Runtime.CompilerServices;
-namespace Artemis.Core.Extensions
+namespace Artemis.Core
{
public static class DoubleExtensions
{
diff --git a/src/Artemis.Core/Extensions/FloatExtensions.cs b/src/Artemis.Core/Extensions/FloatExtensions.cs
index 45441588e..a6c5ba7b8 100644
--- a/src/Artemis.Core/Extensions/FloatExtensions.cs
+++ b/src/Artemis.Core/Extensions/FloatExtensions.cs
@@ -1,6 +1,6 @@
using System;
-namespace Artemis.Core.Extensions
+namespace Artemis.Core
{
public static class FloatExtensions
{
diff --git a/src/Artemis.Core/Extensions/IEnumerableExtensions.cs b/src/Artemis.Core/Extensions/IEnumerableExtensions.cs
index c4c0363a4..8a33844e5 100644
--- a/src/Artemis.Core/Extensions/IEnumerableExtensions.cs
+++ b/src/Artemis.Core/Extensions/IEnumerableExtensions.cs
@@ -22,7 +22,7 @@
using System;
using System.Collections.Generic;
-namespace Artemis.Core.Extensions
+namespace Artemis.Core
{
public static class IEnumerableExtensions
{
diff --git a/src/Artemis.Core/Extensions/ProcessExtensions.cs b/src/Artemis.Core/Extensions/ProcessExtensions.cs
index 3353ed60d..ce59cde59 100644
--- a/src/Artemis.Core/Extensions/ProcessExtensions.cs
+++ b/src/Artemis.Core/Extensions/ProcessExtensions.cs
@@ -1,10 +1,9 @@
using System;
-using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
-namespace Artemis.Core.Extensions
+namespace Artemis.Core
{
public static class ProcessExtensions
{
@@ -30,4 +29,4 @@ namespace Artemis.Core.Extensions
QueryLimitedInformation = 0x00001000
}
}
-}
+}
\ No newline at end of file
diff --git a/src/Artemis.Core/Extensions/RgbDeviceExtensions.cs b/src/Artemis.Core/Extensions/RgbDeviceExtensions.cs
index 16ffad995..baa0c1f11 100644
--- a/src/Artemis.Core/Extensions/RgbDeviceExtensions.cs
+++ b/src/Artemis.Core/Extensions/RgbDeviceExtensions.cs
@@ -1,7 +1,7 @@
using System.Text;
using RGB.NET.Core;
-namespace Artemis.Core.Extensions
+namespace Artemis.Core
{
public static class RgbDeviceExtensions
{
diff --git a/src/Artemis.Core/Extensions/RgbRectangleExtensions.cs b/src/Artemis.Core/Extensions/RgbRectangleExtensions.cs
index 3910dc9a0..6f58a0e46 100644
--- a/src/Artemis.Core/Extensions/RgbRectangleExtensions.cs
+++ b/src/Artemis.Core/Extensions/RgbRectangleExtensions.cs
@@ -1,7 +1,7 @@
using RGB.NET.Core;
using SkiaSharp;
-namespace Artemis.Core.Extensions
+namespace Artemis.Core
{
public static class RgbRectangleExtensions
{
diff --git a/src/Artemis.Core/Extensions/SKColorExtensions.cs b/src/Artemis.Core/Extensions/SKColorExtensions.cs
index d638b4967..5e62f6a24 100644
--- a/src/Artemis.Core/Extensions/SKColorExtensions.cs
+++ b/src/Artemis.Core/Extensions/SKColorExtensions.cs
@@ -2,7 +2,7 @@
using RGB.NET.Core;
using SkiaSharp;
-namespace Artemis.Core.Extensions
+namespace Artemis.Core
{
// ReSharper disable once InconsistentNaming - I didn't come up with SKColor
public static class SKColorExtensions
@@ -29,7 +29,7 @@ namespace Artemis.Core.Extensions
private static byte ClampToByte(float value)
{
- return (byte)Math.Clamp(value, 0, 255);
+ return (byte) Math.Clamp(value, 0, 255);
}
}
}
\ No newline at end of file
diff --git a/src/Artemis.Core/Extensions/TypeExtensions.cs b/src/Artemis.Core/Extensions/TypeExtensions.cs
index 02aab161f..027610874 100644
--- a/src/Artemis.Core/Extensions/TypeExtensions.cs
+++ b/src/Artemis.Core/Extensions/TypeExtensions.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Reflection;
-namespace Artemis.Core.Extensions
+namespace Artemis.Core
{
public static class TypeExtensions
{
@@ -65,7 +65,7 @@ namespace Artemis.Core.Extensions
// From https://stackoverflow.com/a/2224421/5015269 but inverted and renamed to match similar framework methods
///
- /// Determines whether an instance of a specified type can be casted to a variable of the current type
+ /// Determines whether an instance of a specified type can be casted to a variable of the current type
///
///
///
diff --git a/src/Artemis.Core/JsonConverters/SKColorConverter.cs b/src/Artemis.Core/JsonConverters/SKColorConverter.cs
index e2b17cd40..b12e1d7c4 100644
--- a/src/Artemis.Core/JsonConverters/SKColorConverter.cs
+++ b/src/Artemis.Core/JsonConverters/SKColorConverter.cs
@@ -4,7 +4,7 @@ using SkiaSharp;
namespace Artemis.Core.JsonConverters
{
- public class SKColorConverter : JsonConverter
+ internal class SKColorConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, SKColor value, JsonSerializer serializer)
{
diff --git a/src/Artemis.Core/Models/Profile/Colors/ColorGradient.cs b/src/Artemis.Core/Models/Profile/Colors/ColorGradient.cs
index 48c66771e..d8a72622a 100644
--- a/src/Artemis.Core/Models/Profile/Colors/ColorGradient.cs
+++ b/src/Artemis.Core/Models/Profile/Colors/ColorGradient.cs
@@ -3,11 +3,11 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
-using Artemis.Core.Annotations;
+using Artemis.Core.Properties;
using SkiaSharp;
using Stylet;
-namespace Artemis.Core.Models.Profile.Colors
+namespace Artemis.Core
{
///
/// A gradient containing a list of s
@@ -136,7 +136,7 @@ namespace Artemis.Core.Models.Profile.Colors
///
public event PropertyChangedEventHandler PropertyChanged;
-
+
[NotifyPropertyChangedInvocator]
internal virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
diff --git a/src/Artemis.Core/Models/Profile/Colors/ColorGradientStop.cs b/src/Artemis.Core/Models/Profile/Colors/ColorGradientStop.cs
index 71bc35f52..f3009706e 100644
--- a/src/Artemis.Core/Models/Profile/Colors/ColorGradientStop.cs
+++ b/src/Artemis.Core/Models/Profile/Colors/ColorGradientStop.cs
@@ -1,9 +1,9 @@
using System.ComponentModel;
using System.Runtime.CompilerServices;
-using Artemis.Core.Annotations;
+using Artemis.Core.Properties;
using SkiaSharp;
-namespace Artemis.Core.Models.Profile.Colors
+namespace Artemis.Core
{
///
/// A color with a position, usually contained in a
diff --git a/src/Artemis.Core/Models/Profile/Conditions/Abstract/DisplayConditionPart.cs b/src/Artemis.Core/Models/Profile/Conditions/Abstract/DisplayConditionPart.cs
index 898e824cc..2ae490f56 100644
--- a/src/Artemis.Core/Models/Profile/Conditions/Abstract/DisplayConditionPart.cs
+++ b/src/Artemis.Core/Models/Profile/Conditions/Abstract/DisplayConditionPart.cs
@@ -1,8 +1,8 @@
using System.Collections.Generic;
-using Artemis.Core.Services.Interfaces;
+using Artemis.Core.Services;
using Artemis.Storage.Entities.Profile.Abstract;
-namespace Artemis.Core.Models.Profile.Conditions.Abstract
+namespace Artemis.Core
{
///
/// An abstract class for display condition parts
@@ -10,7 +10,7 @@ namespace Artemis.Core.Models.Profile.Conditions.Abstract
public abstract class DisplayConditionPart
{
private readonly List _children = new List();
-
+
///
/// Gets the parent of this part
///
diff --git a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionGroup.cs b/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionGroup.cs
index 640216e7e..c93bb0612 100644
--- a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionGroup.cs
+++ b/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionGroup.cs
@@ -1,12 +1,10 @@
using System;
using System.Linq;
-using Artemis.Core.Models.Profile.Conditions.Abstract;
-using Artemis.Core.Services.Interfaces;
-using Artemis.Storage.Entities.Profile;
+using Artemis.Core.Services;
using Artemis.Storage.Entities.Profile.Abstract;
using Artemis.Storage.Entities.Profile.Conditions;
-namespace Artemis.Core.Models.Profile.Conditions
+namespace Artemis.Core
{
///
/// A group containing zero to many s which it evaluates using a boolean specific
diff --git a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionList.cs b/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionList.cs
index 1bcd9f271..4bb1a587d 100644
--- a/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionList.cs
+++ b/src/Artemis.Core/Models/Profile/Conditions/DisplayConditionList.cs
@@ -2,15 +2,12 @@
using System.Collections;
using System.Linq;
using System.Linq.Expressions;
-using Artemis.Core.Exceptions;
-using Artemis.Core.Models.Profile.Conditions.Abstract;
-using Artemis.Core.Plugins.DataModelExpansions;
-using Artemis.Core.Services.Interfaces;
-using Artemis.Storage.Entities.Profile;
+using Artemis.Core.DataModelExpansions;
+using Artemis.Core.Services;
using Artemis.Storage.Entities.Profile.Abstract;
using Artemis.Storage.Entities.Profile.Conditions;
-namespace Artemis.Core.Models.Profile.Conditions
+namespace Artemis.Core
{
public class DisplayConditionList : DisplayConditionPart
{
@@ -33,6 +30,8 @@ namespace Artemis.Core.Models.Profile.Conditions
public DataModel ListDataModel { get; private set; }
public string ListPropertyPath { get; private set; }
+ public Func