Compare commits

..

72 Commits

Author SHA1 Message Date
Bjarke Berg 15c02ce828 Merge remote-tracking branch 'origin/v8/dev' into vx/feature/unicore 2019-05-31 11:40:15 +02:00
Bjarke Berg 1fe02af841 Moved more stuff into Abstractions 2019-05-28 16:23:52 +02:00
Bjarke Berg 7aca2e3217 Fixed tests that expected file to be in Umbraco.Core 2019-05-27 14:28:24 +02:00
Bjarke Berg e9324055e9 Moved event stuff 2019-05-27 13:53:53 +02:00
Bjarke Berg 00a121188a Moved more abstractions of models 2019-05-27 12:58:51 +02:00
Bjarke Berg dcf022ffaa Moved more abstractions of models 2019-05-27 11:45:35 +02:00
Bjarke Berg 408b00a737 Moved more abstractions of models 2019-05-27 11:20:33 +02:00
Bjarke Berg e571f51750 Merge remote-tracking branch 'origin/v8/dev' into vx/feature/unicore 2019-05-27 10:21:26 +02:00
Bjarke Berg 85eb44ecc3 Moved more abstractions of models 2019-05-27 10:16:07 +02:00
Bjarke Berg 489bb7f3e9 Added netstandard to web.config. 2019-05-27 09:58:15 +02:00
Bjarke Berg ff71d89415 Moved more files and removed modelsbuilder from UI project 2019-05-27 08:57:57 +02:00
Carole Rennie Logan cd93ebe7c1 moving intextensions and removing unused imports
moving intextensions and removing unused imports
2019-05-21 10:48:59 +01:00
Lars-Erik Aabech 917efc4d9a Bump lang level to 7.3 2019-05-20 18:43:27 +02:00
Shannon 3f2dd88325 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 18:40:27 +02:00
Shannon d42b2492b7 Moves more utilities 2019-05-20 18:40:13 +02:00
Lars-Erik Aabech 98f3035b5c Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 18:39:45 +02:00
Lars-Erik Aabech dccee475f2 Moved several configuration abstractions including IUmbracoSettingsSection. 2019-05-20 18:39:41 +02:00
Bjarke Berg 8bf90bae91 Started moving caches.. 2019-05-20 18:28:35 +02:00
Stephan 34648fc8aa Umbraco.Abstractions default namespace is Umbraco.Core 2019-05-20 18:25:25 +02:00
Lars-Erik Aabech 5f76bb82cd Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 18:23:43 +02:00
Shannon a0506622b4 dirty tracking, entities, cloning moved 2019-05-20 18:23:22 +02:00
Lars-Erik Aabech 1256512a1d Set language level to 7.1 for abstractions project for now 2019-05-20 18:23:21 +02:00
Shannon 46cb6e2329 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 18:08:09 +02:00
Shannon e58588801e fixes csproj merge 2019-05-20 18:07:57 +02:00
Lars-Erik Aabech 185c453c00 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:58:27 +02:00
Lars-Erik Aabech 152ba318bf Removed Semver dependency by copying the class from the original repo. 2019-05-20 17:58:22 +02:00
Shannon 708f4d89c7 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:57:43 +02:00
Shannon 57ff36452e Moves Strings and extensions to abstractions (where possible) 2019-05-20 17:57:28 +02:00
Stephan 2495df5573 Move collections to abstractions 2019-05-20 17:50:31 +02:00
Carole Rennie Logan e0fd6fa8ee Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:48:13 +01:00
Carole Rennie Logan 79e447239f moving custombooleantypeconverter
moving custombooleantypeconverter to abstractions
2019-05-20 16:48:08 +01:00
Lars-Erik Aabech 74865740e0 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:39:30 +02:00
Lars-Erik Aabech f8bc25a2dd Moved runtime abstractions and added SemVer + extensions to abstractions. 2019-05-20 17:39:11 +02:00
Carole Rennie Logan 4da063369d moving SafeCallContext to abstractions
moving SafeCallContext to abstractions
2019-05-20 16:38:42 +01:00
Bjarke Berg facf13f6d5 FIX 2019-05-20 17:29:04 +02:00
Carole Rennie Logan 98afb9a030 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:26:25 +01:00
Lars-Erik Aabech f8462a739c Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:25:59 +02:00
Lars-Erik Aabech 837a7b506e Moved first core DI abstractions 2019-05-20 17:25:55 +02:00
Lars-Erik Aabech d576be3593 Made DataTableExtensions and made it/methods public. 2019-05-20 17:25:49 +02:00
Carole Rennie Logan 20282edba4 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:25:38 +01:00
Bjarke Berg 8fa3f8e06a Moved more stuff 2019-05-20 17:25:29 +02:00
Carole Rennie Logan b85fc649ea moving core items to abstractions
moving core items to abstractions
2019-05-20 16:25:08 +01:00
Stephan deefad4b89 Move ILogger/IProfiler/IProfilingLogger to abstractions 2019-05-20 17:24:46 +02:00
Lars-Erik Aabech 888390d86b Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:20:56 +02:00
Lars-Erik Aabech 99d2509eaa Moved several poco extensions and removed BindingRedirects 2019-05-20 17:20:52 +02:00
Bjarke Berg e0c0da802d Moved more stuff 2019-05-20 17:20:15 +02:00
Bjarke Berg f238f37508 Moved InvalidCompositionException 2019-05-20 17:12:54 +02:00
Bjarke Berg 2e2a275ea4 Merge remote-tracking branch 'origin/vx/feature/unicore' into vx/feature/unicore 2019-05-20 17:09:54 +02:00
Bjarke Berg a13723cc7e Moved media 2019-05-20 17:09:45 +02:00
Carole Rennie Logan 30add94906 uditype move to abstractions
uditype move to abstractions
2019-05-20 16:09:37 +01:00
Carole Rennie Logan e61cd0fbba Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:06:21 +01:00
Carole Rennie Logan 69407caea8 move upgradeablereadlock
moving to abstractions.
2019-05-20 16:06:09 +01:00
Lars-Erik Aabech dd9cfa7abf Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 17:05:10 +02:00
Lars-Erik Aabech 9122bbdd45 Moved IDiscoverable and Dashboards.* 2019-05-20 17:05:04 +02:00
Stephan 295d2d73e3 Move DisposableObjectSlim to abstractions 2019-05-20 17:04:33 +02:00
Carole Rennie Logan 709babc95b Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 15:59:27 +01:00
Bjarke Berg cab1462d51 Merge remote-tracking branch 'origin/vx/feature/unicore' into vx/feature/unicore 2019-05-20 16:59:07 +02:00
Bjarke Berg cad3e8a635 Moved MacroErrorBehaviour.cs 2019-05-20 16:58:47 +02:00
Carole Rennie Logan 9bac6a4074 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 15:57:51 +01:00
Carole Rennie Logan 49a38f2824 HashCodeCombiner
move hashcodecombiner to abstractions
2019-05-20 15:57:42 +01:00
Lars-Erik Aabech e19cfe575b Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:57:40 +02:00
Lars-Erik Aabech c007757564 Moved code annotations 2019-05-20 16:57:14 +02:00
Bjarke Berg 0b77f8c244 Merge remote-tracking branch 'origin/vx/feature/unicore' into vx/feature/unicore 2019-05-20 16:56:19 +02:00
Bjarke Berg f470c4cd3f Moved read and writelock 2019-05-20 16:56:03 +02:00
Shannon 651d48e5c8 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:54:30 +02:00
Shannon 1f70e67ac1 moved more utilities 2019-05-20 16:54:20 +02:00
Lars-Erik Aabech 2ef03a2c24 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:48:22 +02:00
Shannon 04b319ecb2 moves 4 more utilities 2019-05-20 16:48:12 +02:00
Lars-Erik Aabech fb608d5131 Merge branch 'vx/feature/unicore' of https://github.com/umbraco/Umbraco-CMS into vx/feature/unicore 2019-05-20 16:45:17 +02:00
Lars-Erik Aabech dff06bde30 Moved most exceptions to abstractions. Added abstractions to web and tests. 2019-05-20 16:45:12 +02:00
Shannon 30c1c76263 Moved Attempt and updated project refs 2019-05-20 16:40:11 +02:00
Bjarke Berg 61cb7ac769 Moved ICompletable into abstractions for Project UniCore 🦄 2019-05-20 16:34:10 +02:00
1104 changed files with 13806 additions and 14838 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ thoroughly. Then, proceed by filling out the rest of the details in the issue
template below. The more details you can give us, the easier it will be for us
to determine the cause of a problem.
See: https://github.com/umbraco/Umbraco-CMS/blob/v8/dev/.github/CONTRIBUTING.md
See: https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/.github/CONTRIBUTING.md
-->
+3 -4
View File
@@ -14,7 +14,6 @@
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
<repository type="git" url="https://github.com/umbraco/umbraco-cms" />
<dependencies>
<group targetFramework="net472">
@@ -45,7 +44,7 @@
<dependency id="Umbraco.SqlServerCE" version="[4.0.0.1,4.999999)" />
<dependency id="NPoco" version="[3.9.4,3.999999)" />
</group>
</dependencies>
</metadata>
<files>
@@ -53,9 +52,9 @@
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.dll" target="lib\net472\Umbraco.Core.dll" />
<!-- docs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\net472\Umbraco.Core.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\Umbraco.Core.xml" />
<!-- symbols -->
<file src="$BuildTmp$\bin\Umbraco.Core.pdb" target="lib\net472\Umbraco.Core.pdb" />
<file src="$BuildTmp$\bin\Umbraco.Core.pdb" target="lib" />
</files>
</package>
+6 -7
View File
@@ -14,7 +14,6 @@
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
<repository type="git" url="https://github.com/umbraco/umbraco-cms" />
<dependencies>
<group targetFramework="net472">
@@ -44,7 +43,7 @@
<dependency id="System.Threading.Tasks.Dataflow" version="[4.9.0,4.999999)" />
</group>
</dependencies>
</metadata>
<files>
@@ -54,12 +53,12 @@
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.dll" target="lib\net472\Umbraco.Examine.dll" />
<!-- docs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.xml" target="lib\net472\Umbraco.Web.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.xml" target="lib\net472\Umbraco.Web.UI.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.xml" target="lib\net472\Umbraco.Examine.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.xml" target="lib\Umbraco.Web.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.xml" target="lib\Umbraco.Web.UI.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.xml" target="lib\Umbraco.Examine.xml" />
<!-- symbols -->
<file src="$BuildTmp$\bin\Umbraco.Web.pdb" target="lib\net472\Umbraco.Web.pdb" />
<file src="$BuildTmp$\bin\Umbraco.Examine.pdb" target="lib\net472\Umbraco.Examine.pdb" />
<file src="$BuildTmp$\bin\Umbraco.Web.pdb" target="lib" />
<file src="$BuildTmp$\bin\Umbraco.Examine.pdb" target="lib" />
</files>
</package>
+1 -2
View File
@@ -14,7 +14,6 @@
<summary>Installs Umbraco Cms in your Visual Studio ASP.NET project</summary>
<language>en-US</language>
<tags>umbraco</tags>
<repository type="git" url="https://github.com/umbraco/umbraco-cms" />
<dependencies>
<group targetFramework="net472">
@@ -26,7 +25,7 @@
not want this to happen as the alpha of the next major is, really, the next major already.
-->
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.4.0, 2.999999)" />
<dependency id="Umbraco.ModelsBuilder.Ui" version="[8.1.0]" />
<dependency id="Umbraco.ModelsBuilder.Ui" version="[8.0.4]" />
<dependency id="ImageProcessor.Web" version="[4.10.0.100,4.999999)" />
<dependency id="ImageProcessor.Web.Config" version="[2.5.0.100,2.999999)" />
<dependency id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="[2.0.1,2.999999)" />
@@ -8,7 +8,7 @@
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(factoryType)" xdt:Transform="SetAttributes(factoryType)" />
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(factoryType)" xdt:Transform="SetAttributes(factoryType)" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="Umbraco.Web.PublishedContentModels" xdt:Transform="InsertIfMissing" />
@@ -18,13 +18,13 @@
<system.web>
<pages
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
xdt:Locator="Match(pageParserFilterType,pageBaseType,userControlBaseType)"
xdt:Transform="SetAttributes(pageParserFilterType,pageBaseType,userControlBaseType)">
<controls>
<add assembly="System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" xdt:Locator="Match(namespace)" xdt:Transform="SetAttributes(assembly)" />
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" xdt:Locator="Match(namespace)" xdt:Transform="SetAttributes(assembly)" />
</controls>
</pages>
</system.web>
+4 -21
View File
@@ -18,20 +18,9 @@ if ($project) {
# Copy umbraco and umbraco_files from package to project folder
$umbracoFolder = Join-Path $projectPath "Umbraco"
New-Item -ItemType Directory -Force -Path $umbracoFolder
New-Item -ItemType Directory -Force -Path $umbracoFolder
$umbracoFolderSource = Join-Path $installPath "UmbracoFiles\Umbraco"
Write-Host "copying files to $umbracoFolder ..."
# see https://support.microsoft.com/en-us/help/954404/return-codes-that-are-used-by-the-robocopy-utility-in-windows-server-2
robocopy $umbracoFolderSource $umbracoFolder /is /it /e
if (($lastexitcode -eq 1) -or ($lastexitcode -eq 3) -or ($lastexitcode -eq 5) -or ($lastexitcode -eq 7))
{
write-host "Copy succeeded!"
}
else
{
write-host "Copy failed with exit code:" $lastexitcode
}
robocopy $umbracoFolderSource $umbracoFolder /is /it /e /xf UI.xml /LOG:$copyLogsPath\UmbracoCopy.log
$copyWebconfig = $true
$destinationWebConfig = Join-Path $projectPath "Web.config"
@@ -51,11 +40,7 @@ if ($project) {
}
}
}
Catch
{
Write-Host "An error occurred:"
Write-Host $_
}
Catch { }
}
if($copyWebconfig -eq $true)
@@ -89,9 +74,7 @@ if ($project) {
}
Catch
{
# Not a big problem if this fails, let it go
# Write-Host "An error occurred:"
# Write-Host $_
# Not a big problem if this fails, let it go
}
}
+10 -10
View File
@@ -15,7 +15,7 @@
[Parameter(Mandatory=$false)]
[Alias("doc")]
[switch] $docfx = $false,
# keep the build directories, don't clear them
[Parameter(Mandatory=$false)]
[Alias("c")]
@@ -392,13 +392,13 @@
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.Core.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version "$($this.Version.Semver.ToString())" `
-Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmscore.log"
-Symbols -SymbolPackageFormat snupkg -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmscore.log"
if (-not $?) { throw "Failed to pack NuGet UmbracoCms.Core." }
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.Web.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version "$($this.Version.Semver.ToString())" `
-Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmsweb.log"
-Symbols -SymbolPackageFormat snupkg -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmsweb.log"
if (-not $?) { throw "Failed to pack NuGet UmbracoCms.Web." }
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.nuspec" `
@@ -429,37 +429,37 @@
Write-Host "Prepare Azure Gallery"
$this.CopyFile("$($this.SolutionRoot)\build\Azure\azuregalleryrelease.ps1", $this.BuildOutput)
})
$ubuild.DefineMethod("PrepareCSharpDocs",
{
Write-Host "Prepare C# Documentation"
$src = "$($this.SolutionRoot)\src"
$tmp = $this.BuildTemp
$out = $this.BuildOutput
$DocFxJson = Join-Path -Path $src "\ApiDocs\docfx.json"
$DocFxSiteOutput = Join-Path -Path $tmp "\_site\*.*"
#restore nuget packages
$this.RestoreNuGet()
# run DocFx
$DocFx = $this.BuildEnv.DocFx
& $DocFx metadata $DocFxJson
& $DocFx build $DocFxJson
# zip it
& $this.BuildEnv.Zip a -tzip -r "$out\csharp-docs.zip" $DocFxSiteOutput
})
$ubuild.DefineMethod("PrepareAngularDocs",
{
Write-Host "Prepare Angular Documentation"
$src = "$($this.SolutionRoot)\src"
$out = $this.BuildOutput
$this.CompileBelle()
"Moving to Umbraco.Web.UI.Client folder"
+2 -2
View File
@@ -18,5 +18,5 @@ using System.Resources;
[assembly: AssemblyVersion("8.0.0")]
// these are FYI and changed automatically
[assembly: AssemblyFileVersion("8.2.0")]
[assembly: AssemblyInformationalVersion("8.2.0")]
[assembly: AssemblyFileVersion("8.1.0")]
[assembly: AssemblyInformationalVersion("8.1.0")]
@@ -1,12 +1,10 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
namespace Umbraco.Core
{
internal static class AssemblyExtensions
public static class AssemblyExtensions
{
/// <summary>
/// Returns the file used to load the assembly
@@ -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;
@@ -67,34 +67,31 @@ namespace Umbraco.Core
: new NamedSemaphoreReleaser(_semaphore2);
}
//NOTE: We don't use the "Async" part of this lock at all
//TODO: Remove this and rename this class something like SystemWideLock, then we can re-instate this logic if we ever need an Async lock again
public Task<IDisposable> LockAsync()
{
var wait = _semaphore != null
? _semaphore.WaitAsync()
: _semaphore2.WaitOneAsync();
//public Task<IDisposable> LockAsync()
//{
// var wait = _semaphore != null
// ? _semaphore.WaitAsync()
// : _semaphore2.WaitOneAsync();
return wait.IsCompleted
? _releaserTask ?? Task.FromResult(CreateReleaser()) // anonymous vs named
: wait.ContinueWith((_, state) => (((AsyncLock) state).CreateReleaser()),
this, CancellationToken.None,
TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
}
// return wait.IsCompleted
// ? _releaserTask ?? Task.FromResult(CreateReleaser()) // anonymous vs named
// : wait.ContinueWith((_, state) => (((AsyncLock) state).CreateReleaser()),
// this, CancellationToken.None,
// TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
//}
public Task<IDisposable> LockAsync(int millisecondsTimeout)
{
var wait = _semaphore != null
? _semaphore.WaitAsync(millisecondsTimeout)
: _semaphore2.WaitOneAsync(millisecondsTimeout);
//public Task<IDisposable> LockAsync(int millisecondsTimeout)
//{
// var wait = _semaphore != null
// ? _semaphore.WaitAsync(millisecondsTimeout)
// : _semaphore2.WaitOneAsync(millisecondsTimeout);
// return wait.IsCompleted
// ? _releaserTask ?? Task.FromResult(CreateReleaser()) // anonymous vs named
// : wait.ContinueWith((_, state) => (((AsyncLock)state).CreateReleaser()),
// this, CancellationToken.None,
// TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
//}
return wait.IsCompleted
? _releaserTask ?? Task.FromResult(CreateReleaser()) // anonymous vs named
: wait.ContinueWith((_, state) => (((AsyncLock)state).CreateReleaser()),
this, CancellationToken.None,
TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
}
public IDisposable Lock()
{
@@ -25,7 +25,7 @@ namespace Umbraco.Core.Cache
/// This is much better for performance when we're not running in a load balanced environment so we can refresh the cache
/// against a already resolved object instead of looking the object back up by id.
/// </remarks>
interface ICacheRefresher<T> : ICacheRefresher
public interface ICacheRefresher<T> : ICacheRefresher
{
void Refresh(T instance);
void Remove(T instance);
@@ -3,7 +3,7 @@
/// <summary>
/// A cache refresher that supports refreshing or removing cache based on a custom Json payload
/// </summary>
interface IJsonCacheRefresher : ICacheRefresher
public interface IJsonCacheRefresher : ICacheRefresher
{
/// <summary>
/// Refreshes, clears, etc... any cache based on the information provided in the json
@@ -3,7 +3,7 @@
/// <summary>
/// A cache refresher that supports refreshing cache based on a custom payload
/// </summary>
interface IPayloadCacheRefresher<TPayload> : IJsonCacheRefresher
public interface IPayloadCacheRefresher<TPayload> : IJsonCacheRefresher
{
/// <summary>
/// Refreshes, clears, etc... any cache based on the information provided in the payload
@@ -6,7 +6,7 @@ namespace Umbraco.Core.CodeAnnotations
/// Attribute to add a Friendly Name string with an UmbracoObjectType enum value
/// </summary>
[AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = false)]
internal class FriendlyNameAttribute : Attribute
public class FriendlyNameAttribute : Attribute
{
/// <summary>
/// friendly name value
@@ -6,7 +6,7 @@ namespace Umbraco.Core.CodeAnnotations
/// Attribute to associate a GUID string and Type with an UmbracoObjectType Enum value
/// </summary>
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
internal class UmbracoObjectTypeAttribute : Attribute
public class UmbracoObjectTypeAttribute : Attribute
{
public UmbracoObjectTypeAttribute(string objectId)
{
@@ -3,7 +3,7 @@
namespace Umbraco.Core.CodeAnnotations
{
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
internal class UmbracoUdiTypeAttribute : Attribute
public class UmbracoUdiTypeAttribute : Attribute
{
public string UdiType { get; private set; }
@@ -5,7 +5,7 @@ namespace Umbraco.Core.Collections
/// <summary>
/// Represents a composite key of (Type, Type) for fast dictionaries.
/// </summary>
internal struct CompositeTypeTypeKey : IEquatable<CompositeTypeTypeKey>
public struct CompositeTypeTypeKey : IEquatable<CompositeTypeTypeKey>
{
/// <summary>
/// Initializes a new instance of the <see cref="CompositeTypeTypeKey"/> struct.
@@ -10,7 +10,7 @@ namespace Umbraco.Core.Collections
/// A List that can be deep cloned with deep cloned elements and can reset the collection's items dirty flags
/// </summary>
/// <typeparam name="T"></typeparam>
internal class DeepCloneableList<T> : List<T>, IDeepCloneable, IRememberBeingDirty
public class DeepCloneableList<T> : List<T>, IDeepCloneable, IRememberBeingDirty
{
private readonly ListCloneBehavior _listCloneBehavior;
@@ -1,6 +1,6 @@
namespace Umbraco.Core.Collections
{
internal enum ListCloneBehavior
public enum ListCloneBehavior
{
/// <summary>
/// When set, DeepClone will clone the items one time and the result list behavior will be None
@@ -7,7 +7,7 @@ namespace Umbraco.Core.Collections
/// and is customizable to keep the newest or oldest equatable item
/// </summary>
/// <typeparam name="T"></typeparam>
internal class OrderedHashSet<T> : KeyedCollection<T, T>
public class OrderedHashSet<T> : KeyedCollection<T, T>
{
private readonly bool _keepOldest;
@@ -8,7 +8,7 @@ namespace Umbraco.Core.Collections
/// </summary>
/// <remarks>Types in the list are, or derive from, or implement, the base type.</remarks>
/// <typeparam name="TBase">The base type.</typeparam>
internal class TypeList<TBase>
public class TypeList<TBase>
{
private readonly List<Type> _list = new List<Type>();
@@ -30,4 +30,4 @@ namespace Umbraco.Core.Collections
return _list.Contains(type);
}
}
}
}
@@ -12,7 +12,7 @@ namespace Umbraco.Core.Composing
/// A utility class for type checking, this provides internal caching so that calls to these methods will be faster
/// than doing a manual type check in c#
/// </summary>
internal static class TypeHelper
public static class TypeHelper
{
private static readonly ConcurrentDictionary<Tuple<Type, bool, bool, bool>, PropertyInfo[]> GetPropertiesCache
= new ConcurrentDictionary<Tuple<Type, bool, bool, bool>, PropertyInfo[]>();
@@ -25,7 +25,7 @@ namespace Umbraco.Core.Composing
/// Based on a type we'll check if it is IEnumerable{T} (or similar) and if so we'll return a List{T}, this will also deal with array types and return List{T} for those too.
/// If it cannot be done, null is returned.
/// </summary>
internal static IList CreateGenericEnumerableFromObject(object obj)
public static IList CreateGenericEnumerableFromObject(object obj)
{
var type = obj.GetType();
@@ -323,7 +323,7 @@ namespace Umbraco.Core.Composing
return MatchType(implementation, contract, new Dictionary<string, Type>());
}
internal static bool MatchType(Type implementation, Type contract, IDictionary<string, Type> bindings, bool variance = true)
public static bool MatchType(Type implementation, Type contract, IDictionary<string, Type> bindings, bool variance = true)
{
if (contract.IsGenericType)
{
@@ -1,5 +1,4 @@
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
namespace Umbraco.Core.Configuration.Grid
{
@@ -0,0 +1,10 @@
namespace Umbraco.Core.Configuration
{
/// <summary>
/// Represents an Umbraco configuration section which can be used to pass to UmbracoConfiguration.For{T}
/// </summary>
public interface IUmbracoConfigurationSection
{
}
}
@@ -6,7 +6,7 @@ namespace Umbraco.Core
/// <summary>
/// Allows for converting string representations of 0 and 1 to boolean
/// </summary>
internal class CustomBooleanTypeConverter : BooleanConverter
public class CustomBooleanTypeConverter : BooleanConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
@@ -1,7 +1,4 @@
using Newtonsoft.Json;
using Umbraco.Core.Manifest;
namespace Umbraco.Core.Dashboards
namespace Umbraco.Core.Dashboards
{
/// <summary>
/// Represents an access rule.
@@ -1,23 +1,15 @@
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
namespace Umbraco.Core
{
/// <summary>
/// Static and extension methods for the DataTable object
/// </summary>
internal static class DataTableExtensions
public static class DataTableExtensions
{
/// <summary>
/// Creates a DataTable with the specified alias and columns and uses a callback to populate the headers.
/// </summary>
@@ -65,7 +57,7 @@ namespace Umbraco.Core
/// <remarks>
/// This is for legacy code, I didn't want to go creating custom classes for these
/// </remarks>
internal static List<System.Tuple<IEnumerable<KeyValuePair<string, object>>, IEnumerable<KeyValuePair<string, object>>>> CreateTableData()
public static List<System.Tuple<IEnumerable<KeyValuePair<string, object>>, IEnumerable<KeyValuePair<string, object>>>> CreateTableData()
{
return new List<System.Tuple<IEnumerable<KeyValuePair<string, object>>, IEnumerable<KeyValuePair<string, object>>>>();
}
@@ -79,7 +71,7 @@ namespace Umbraco.Core
/// <remarks>
/// This is for legacy code, I didn't want to go creating custom classes for these
/// </remarks>
internal static void AddRowData(
public static void AddRowData(
List<System.Tuple<IEnumerable<KeyValuePair<string, object>>, IEnumerable<KeyValuePair<string, object>>>> rowData,
IEnumerable<KeyValuePair<string, object>> standardVals,
IEnumerable<KeyValuePair<string, object>> userVals)
@@ -12,7 +12,7 @@ namespace Umbraco.Core
///<summary>
/// Extension methods for Dictionary & ConcurrentDictionary
///</summary>
internal static class DictionaryExtensions
public static class DictionaryExtensions
{
/// <summary>
@@ -1,4 +1,4 @@
namespace Umbraco.Core.Persistence.DatabaseModelDefinitions
namespace Umbraco.Core
{
public enum Direction
{
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
namespace Umbraco.Core
{
@@ -10,7 +9,44 @@ namespace Umbraco.Core
///</summary>
public static class EnumerableExtensions
{
internal static bool IsCollectionEmpty<T>(this IReadOnlyCollection<T> list) => list == null || list.Count == 0;
// based upon the original Zip<T1, T2, TResult> method
public static IEnumerable<TResult> Zip<T1, T2, T3, TResult>(this IEnumerable<T1> e1, IEnumerable<T2> e2, IEnumerable<T3> e3,
Func<T1, T2, T3, TResult> 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<TResult> ZipIterator<T1, T2, T3, TResult>(IEnumerable<T1> ie1, IEnumerable<T2> ie2, IEnumerable<T3> ie3,
Func<T1, T2, T3, TResult> 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<T>(this IEnumerable<T> items, bool includeNull)
{
@@ -114,6 +150,7 @@ namespace Umbraco.Core
}
}
/// <summary>
/// Returns true if all items in the other collection exist in this collection
/// </summary>
@@ -96,7 +96,7 @@ namespace Umbraco.Core.Events
/// This allows for a bit of flexibility in our event raising - it's not pretty but we need to maintain backwards compatibility
/// so we cannot change the strongly typed nature for some events.
/// </remarks>
public ReadOnlyDictionary<string, object> AdditionalData { get; internal set; }
public ReadOnlyDictionary<string, object> AdditionalData { get; set; }
/// <summary>
/// This can be used by event subscribers to store state in the event args so they easily deal with custom state data between a starting ("ing")
@@ -105,7 +105,7 @@ namespace Umbraco.Core.Events
public IDictionary<string, object> EventState
{
get => _eventState ?? (_eventState = new Dictionary<string, object>());
internal set => _eventState = value;
set => _eventState = value;
}
public bool Equals(CancellableEventArgs other)
@@ -41,6 +41,6 @@ namespace Umbraco.Core.Events
/// <remarks>
/// This is protected so that inheritors can expose it with their own name
/// </remarks>
internal object EventObject { get; set; }
public object EventObject { get; set; }
}
}
@@ -0,0 +1,4 @@
namespace Umbraco.Core.Events
{
public class DatabaseCreationEventArgs : System.ComponentModel.CancelEventArgs{}
}
@@ -2,7 +2,7 @@
namespace Umbraco.Core.Events
{
internal class EventDefinition : EventDefinitionBase
public class EventDefinition : EventDefinitionBase
{
private readonly EventHandler _trackedEvent;
private readonly object _sender;
@@ -25,7 +25,7 @@ namespace Umbraco.Core.Events
}
}
internal class EventDefinition<TEventArgs> : EventDefinitionBase
public class EventDefinition<TEventArgs> : EventDefinitionBase
{
private readonly EventHandler<TEventArgs> _trackedEvent;
private readonly object _sender;
@@ -48,7 +48,7 @@ namespace Umbraco.Core.Events
}
}
internal class EventDefinition<TSender, TEventArgs> : EventDefinitionBase
public class EventDefinition<TSender, TEventArgs> : EventDefinitionBase
{
private readonly TypedEventHandler<TSender, TEventArgs> _trackedEvent;
private readonly TSender _sender;
@@ -22,6 +22,6 @@
/// <summary>
/// This is used to track if this message should be used as a default message so that Umbraco doesn't also append it's own default messages
/// </summary>
internal bool IsDefaultEventMessage { get; set; }
public bool IsDefaultEventMessage { get; set; }
}
}
@@ -20,7 +20,7 @@ namespace Umbraco.Core.Events
///
/// We can also write tests to validate these are all working correctly for all services.
/// </summary>
internal class EventNameExtractor
public class EventNameExtractor
{
/// <summary>
@@ -52,7 +52,7 @@ namespace Umbraco.Core.Events
}
}
internal static string[] FindEvents(Type senderType, Type argsType, Func<string, bool> exclude)
public static string[] FindEvents(Type senderType, Type argsType, Func<string, bool> exclude)
{
var found = MatchedEventNames.GetOrAdd(new Tuple<Type, Type>(senderType, argsType), tuple =>
{
@@ -120,7 +120,7 @@ namespace Umbraco.Core.Events
/// </summary>
/// <param name="eventName"></param>
/// <returns></returns>
internal static bool MatchIngNames(string eventName)
public static bool MatchIngNames(string eventName)
{
var splitter = new Regex(@"(?<!^)(?=[A-Z])");
var words = splitter.Split(eventName);
@@ -134,7 +134,7 @@ namespace Umbraco.Core.Events
/// </summary>
/// <param name="eventName"></param>
/// <returns></returns>
internal static bool MatchNonIngNames(string eventName)
public static bool MatchNonIngNames(string eventName)
{
var splitter = new Regex(@"(?<!^)(?=[A-Z])");
var words = splitter.Split(eventName);
@@ -1,6 +1,6 @@
namespace Umbraco.Core.Events
{
internal enum EventNameExtractorError
public enum EventNameExtractorError
{
NoneFound,
Ambiguous
@@ -1,6 +1,6 @@
namespace Umbraco.Core.Events
{
internal class EventNameExtractorResult
public class EventNameExtractorResult
{
public EventNameExtractorError? Error { get; private set; }
public string Name { get; private set; }
@@ -2,7 +2,7 @@
namespace Umbraco.Core.Events
{
internal interface IDeletingMediaFilesEventArgs
public interface IDeletingMediaFilesEventArgs
{
List<string> MediaFilesToDelete { get; }
}

Some files were not shown because too many files have changed in this diff Show More