diff --git a/src/Umbraco.Core/AsyncLock.cs b/src/Umbraco.Abstractions/AsyncLock.cs similarity index 99% rename from src/Umbraco.Core/AsyncLock.cs rename to src/Umbraco.Abstractions/AsyncLock.cs index 158b132f26..e929f79168 100644 --- a/src/Umbraco.Core/AsyncLock.cs +++ b/src/Umbraco.Abstractions/AsyncLock.cs @@ -21,7 +21,7 @@ namespace Umbraco.Core // been closed, the Semaphore system object is destroyed - so in any case // an iisreset should clean up everything // - internal class AsyncLock + public class AsyncLock { private readonly SemaphoreSlim _semaphore; private readonly Semaphore _semaphore2; diff --git a/src/Umbraco.Core/DelegateEqualityComparer.cs b/src/Umbraco.Abstractions/DelegateEqualityComparer.cs similarity index 100% rename from src/Umbraco.Core/DelegateEqualityComparer.cs rename to src/Umbraco.Abstractions/DelegateEqualityComparer.cs diff --git a/src/Umbraco.Core/Persistence/DatabaseModelDefinitions/Direction.cs b/src/Umbraco.Abstractions/Direction.cs similarity index 58% rename from src/Umbraco.Core/Persistence/DatabaseModelDefinitions/Direction.cs rename to src/Umbraco.Abstractions/Direction.cs index 5c34413763..7d3906ffd0 100644 --- a/src/Umbraco.Core/Persistence/DatabaseModelDefinitions/Direction.cs +++ b/src/Umbraco.Abstractions/Direction.cs @@ -1,4 +1,4 @@ -namespace Umbraco.Core.Persistence.DatabaseModelDefinitions +namespace Umbraco.Core { public enum Direction { diff --git a/src/Umbraco.Core/Enum.cs b/src/Umbraco.Abstractions/Enum.cs similarity index 100% rename from src/Umbraco.Core/Enum.cs rename to src/Umbraco.Abstractions/Enum.cs diff --git a/src/Umbraco.Core/EnumerableExtensions.cs b/src/Umbraco.Abstractions/EnumerableExtensions.cs similarity index 89% rename from src/Umbraco.Core/EnumerableExtensions.cs rename to src/Umbraco.Abstractions/EnumerableExtensions.cs index 3719bb0750..cee8199a6c 100644 --- a/src/Umbraco.Core/EnumerableExtensions.cs +++ b/src/Umbraco.Abstractions/EnumerableExtensions.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using Umbraco.Core.Persistence.DatabaseModelDefinitions; namespace Umbraco.Core { @@ -10,6 +9,45 @@ namespace Umbraco.Core /// public static class EnumerableExtensions { + // based upon the original Zip method + public static IEnumerable Zip(this IEnumerable e1, IEnumerable e2, IEnumerable e3, + Func resultSelector) + { + if (e1 == null) throw new ArgumentNullException("e1"); + if (e2 == null) throw new ArgumentNullException("e2"); + if (e3 == null) throw new ArgumentNullException("e3"); + if (resultSelector == null) throw new ArgumentNullException("resultSelector"); + return ZipIterator(e1, e2, e3, resultSelector); + } + + private static IEnumerable ZipIterator(IEnumerable ie1, IEnumerable ie2, IEnumerable ie3, + Func resultSelector) + { + var e1 = ie1.GetEnumerator(); + try + { + var e2 = ie2.GetEnumerator(); + var e3 = ie3.GetEnumerator(); + try + { + while (e1.MoveNext() && e2.MoveNext() && e3.MoveNext()) + yield return resultSelector(e1.Current, e2.Current, e3.Current); + } + finally + { + if (e2 != null) + e2.Dispose(); + if (e3 != null) + e3.Dispose(); + } + } + finally + { + if (e1 != null) + e1.Dispose(); + } + } + internal static bool HasDuplicates(this IEnumerable items, bool includeNull) { var hs = new HashSet(); diff --git a/src/Umbraco.Core/Exceptions/ArgumentNullOrEmptyException.cs b/src/Umbraco.Abstractions/Exceptions/ArgumentNullOrEmptyException.cs similarity index 100% rename from src/Umbraco.Core/Exceptions/ArgumentNullOrEmptyException.cs rename to src/Umbraco.Abstractions/Exceptions/ArgumentNullOrEmptyException.cs diff --git a/src/Umbraco.Core/Exceptions/AuthorizationException.cs b/src/Umbraco.Abstractions/Exceptions/AuthorizationException.cs similarity index 100% rename from src/Umbraco.Core/Exceptions/AuthorizationException.cs rename to src/Umbraco.Abstractions/Exceptions/AuthorizationException.cs diff --git a/src/Umbraco.Core/Exceptions/BootFailedException.cs b/src/Umbraco.Abstractions/Exceptions/BootFailedException.cs similarity index 100% rename from src/Umbraco.Core/Exceptions/BootFailedException.cs rename to src/Umbraco.Abstractions/Exceptions/BootFailedException.cs diff --git a/src/Umbraco.Core/Exceptions/ConnectionException.cs b/src/Umbraco.Abstractions/Exceptions/ConnectionException.cs similarity index 79% rename from src/Umbraco.Core/Exceptions/ConnectionException.cs rename to src/Umbraco.Abstractions/Exceptions/ConnectionException.cs index 64fdbeee52..7b38058ec2 100644 --- a/src/Umbraco.Core/Exceptions/ConnectionException.cs +++ b/src/Umbraco.Abstractions/Exceptions/ConnectionException.cs @@ -2,7 +2,7 @@ namespace Umbraco.Core.Exceptions { - internal class ConnectionException : Exception + public class ConnectionException : Exception { public ConnectionException(string message, Exception innerException) : base(message, innerException) { diff --git a/src/Umbraco.Core/Exceptions/DataOperationException.cs b/src/Umbraco.Abstractions/Exceptions/DataOperationException.cs similarity index 88% rename from src/Umbraco.Core/Exceptions/DataOperationException.cs rename to src/Umbraco.Abstractions/Exceptions/DataOperationException.cs index 14fefcf9d3..b2025ba8f6 100644 --- a/src/Umbraco.Core/Exceptions/DataOperationException.cs +++ b/src/Umbraco.Abstractions/Exceptions/DataOperationException.cs @@ -2,7 +2,7 @@ namespace Umbraco.Core.Exceptions { - internal class DataOperationException : Exception + public class DataOperationException : Exception { public T Operation { get; private set; } diff --git a/src/Umbraco.Core/Exceptions/WontImplementException.cs b/src/Umbraco.Abstractions/Exceptions/WontImplementException.cs similarity index 100% rename from src/Umbraco.Core/Exceptions/WontImplementException.cs rename to src/Umbraco.Abstractions/Exceptions/WontImplementException.cs diff --git a/src/Umbraco.Core/HexEncoder.cs b/src/Umbraco.Abstractions/HexEncoder.cs similarity index 98% rename from src/Umbraco.Core/HexEncoder.cs rename to src/Umbraco.Abstractions/HexEncoder.cs index 9202fd48fc..ec0e4492ac 100644 --- a/src/Umbraco.Core/HexEncoder.cs +++ b/src/Umbraco.Abstractions/HexEncoder.cs @@ -6,7 +6,7 @@ namespace Umbraco.Core /// /// Provides methods for encoding byte arrays into hexadecimal strings. /// - internal static class HexEncoder + public static class HexEncoder { // LUT's that provide the hexadecimal representation of each possible byte value. private static readonly char[] HexLutBase = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; diff --git a/src/Umbraco.Core/IfExtensions.cs b/src/Umbraco.Abstractions/IfExtensions.cs similarity index 100% rename from src/Umbraco.Core/IfExtensions.cs rename to src/Umbraco.Abstractions/IfExtensions.cs diff --git a/src/Umbraco.Core/ReadLock.cs b/src/Umbraco.Abstractions/ReadLock.cs similarity index 100% rename from src/Umbraco.Core/ReadLock.cs rename to src/Umbraco.Abstractions/ReadLock.cs diff --git a/src/Umbraco.Core/WaitHandleExtensions.cs b/src/Umbraco.Abstractions/WaitHandleExtensions.cs similarity index 97% rename from src/Umbraco.Core/WaitHandleExtensions.cs rename to src/Umbraco.Abstractions/WaitHandleExtensions.cs index 0d840a2496..2bd0e9eab2 100644 --- a/src/Umbraco.Core/WaitHandleExtensions.cs +++ b/src/Umbraco.Abstractions/WaitHandleExtensions.cs @@ -3,7 +3,7 @@ using System.Threading.Tasks; namespace Umbraco.Core { - internal static class WaitHandleExtensions + public static class WaitHandleExtensions { // http://stackoverflow.com/questions/25382583/waiting-on-a-named-semaphore-with-waitone100-vs-waitone0-task-delay100 diff --git a/src/Umbraco.Core/WriteLock.cs b/src/Umbraco.Abstractions/WriteLock.cs similarity index 100% rename from src/Umbraco.Core/WriteLock.cs rename to src/Umbraco.Abstractions/WriteLock.cs diff --git a/src/Umbraco.Core/ListExtensions.cs b/src/Umbraco.Core/ListExtensions.cs deleted file mode 100644 index e639cbd5c7..0000000000 --- a/src/Umbraco.Core/ListExtensions.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Umbraco.Core -{ - /// - /// Provides extensions to the List type. - /// - internal static class ListExtensions - { - // based upon the original Zip method - public static IEnumerable Zip(this IEnumerable e1, IEnumerable e2, IEnumerable e3, - Func resultSelector) - { - if (e1 == null) throw new ArgumentNullException("e1"); - if (e2 == null) throw new ArgumentNullException("e2"); - if (e3 == null) throw new ArgumentNullException("e3"); - if (resultSelector == null) throw new ArgumentNullException("resultSelector"); - return ZipIterator(e1, e2, e3, resultSelector); - } - - private static IEnumerable ZipIterator(IEnumerable ie1, IEnumerable ie2, IEnumerable ie3, - Func resultSelector) - { - var e1 = ie1.GetEnumerator(); - try - { - var e2 = ie2.GetEnumerator(); - var e3 = ie3.GetEnumerator(); - try - { - while (e1.MoveNext() && e2.MoveNext() && e3.MoveNext()) - yield return resultSelector(e1.Current, e2.Current, e3.Current); - } - finally - { - if (e2 != null) - e2.Dispose(); - if (e3 != null) - e3.Dispose(); - } - } - finally - { - if (e1 != null) - e1.Dispose(); - } - } - } -} diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index d9664a703e..1c5ff4438e 100755 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -117,7 +117,6 @@ --> - @@ -196,6 +195,7 @@ + @@ -234,6 +234,7 @@ + @@ -343,7 +344,6 @@ - @@ -545,7 +545,6 @@ - @@ -562,7 +561,6 @@ - @@ -592,8 +590,6 @@ - - @@ -636,14 +632,7 @@ - - - - - - - @@ -653,7 +642,6 @@ - @@ -672,7 +660,6 @@ - @@ -943,7 +930,6 @@ - @@ -1473,7 +1459,6 @@ - @@ -1517,9 +1502,16 @@ - - + + + + + Component + + + Properties\SolutionInfo.cs + @@ -1534,15 +1526,6 @@ - - - - - Component - - - Properties\SolutionInfo.cs - diff --git a/src/Umbraco.Tests/Logging/LogviewerTests.cs b/src/Umbraco.Tests/Logging/LogviewerTests.cs index 35981f5368..6139ca331e 100644 --- a/src/Umbraco.Tests/Logging/LogviewerTests.cs +++ b/src/Umbraco.Tests/Logging/LogviewerTests.cs @@ -3,9 +3,9 @@ using NUnit.Framework; using System; using System.IO; using System.Linq; +using Umbraco.Core; using Umbraco.Core.IO; using Umbraco.Core.Logging.Viewer; -using Umbraco.Core.Persistence.DatabaseModelDefinitions; namespace Umbraco.Tests.Logging { diff --git a/src/Umbraco.Tests/Persistence/Repositories/AuditRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/AuditRepositoryTest.cs index de970c900d..49e48e0a2f 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/AuditRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/AuditRepositoryTest.cs @@ -2,15 +2,12 @@ using NUnit.Framework; using Umbraco.Core.Models; using Umbraco.Core.Persistence; -using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Persistence.Dtos; -using Umbraco.Core.Persistence.Querying; -using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.Scoping; -using Umbraco.Core.Logging; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; +using Umbraco.Core; namespace Umbraco.Tests.Persistence.Repositories { diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs index 1d9cf6d022..3ece9bb6b3 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs @@ -3,20 +3,18 @@ using System.Linq; using Moq; using NUnit.Framework; using Umbraco.Core.Cache; -using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Core.IO; using Umbraco.Core.Models; using Umbraco.Core.Models.Entities; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; -using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.Scoping; using Umbraco.Tests.Testing; using Umbraco.Core.Services; +using Umbraco.Core; namespace Umbraco.Tests.Persistence.Repositories { diff --git a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs index 5f3e84916b..83971ae682 100644 --- a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs +++ b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs @@ -199,7 +199,7 @@ namespace Umbraco.Web.Editors }, { "logApiBaseUrl", _urlHelper.GetUmbracoApiServiceBaseUrl( - controller => controller.GetPagedEntityLog(0, 0, 0, Core.Persistence.DatabaseModelDefinitions.Direction.Ascending, null)) + controller => controller.GetPagedEntityLog(0, 0, 0, Direction.Ascending, null)) }, { "memberApiBaseUrl", _urlHelper.GetUmbracoApiServiceBaseUrl( diff --git a/src/Umbraco.Web/Editors/LogController.cs b/src/Umbraco.Web/Editors/LogController.cs index c3e3790378..bfd82f8478 100644 --- a/src/Umbraco.Web/Editors/LogController.cs +++ b/src/Umbraco.Web/Editors/LogController.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; using System.Linq; +using Umbraco.Core; using Umbraco.Core.Models; -using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Mvc; using Umbraco.Web.WebApi.Filters; diff --git a/src/Umbraco.Web/Editors/LogViewerController.cs b/src/Umbraco.Web/Editors/LogViewerController.cs index e5c75926f6..6f7669de28 100644 --- a/src/Umbraco.Web/Editors/LogViewerController.cs +++ b/src/Umbraco.Web/Editors/LogViewerController.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Web.Http; +using Umbraco.Core; using Umbraco.Core.Logging.Viewer; using Umbraco.Core.Models; -using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Web.Mvc; using Umbraco.Web.WebApi;