Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e8b320d7b4 |
@@ -1,4 +1,4 @@
|
|||||||
_Looking for Umbraco version 8? [Click here](https://github.com/umbraco/Umbraco-CMS/blob/dev-v8/.github/V8_GETTING_STARTED.md) to go to the v8 branch_
|
_Looking for Umbraco version 8? [Click here](https://github.com/umbraco/Umbraco-CMS/blob/temp8/.github/V8_GETTING_STARTED.md) to go to the v8 branch_
|
||||||
# Contributing to Umbraco CMS
|
# Contributing to Umbraco CMS
|
||||||
|
|
||||||
👍🎉 First off, thanks for taking the time to contribute! 🎉👍
|
👍🎉 First off, thanks for taking the time to contribute! 🎉👍
|
||||||
@@ -16,7 +16,7 @@ This document gives you a quick overview on how to get started, we will link to
|
|||||||
|
|
||||||
## Guidelines for contributions we welcome
|
## Guidelines for contributions we welcome
|
||||||
|
|
||||||
Not all changes are wanted, so on occassion we might close a PR without merging it. We will give you feedback why we can't accept your changes and we'll be nice about it, thanking you for spending your valuable time.
|
Not all changes are wanted, so on occassion we might close a PR without merging it. We will give you feedback why we can't accept your changes and we'll be nice about it, thanking you for spending your valueable time.
|
||||||
|
|
||||||
We have [documented what we consider small and large changes](CONTRIBUTION_GUIDELINES.md). Make sure to talk to us before making large changes.
|
We have [documented what we consider small and large changes](CONTRIBUTION_GUIDELINES.md). Make sure to talk to us before making large changes.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
[](https://ci.appveyor.com/project/Umbraco/umbraco-cms-b2cri/branch/dev-v7)
|
[](https://ci.appveyor.com/project/Umbraco/umbraco-cms-b2cri/branch/dev-v7)
|
||||||
[](https://pullreminders.com?ref=badge)
|
|
||||||
|
|
||||||
_Looking for Umbraco version 8? [Click here](https://github.com/umbraco/Umbraco-CMS/tree/temp8) to go to the v8 branch_
|
_Looking for Umbraco version 8? [Click here](https://github.com/umbraco/Umbraco-CMS/tree/temp8) to go to the v8 branch_
|
||||||
|
|
||||||
|
|||||||
@@ -135,9 +135,7 @@ function Get-UmbracoBuildEnv
|
|||||||
$vsPath = ""
|
$vsPath = ""
|
||||||
$vsVer = ""
|
$vsVer = ""
|
||||||
$msBuild = $null
|
$msBuild = $null
|
||||||
$params = @()
|
&$vswhere | foreach {
|
||||||
$params += "-prerelease"
|
|
||||||
&$vswhere @params | foreach {
|
|
||||||
if ($_.StartsWith("installationPath:")) { $vsPath = $_.SubString("installationPath:".Length).Trim() }
|
if ($_.StartsWith("installationPath:")) { $vsPath = $_.SubString("installationPath:".Length).Trim() }
|
||||||
if ($_.StartsWith("installationVersion:")) { $vsVer = $_.SubString("installationVersion:".Length).Trim() }
|
if ($_.StartsWith("installationVersion:")) { $vsVer = $_.SubString("installationVersion:".Length).Trim() }
|
||||||
}
|
}
|
||||||
@@ -146,10 +144,7 @@ function Get-UmbracoBuildEnv
|
|||||||
$vsVerParts = $vsVer.Split('.')
|
$vsVerParts = $vsVer.Split('.')
|
||||||
$vsMajor = [int]::Parse($vsVerParts[0])
|
$vsMajor = [int]::Parse($vsVerParts[0])
|
||||||
$vsMinor = [int]::Parse($vsVerParts[1])
|
$vsMinor = [int]::Parse($vsVerParts[1])
|
||||||
if ($vsMajor -eq 16) {
|
if ($vsMajor -eq 15) {
|
||||||
$msBuild = "$vsPath\MSBuild\Current\Bin"
|
|
||||||
}
|
|
||||||
elseif ($vsMajor -eq 15) {
|
|
||||||
$msBuild = "$vsPath\MSBuild\$vsMajor.0\Bin"
|
$msBuild = "$vsPath\MSBuild\$vsMajor.0\Bin"
|
||||||
}
|
}
|
||||||
elseif ($vsMajor -eq 14) {
|
elseif ($vsMajor -eq 14) {
|
||||||
|
|||||||
@@ -195,10 +195,6 @@ function Compile-Umbraco
|
|||||||
{
|
{
|
||||||
$toolsVersion = "15.0"
|
$toolsVersion = "15.0"
|
||||||
}
|
}
|
||||||
if ($uenv.VisualStudio.Major -eq 16)
|
|
||||||
{
|
|
||||||
$toolsVersion = "Current"
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host ">> Compile Umbraco"
|
Write-Host ">> Compile Umbraco"
|
||||||
Write-Host "Logging to $tmp\msbuild.umbraco.log"
|
Write-Host "Logging to $tmp\msbuild.umbraco.log"
|
||||||
|
|||||||
@@ -1,116 +1,107 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||||
<metadata minClientVersion="3.4.4">
|
<metadata minClientVersion="3.4.4">
|
||||||
<id>UmbracoCms.Core</id>
|
<id>UmbracoCms.Core</id>
|
||||||
<version>7.0.0</version>
|
<version>7.0.0</version>
|
||||||
<title>Umbraco Cms Core Binaries</title>
|
<title>Umbraco Cms Core Binaries</title>
|
||||||
<authors>Umbraco HQ</authors>
|
<authors>Umbraco HQ</authors>
|
||||||
<owners>Umbraco HQ</owners>
|
<owners>Umbraco HQ</owners>
|
||||||
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
|
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
|
||||||
<projectUrl>http://umbraco.com/</projectUrl>
|
<projectUrl>http://umbraco.com/</projectUrl>
|
||||||
<iconUrl>http://umbraco.com/media/357769/100px_transparent.png</iconUrl>
|
<iconUrl>http://umbraco.com/media/357769/100px_transparent.png</iconUrl>
|
||||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
<description>Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project.</description>
|
<description>Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project.</description>
|
||||||
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
|
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
|
||||||
<language>en-US</language>
|
<language>en-US</language>
|
||||||
<tags>umbraco</tags>
|
<tags>umbraco</tags>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<group targetFramework="net452">
|
<dependency id="log4net" version="[2.0.8,3.0.0)" />
|
||||||
<dependency id="log4net" version="[2.0.8, 3.0.0)" />
|
<dependency id="Log4Net.Async" version="[2.0.4,3.0.0)" />
|
||||||
<dependency id="Log4Net.Async" version="[2.0.4, 3.0.0)" />
|
<dependency id="Microsoft.AspNet.Mvc" version="[5.2.3,6.0.0)" />
|
||||||
<dependency id="Microsoft.AspNet.Mvc" version="[5.2.7, 6.0.0)" />
|
<dependency id="Microsoft.AspNet.WebApi" version="[5.2.3,6.0.0)" />
|
||||||
<dependency id="Microsoft.AspNet.WebApi" version="[5.2.7, 6.0.0)" />
|
<dependency id="Microsoft.AspNet.Identity.Owin" version="[2.2.1, 3.0.0)" />
|
||||||
<dependency id="Microsoft.AspNet.Identity.Owin" version="[2.2.2, 3.0.0)" />
|
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.2.1, 3.0.0)" />
|
||||||
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.4.1, 3.0.0)" />
|
<dependency id="Microsoft.Owin.Security.Cookies" version="[3.1.0, 4.0.0)" />
|
||||||
<dependency id="Microsoft.Owin.Security.Cookies" version="[4.0.1, 5.0.0)" />
|
<dependency id="Microsoft.Owin.Security.OAuth" version="[3.1.0, 4.0.0)" />
|
||||||
<dependency id="Microsoft.Owin.Security.OAuth" version="[4.0.1, 5.0.0)" />
|
<dependency id="Microsoft.Owin.Host.SystemWeb" version="[3.1.0, 4.0.0)" />
|
||||||
<dependency id="Microsoft.Owin.Host.SystemWeb" version="[4.0.1, 5.0.0)" />
|
<dependency id="MiniProfiler" version="[2.1.0, 3.0.0)" />
|
||||||
<dependency id="MiniProfiler" version="[2.1.0, 3.0.0)" />
|
<dependency id="HtmlAgilityPack" version="[1.4.9.5, 2.0.0)" />
|
||||||
<dependency id="HtmlAgilityPack" version="[1.8.8, 2.0.0)" />
|
<dependency id="Lucene.Net" version="[2.9.4.1, 3.0.0.0)" />
|
||||||
<dependency id="Lucene.Net" version="[2.9.4.1, 3.0.0.0)" />
|
<dependency id="MySql.Data" version="[6.9.9, 7.0.0)" />
|
||||||
<dependency id="MySql.Data" version="[6.9.9, 7.0.0)" />
|
<dependency id="ClientDependency" version="[1.9.7, 2.0.0)" />
|
||||||
<dependency id="ClientDependency" version="[1.9.7, 2.0.0)" />
|
<dependency id="ClientDependency-Mvc5" version="[1.8.0.0, 2.0.0)" />
|
||||||
<dependency id="ClientDependency-Mvc5" version="[1.8.0.0, 2.0.0)" />
|
<dependency id="AutoMapper" version="[3.3.1, 4.0.0)" />
|
||||||
<dependency id="AutoMapper" version="[3.3.1, 4.0.0)" />
|
<dependency id="Newtonsoft.Json" version="[10.0.2, 11.0.0)" />
|
||||||
<dependency id="Newtonsoft.Json" version="[12.0.2, 13.0.0)" />
|
<dependency id="Examine" version="[0.1.89, 1.0.0)" />
|
||||||
<dependency id="Examine" version="[0.1.90, 1.0.0)" />
|
<dependency id="ImageProcessor" version="[2.5.6, 3.0.0)" />
|
||||||
<dependency id="ImageProcessor" version="[2.7.0.100, 3.0.0)" />
|
<dependency id="ImageProcessor.Web" version="[4.8.7, 5.0.0)" />
|
||||||
<dependency id="ImageProcessor.Web" version="[4.10.0.100, 5.0.0)" />
|
<dependency id="semver" version="[1.1.2, 3.0.0)" />
|
||||||
<dependency id="semver" version="[1.1.2, 3.0.0)" />
|
<!-- Markdown can not be updated due to: https://github.com/hey-red/markdownsharp/issues/71#issuecomment-233585487 -->
|
||||||
<!-- Markdown can not be updated due to: https://github.com/hey-red/markdownsharp/issues/71#issuecomment-233585487 -->
|
<dependency id="Markdown" version="[1.14.7, 2.0.0)" />
|
||||||
<dependency id="Markdown" version="[1.14.7, 2.0.0)" />
|
<dependency id="System.Threading.Tasks.Dataflow" version="[4.7.0, 5.0.0)" />
|
||||||
<dependency id="System.Threading.Tasks.Dataflow" version="[4.9.0, 5.0.0)" />
|
<dependency id="System.ValueTuple" version="[4.4.0, 5.0.0)" />
|
||||||
<dependency id="System.ValueTuple" version="[4.5.0, 5.0.0)" />
|
</dependencies>
|
||||||
</group>
|
</metadata>
|
||||||
</dependencies>
|
<files>
|
||||||
<frameworkAssemblies>
|
<file src="$BuildTmp$\WebApp\bin\businesslogic.dll" target="lib\net45\businesslogic.dll" />
|
||||||
<frameworkAssembly assemblyName="System.Configuration" targetFramework="net452" />
|
<file src="$BuildTmp$\WebApp\bin\businesslogic.xml" target="lib\net45\businesslogic.xml" />
|
||||||
<frameworkAssembly assemblyName="System.IO.Compression.FileSystem" targetFramework="net452" />
|
<file src="$BuildTmp$\WebApp\bin\cms.dll" target="lib\net45\cms.dll" />
|
||||||
<frameworkAssembly assemblyName="System.Web" targetFramework="net452" />
|
<file src="$BuildTmp$\WebApp\bin\cms.xml" target="lib\net45\cms.xml" />
|
||||||
<frameworkAssembly assemblyName="System.Net.Http" targetFramework="net452" />
|
<file src="$BuildTmp$\WebApp\bin\controls.dll" target="lib\net45\controls.dll" />
|
||||||
<frameworkAssembly assemblyName="System.Drawing" targetFramework="net452" />
|
<file src="$BuildTmp$\WebApp\bin\controls.xml" target="lib\net45\controls.xml" />
|
||||||
</frameworkAssemblies>
|
<file src="$BuildTmp$\WebApp\bin\interfaces.dll" target="lib\net45\interfaces.dll" />
|
||||||
</metadata>
|
<file src="$BuildTmp$\WebApp\bin\interfaces.xml" target="lib\net45\interfaces.xml" />
|
||||||
<files>
|
<file src="$BuildTmp$\WebApp\bin\log4net.dll" target="lib\net45\log4net.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\businesslogic.dll" target="lib\net452\businesslogic.dll" />
|
<file src="$BuildTmp$\WebApp\bin\Microsoft.ApplicationBlocks.Data.dll" target="lib\net45\Microsoft.ApplicationBlocks.Data.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\businesslogic.xml" target="lib\net452\businesslogic.xml" />
|
<file src="$BuildTmp$\WebApp\bin\SQLCE4Umbraco.dll" target="lib\net45\SQLCE4Umbraco.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\cms.dll" target="lib\net452\cms.dll" />
|
<file src="$BuildTmp$\WebApp\bin\SQLCE4Umbraco.xml" target="lib\net45\SQLCE4Umbraco.xml" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\cms.xml" target="lib\net452\cms.xml" />
|
<file src="$BuildTmp$\WebApp\bin\System.Data.SqlServerCe.dll" target="lib\net45\System.Data.SqlServerCe.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\controls.dll" target="lib\net452\controls.dll" />
|
<file src="$BuildTmp$\WebApp\bin\System.Data.SqlServerCe.Entity.dll" target="lib\net45\System.Data.SqlServerCe.Entity.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\controls.xml" target="lib\net452\controls.xml" />
|
<file src="$BuildTmp$\WebApp\bin\TidyNet.dll" target="lib\net45\TidyNet.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\interfaces.dll" target="lib\net452\interfaces.dll" />
|
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.dll" target="lib\net45\Umbraco.Core.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\interfaces.xml" target="lib\net452\interfaces.xml" />
|
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\net45\Umbraco.Core.xml" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\log4net.dll" target="lib\net452\log4net.dll" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.DataLayer.dll" target="lib\net45\umbraco.DataLayer.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\Microsoft.ApplicationBlocks.Data.dll" target="lib\net452\Microsoft.ApplicationBlocks.Data.dll" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.DataLayer.xml" target="lib\net45\umbraco.DataLayer.xml" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\SQLCE4Umbraco.dll" target="lib\net452\SQLCE4Umbraco.dll" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.dll" target="lib\net45\umbraco.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\SQLCE4Umbraco.xml" target="lib\net452\SQLCE4Umbraco.xml" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.xml" target="lib\net45\umbraco.xml" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\System.Data.SqlServerCe.dll" target="lib\net452\System.Data.SqlServerCe.dll" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.editorControls.dll" target="lib\net45\umbraco.editorControls.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\System.Data.SqlServerCe.Entity.dll" target="lib\net452\System.Data.SqlServerCe.Entity.dll" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.editorControls.xml" target="lib\net45\umbraco.editorControls.xml" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\TidyNet.dll" target="lib\net452\TidyNet.dll" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.MacroEngines.dll" target="lib\net45\umbraco.MacroEngines.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.dll" target="lib\net452\Umbraco.Core.dll" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.MacroEngines.xml" target="lib\net45\umbraco.MacroEngines.xml" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\net452\Umbraco.Core.xml" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.providers.dll" target="lib\net45\umbraco.providers.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.DataLayer.dll" target="lib\net452\umbraco.DataLayer.dll" />
|
<file src="$BuildTmp$\WebApp\bin\umbraco.providers.xml" target="lib\net45\umbraco.providers.xml" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.DataLayer.xml" target="lib\net452\umbraco.DataLayer.xml" />
|
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.dll" target="lib\net45\Umbraco.Web.UI.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.dll" target="lib\net452\umbraco.dll" />
|
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.xml" target="lib\net45\Umbraco.Web.UI.xml" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.xml" target="lib\net452\umbraco.xml" />
|
<file src="$BuildTmp$\WebApp\bin\UmbracoExamine.dll" target="lib\net45\UmbracoExamine.dll" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.editorControls.dll" target="lib\net452\umbraco.editorControls.dll" />
|
<file src="$BuildTmp$\WebApp\bin\UmbracoExamine.xml" target="lib\net45\UmbracoExamine.xml" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.editorControls.xml" target="lib\net452\umbraco.editorControls.xml" />
|
<file src="tools\install.core.ps1" target="tools\install.ps1" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.MacroEngines.dll" target="lib\net452\umbraco.MacroEngines.dll" />
|
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.MacroEngines.xml" target="lib\net452\umbraco.MacroEngines.xml" />
|
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.providers.dll" target="lib\net452\umbraco.providers.dll" />
|
|
||||||
<file src="$BuildTmp$\WebApp\bin\umbraco.providers.xml" target="lib\net452\umbraco.providers.xml" />
|
|
||||||
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.dll" target="lib\net452\Umbraco.Web.UI.dll" />
|
|
||||||
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.xml" target="lib\net452\Umbraco.Web.UI.xml" />
|
|
||||||
<file src="$BuildTmp$\WebApp\bin\UmbracoExamine.dll" target="lib\net452\UmbracoExamine.dll" />
|
|
||||||
<file src="$BuildTmp$\WebApp\bin\UmbracoExamine.xml" target="lib\net452\UmbracoExamine.xml" />
|
|
||||||
<file src="tools\install.core.ps1" target="tools\install.ps1" />
|
|
||||||
|
|
||||||
<!-- Added to be able to produce a symbols package -->
|
<!-- Added to be able to produce a symbols package -->
|
||||||
<file src="$BuildTmp$\bin\SQLCE4Umbraco.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\SQLCE4Umbraco.pdb" target="lib" />
|
||||||
<file src="..\..\src\SQLCE4Umbraco\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\SQLCE4Umbraco" />
|
<file src="..\..\src\SQLCE4Umbraco\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\SQLCE4Umbraco" />
|
||||||
<file src="$BuildTmp$\bin\businesslogic.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\businesslogic.pdb" target="lib" />
|
||||||
<file src="..\..\src\umbraco.businesslogic\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.businesslogic" />
|
<file src="..\..\src\umbraco.businesslogic\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.businesslogic" />
|
||||||
<file src="$BuildTmp$\bin\cms.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\cms.pdb" target="lib" />
|
||||||
<file src="..\..\src\umbraco.cms\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.cms" />
|
<file src="..\..\src\umbraco.cms\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.cms" />
|
||||||
<file src="$BuildTmp$\bin\controls.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\controls.pdb" target="lib" />
|
||||||
<file src="..\..\src\umbraco.controls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.controls" />
|
<file src="..\..\src\umbraco.controls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.controls" />
|
||||||
<file src="$BuildTmp$\bin\interfaces.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\interfaces.pdb" target="lib" />
|
||||||
<file src="..\..\src\umbraco.interfaces\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.interfaces" />
|
<file src="..\..\src\umbraco.interfaces\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.interfaces" />
|
||||||
<file src="$BuildTmp$\bin\Umbraco.Core.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\Umbraco.Core.pdb" target="lib" />
|
||||||
<file src="..\..\src\Umbraco.Core\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Core" />
|
<file src="..\..\src\Umbraco.Core\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Core" />
|
||||||
<file src="$BuildTmp$\bin\umbraco.DataLayer.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\umbraco.DataLayer.pdb" target="lib" />
|
||||||
<file src="..\..\src\umbraco.datalayer\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.datalayer" />
|
<file src="..\..\src\umbraco.datalayer\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.datalayer" />
|
||||||
<file src="$BuildTmp$\bin\umbraco.editorControls.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\umbraco.editorControls.pdb" target="lib" />
|
||||||
<file src="..\..\src\umbraco.editorControls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.editorControls" />
|
<file src="..\..\src\umbraco.editorControls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.editorControls" />
|
||||||
<file src="$BuildTmp$\bin\umbraco.MacroEngines.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\umbraco.MacroEngines.pdb" target="lib" />
|
||||||
<file src="..\..\src\umbraco.MacroEngines\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.MacroEngines" />
|
<file src="..\..\src\umbraco.MacroEngines\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.MacroEngines" />
|
||||||
<file src="$BuildTmp$\bin\umbraco.providers.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\umbraco.providers.pdb" target="lib" />
|
||||||
<file src="..\..\src\umbraco.providers\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.providers" />
|
<file src="..\..\src\umbraco.providers\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.providers" />
|
||||||
<file src="$BuildTmp$\bin\umbraco.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\umbraco.pdb" target="lib" />
|
||||||
<file src="..\..\src\Umbraco.Web\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web" />
|
<file src="..\..\src\Umbraco.Web\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web" />
|
||||||
<file src="$BuildTmp$\bin\Umbraco.Web.UI.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\Umbraco.Web.UI.pdb" target="lib" />
|
||||||
<file src="..\..\src\Umbraco.Web.UI\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web.UI" />
|
<file src="..\..\src\Umbraco.Web.UI\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web.UI" />
|
||||||
<file src="$BuildTmp$\bin\UmbracoExamine.pdb" target="lib" />
|
<file src="$BuildTmp$\bin\UmbracoExamine.pdb" target="lib" />
|
||||||
<file src="..\..\src\UmbracoExamine\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\UmbracoExamine" />
|
<file src="..\..\src\UmbracoExamine\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\UmbracoExamine" />
|
||||||
</files>
|
</files>
|
||||||
</package>
|
</package>
|
||||||
|
|||||||
@@ -1,56 +1,54 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
||||||
<metadata minClientVersion="3.4.4">
|
<metadata minClientVersion="3.4.4">
|
||||||
<id>UmbracoCms</id>
|
<id>UmbracoCms</id>
|
||||||
<version>7.0.0</version>
|
<version>7.0.0</version>
|
||||||
<title>Umbraco Cms</title>
|
<title>Umbraco Cms</title>
|
||||||
<authors>Umbraco HQ</authors>
|
<authors>Umbraco HQ</authors>
|
||||||
<owners>Umbraco HQ</owners>
|
<owners>Umbraco HQ</owners>
|
||||||
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
|
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
|
||||||
<projectUrl>http://umbraco.com/</projectUrl>
|
<projectUrl>http://umbraco.com/</projectUrl>
|
||||||
<iconUrl>http://umbraco.com/media/357769/100px_transparent.png</iconUrl>
|
<iconUrl>http://umbraco.com/media/357769/100px_transparent.png</iconUrl>
|
||||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
<description>Installs Umbraco Cms in your Visual Studio ASP.NET project</description>
|
<description>Installs Umbraco Cms in your Visual Studio ASP.NET project</description>
|
||||||
<summary>Installs Umbraco Cms in your Visual Studio ASP.NET project</summary>
|
<summary>Installs Umbraco Cms in your Visual Studio ASP.NET project</summary>
|
||||||
<language>en-US</language>
|
<language>en-US</language>
|
||||||
<tags>umbraco</tags>
|
<tags>umbraco</tags>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<group targetFramework="net452">
|
<dependency id="UmbracoCms.Core" version="[$version$]" />
|
||||||
<dependency id="UmbracoCms.Core" version="[$version$]" />
|
<dependency id="Newtonsoft.Json" version="[10.0.2, 11.0.0)" />
|
||||||
<dependency id="Newtonsoft.Json" version="[12.0.2, 13.0.0)" />
|
<dependency id="Umbraco.ModelsBuilder" version="[3.0.10, 4.0.0)" />
|
||||||
<dependency id="Umbraco.ModelsBuilder" version="[3.0.10, 4.0.0)" />
|
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.2.1, 3.0.0)" />
|
||||||
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.4.1, 3.0.0)" />
|
<dependency id="ImageProcessor.Web.Config" version="[2.3.1, 3.0.0)" />
|
||||||
<dependency id="ImageProcessor.Web.Config" version="[2.5.0.100, 3.0.0)" />
|
<dependency id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="[2.0.0, 3.0.0)" />
|
||||||
<dependency id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="[2.0.1, 3.0.0)" />
|
</dependencies>
|
||||||
</group>
|
</metadata>
|
||||||
</dependencies>
|
<files>
|
||||||
</metadata>
|
<file src="$BuildTmp$\Configs\**" target="Content\Config" exclude="$BuildTmp$\Configs\Web.config.transform" />
|
||||||
<files>
|
<file src="$BuildTmp$\WebApp\Views\**" target="Content\Views" exclude="$BuildTmp$\WebApp\Views\Web.config" />
|
||||||
<file src="$BuildTmp$\Configs\**" target="Content\Config" exclude="$BuildTmp$\Configs\Web.config.transform" />
|
<file src="$BuildTmp$\WebApp\default.aspx" target="Content\default.aspx" />
|
||||||
<file src="$BuildTmp$\WebApp\Views\**" target="Content\Views" exclude="$BuildTmp$\WebApp\Views\Web.config" />
|
<file src="$BuildTmp$\WebApp\Global.asax" target="Content\Global.asax" />
|
||||||
<file src="$BuildTmp$\WebApp\default.aspx" target="Content\default.aspx" />
|
<file src="$BuildTmp$\WebApp\Web.config" target="UmbracoFiles\Web.config" />
|
||||||
<file src="$BuildTmp$\WebApp\Global.asax" target="Content\Global.asax" />
|
<file src="$BuildTmp$\WebApp\App_Browsers\**" target="UmbracoFiles\App_Browsers" />
|
||||||
<file src="$BuildTmp$\WebApp\Web.config" target="UmbracoFiles\Web.config" />
|
<file src="$BuildTmp$\WebApp\bin\amd64\**" target="UmbracoFiles\bin\amd64" />
|
||||||
<file src="$BuildTmp$\WebApp\App_Browsers\**" target="UmbracoFiles\App_Browsers" />
|
<file src="$BuildTmp$\WebApp\bin\x86\**" target="UmbracoFiles\bin\x86" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\amd64\**" target="UmbracoFiles\bin\amd64" />
|
<file src="$BuildTmp$\WebApp\config\splashes\**" target="UmbracoFiles\Config\splashes" />
|
||||||
<file src="$BuildTmp$\WebApp\bin\x86\**" target="UmbracoFiles\bin\x86" />
|
<file src="$BuildTmp$\WebApp\config\BackOfficeTours\**" target="Content\Config\BackOfficeTours" />
|
||||||
<file src="$BuildTmp$\WebApp\config\splashes\**" target="UmbracoFiles\Config\splashes" />
|
<file src="$BuildTmp$\WebApp\umbraco\**" target="UmbracoFiles\umbraco" />
|
||||||
<file src="$BuildTmp$\WebApp\config\BackOfficeTours\**" target="Content\Config\BackOfficeTours" />
|
<file src="$BuildTmp$\WebApp\umbraco_client\**" target="UmbracoFiles\umbraco_client" />
|
||||||
<file src="$BuildTmp$\WebApp\umbraco\**" target="UmbracoFiles\umbraco" />
|
<file src="$BuildTmp$\WebApp\Media\Web.config" target="Content\Media\Web.config" />
|
||||||
<file src="$BuildTmp$\WebApp\umbraco_client\**" target="UmbracoFiles\umbraco_client" />
|
<file src="tools\install.ps1" target="tools\install.ps1" />
|
||||||
<file src="$BuildTmp$\WebApp\Media\Web.config" target="Content\Media\Web.config" />
|
<file src="tools\Readme.txt" target="tools\Readme.txt" />
|
||||||
<file src="tools\install.ps1" target="tools\install.ps1" />
|
<file src="tools\ReadmeUpgrade.txt" target="tools\ReadmeUpgrade.txt" />
|
||||||
<file src="tools\Readme.txt" target="tools\Readme.txt" />
|
<file src="tools\Web.config.install.xdt" target="Content\Web.config.install.xdt" />
|
||||||
<file src="tools\ReadmeUpgrade.txt" target="tools\ReadmeUpgrade.txt" />
|
<file src="tools\applications.config.install.xdt" target="Content\config\applications.config.install.xdt" />
|
||||||
<file src="tools\Web.config.install.xdt" target="Content\Web.config.install.xdt" />
|
<file src="tools\ClientDependency.config.install.xdt" target="Content\config\ClientDependency.config.install.xdt" />
|
||||||
<file src="tools\applications.config.install.xdt" target="Content\config\applications.config.install.xdt" />
|
<file src="tools\Dashboard.config.install.xdt" target="Content\config\Dashboard.config.install.xdt" />
|
||||||
<file src="tools\ClientDependency.config.install.xdt" target="Content\config\ClientDependency.config.install.xdt" />
|
<file src="tools\trees.config.install.xdt" target="Content\config\trees.config.install.xdt" />
|
||||||
<file src="tools\Dashboard.config.install.xdt" target="Content\config\Dashboard.config.install.xdt" />
|
<file src="tools\umbracoSettings.config.install.xdt" target="Content\config\umbracoSettings.config.install.xdt" />
|
||||||
<file src="tools\trees.config.install.xdt" target="Content\config\trees.config.install.xdt" />
|
<file src="tools\Views.Web.config.install.xdt" target="Views\Web.config.install.xdt" />
|
||||||
<file src="tools\umbracoSettings.config.install.xdt" target="Content\config\umbracoSettings.config.install.xdt" />
|
<file src="tools\processing.config.install.xdt" target="Content\Config\imageprocessor\processing.config.install.xdt" />
|
||||||
<file src="tools\Views.Web.config.install.xdt" target="Views\Web.config.install.xdt" />
|
<file src="tools\cache.config.install.xdt" target="Content\Config\imageprocessor\cache.config.install.xdt" />
|
||||||
<file src="tools\processing.config.install.xdt" target="Content\Config\imageprocessor\processing.config.install.xdt" />
|
<file src="build\**" target="build" />
|
||||||
<file src="tools\cache.config.install.xdt" target="Content\Config\imageprocessor\cache.config.install.xdt" />
|
</files>
|
||||||
<file src="build\**" target="build" />
|
|
||||||
</files>
|
|
||||||
</package>
|
</package>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
</configSections>
|
</configSections>
|
||||||
|
|
||||||
<system.web.webPages.razor>
|
<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">
|
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||||
<namespaces>
|
<namespaces>
|
||||||
<add namespace="Umbraco.Web.PublishedContentModels" xdt:Transform="InsertIfMissing" />
|
<add namespace="Umbraco.Web.PublishedContentModels" xdt:Transform="InsertIfMissing" />
|
||||||
@@ -18,13 +18,13 @@
|
|||||||
|
|
||||||
<system.web>
|
<system.web>
|
||||||
<pages
|
<pages
|
||||||
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, 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.7.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.7.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:Locator="Match(pageParserFilterType,pageBaseType,userControlBaseType)"
|
||||||
xdt:Transform="SetAttributes(pageParserFilterType,pageBaseType,userControlBaseType)">
|
xdt:Transform="SetAttributes(pageParserFilterType,pageBaseType,userControlBaseType)">
|
||||||
<controls>
|
<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>
|
</controls>
|
||||||
</pages>
|
</pages>
|
||||||
</system.web>
|
</system.web>
|
||||||
|
|||||||
@@ -324,6 +324,7 @@
|
|||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='HtmlAgilityPack')" xdt:Transform="Remove" />
|
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='HtmlAgilityPack')" xdt:Transform="Remove" />
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='AutoMapper')" xdt:Transform="Remove" />
|
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='AutoMapper')" xdt:Transform="Remove" />
|
||||||
|
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Net.Http')" xdt:Transform="Remove" />
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Newtonsoft.Json')" xdt:Transform="Remove" />
|
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Newtonsoft.Json')" xdt:Transform="Remove" />
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.Mvc')" xdt:Transform="Remove" />
|
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.Mvc')" xdt:Transform="Remove" />
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.WebPages.Razor')" xdt:Transform="Remove" />
|
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.WebPages.Razor')" xdt:Transform="Remove" />
|
||||||
@@ -336,9 +337,6 @@
|
|||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.CodeAnalysis.CSharp')" xdt:Transform="Remove" />
|
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.CodeAnalysis.CSharp')" xdt:Transform="Remove" />
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='log4net')" xdt:Transform="Remove" />
|
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='log4net')" xdt:Transform="Remove" />
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Data.SqlServerCe')" xdt:Transform="Remove" />
|
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Data.SqlServerCe')" xdt:Transform="Remove" />
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.CodeDom.Providers.DotNetCompilerPlatform')" xdt:Transform="Remove" />
|
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.AspNet.SignalR.Core')" xdt:Transform="Remove" />
|
|
||||||
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.Http.WebHost')" xdt:Transform="Remove" />
|
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
|
|
||||||
@@ -346,7 +344,7 @@
|
|||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral" />
|
<assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-1.8.8.0" newVersion="1.8.8.0" />
|
<bindingRedirect oldVersion="0.0.0.0-1.4.9.5" newVersion="1.4.9.5" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="AutoMapper" publicKeyToken="be96cd2c38ef1005" culture="neutral" />
|
<assemblyIdentity name="AutoMapper" publicKeyToken="be96cd2c38ef1005" culture="neutral" />
|
||||||
@@ -358,11 +356,11 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
|
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
|
||||||
@@ -370,27 +368,27 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
<dependentAssembly xdt:Transform="Insert">
|
||||||
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral"/>
|
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral"/>
|
||||||
@@ -400,18 +398,6 @@
|
|||||||
<assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845DCD8080CC91" culture="neutral"/>
|
<assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845DCD8080CC91" culture="neutral"/>
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1"/>
|
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1"/>
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
|
||||||
<assemblyIdentity name="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
|
||||||
<assemblyIdentity name="Microsoft.AspNet.SignalR.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-2.4.1.0" newVersion="2.4.1.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly xdt:Transform="Insert">
|
|
||||||
<assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
|
|
||||||
|
|||||||
@@ -3,57 +3,57 @@
|
|||||||
[string]$Directory
|
[string]$Directory
|
||||||
)
|
)
|
||||||
$workingDirectory = $Directory
|
$workingDirectory = $Directory
|
||||||
CD "$($workingDirectory)"
|
CD $workingDirectory
|
||||||
|
|
||||||
# Clone repo
|
# Clone repo
|
||||||
$fullGitUrl = "https://$($env:GIT_URL)/$($env:GIT_REPOSITORYNAME).git"
|
$fullGitUrl = "https://$env:GIT_URL/$env:GIT_REPOSITORYNAME.git"
|
||||||
git clone $($fullGitUrl) $($env:GIT_REPOSITORYNAME) 2>&1 | % { $_.ToString() }
|
git clone $fullGitUrl 2>&1 | % { $_.ToString() }
|
||||||
|
|
||||||
# Remove everything so that unzipping the release later will update everything
|
# Remove everything so that unzipping the release later will update everything
|
||||||
# Don't remove the readme file nor the git directory
|
# Don't remove the readme file nor the git directory
|
||||||
Write-Host "Cleaning up git directory before adding new version"
|
Write-Host "Cleaning up git directory before adding new version"
|
||||||
Remove-Item -Recurse "$($workingDirectory)\$($env:GIT_REPOSITORYNAME)\*" -Exclude README.md,.git
|
Remove-Item -Recurse $workingDirectory\$env:GIT_REPOSITORYNAME\* -Exclude README.md,.git
|
||||||
|
|
||||||
# Find release zip
|
# Find release zip
|
||||||
$zipsDir = "$($workingDirectory)\$($env:BUILD_DEFINITIONNAME)\zips"
|
$zipsDir = "$workingDirectory\$env:BUILD_DEFINITIONNAME\zips"
|
||||||
$pattern = "UmbracoCms.([0-9]{1,2}.[0-9]{1,3}.[0-9]{1,3}).zip"
|
$pattern = "UmbracoCms.([0-9]{1,2}.[0-9]{1,3}.[0-9]{1,3}).zip"
|
||||||
Write-Host "Searching for Umbraco release files in $($zipsDir) for a file with pattern $($pattern)"
|
Write-Host "Searching for Umbraco release files in $workingDirectory\$zipsDir for a file with pattern $pattern"
|
||||||
$file = (Get-ChildItem "$($zipsDir)" | Where-Object { $_.Name -match "$($pattern)" })
|
$file = (Get-ChildItem $zipsDir | Where-Object { $_.Name -match "$pattern" })
|
||||||
|
|
||||||
if($file)
|
if($file)
|
||||||
{
|
{
|
||||||
# Get release name
|
# Get release name
|
||||||
$version = [regex]::Match($($file.Name), $($pattern)).captures.groups[1].value
|
$version = [regex]::Match($file.Name, $pattern).captures.groups[1].value
|
||||||
$releaseName = "Umbraco $($version)"
|
$releaseName = "Umbraco $version"
|
||||||
Write-Host "Found $($releaseName)"
|
Write-Host "Found $releaseName"
|
||||||
|
|
||||||
# Unzip into repository to update release
|
# Unzip into repository to update release
|
||||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||||
Write-Host "Unzipping $($file.FullName) to $($workingDirectory)\$($env:GIT_REPOSITORYNAME)"
|
Write-Host "Unzipping $($file.FullName) to $workingDirectory\$env:GIT_REPOSITORYNAME"
|
||||||
[System.IO.Compression.ZipFile]::ExtractToDirectory("$($file.FullName)", "$($workingDirectory)\$($env:GIT_REPOSITORYNAME)")
|
[System.IO.Compression.ZipFile]::ExtractToDirectory("$($file.FullName)", "$workingDirectory\$env:GIT_REPOSITORYNAME")
|
||||||
|
|
||||||
# Telling git who we are
|
# Telling git who we are
|
||||||
git config --global user.email "coffee@umbraco.com" 2>&1 | % { $_.ToString() }
|
git config --global user.email "coffee@umbraco.com" 2>&1 | % { $_.ToString() }
|
||||||
git config --global user.name "Umbraco HQ" 2>&1 | % { $_.ToString() }
|
git config --global user.name "Umbraco HQ" 2>&1 | % { $_.ToString() }
|
||||||
|
|
||||||
# Commit
|
# Commit
|
||||||
CD "$($workingDirectory)\$($env:GIT_REPOSITORYNAME)"
|
CD $env:GIT_REPOSITORYNAME
|
||||||
Write-Host "Committing Umbraco $($version) Release from Build Output"
|
Write-Host "Committing Umbraco $version Release from Build Output"
|
||||||
|
|
||||||
git add . 2>&1 | % { $_.ToString() }
|
git add . 2>&1 | % { $_.ToString() }
|
||||||
git commit -m " Release $($releaseName) from Build Output" 2>&1 | % { $_.ToString() }
|
git commit -m " Release $releaseName from Build Output" 2>&1 | % { $_.ToString() }
|
||||||
|
|
||||||
# Tag the release
|
# Tag the release
|
||||||
git tag -a "v$($version)" -m "v$($version)"
|
git tag -a "v$version" -m "v$version"
|
||||||
|
|
||||||
# Push release to master
|
# Push release to master
|
||||||
$fullGitAuthUrl = "https://$($env:GIT_USERNAME):$($GitHubPersonalAccessToken)@$($env:GIT_URL)/$($env:GIT_REPOSITORYNAME).git"
|
$fullGitAuthUrl = "https://$($env:GIT_USERNAME):$GitHubPersonalAccessToken@$env:GIT_URL/$env:GIT_REPOSITORYNAME.git"
|
||||||
git push $($fullGitAuthUrl) 2>&1 | % { $_.ToString() }
|
git push $fullGitAuthUrl 2>&1 | % { $_.ToString() }
|
||||||
|
|
||||||
#Push tag to master
|
#Push tag to master
|
||||||
git push $($fullGitAuthUrl) --tags 2>&1 | % { $_.ToString() }
|
git push $fullGitAuthUrl --tags 2>&1 | % { $_.ToString() }
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Write-Error "Umbraco release file not found, searched in $($workingDirectory)\$($zipsDir) for a file with pattern $($pattern) - canceling"
|
Write-Error "Umbraco release file not found, searched in $workingDirectory\$zipsDir for a file with pattern $pattern - cancelling"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>SQLCE4Umbraco</RootNamespace>
|
<RootNamespace>SQLCE4Umbraco</RootNamespace>
|
||||||
<AssemblyName>SQLCE4Umbraco</AssemblyName>
|
<AssemblyName>SQLCE4Umbraco</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<SccProjectName>
|
<SccProjectName>
|
||||||
</SccProjectName>
|
</SccProjectName>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
@@ -16,19 +16,19 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
|
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
|
||||||
@@ -36,4 +36,4 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /></startup></configuration>
|
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup></configuration>
|
||||||
|
|||||||
+2
-2
@@ -11,5 +11,5 @@ using System.Resources;
|
|||||||
|
|
||||||
[assembly: AssemblyVersion("1.0.*")]
|
[assembly: AssemblyVersion("1.0.*")]
|
||||||
|
|
||||||
[assembly: AssemblyFileVersion("7.15.1")]
|
[assembly: AssemblyFileVersion("7.13.0")]
|
||||||
[assembly: AssemblyInformationalVersion("7.15.1")]
|
[assembly: AssemblyInformationalVersion("7.13.0")]
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Configuration
|
|||||||
{
|
{
|
||||||
public class UmbracoVersion
|
public class UmbracoVersion
|
||||||
{
|
{
|
||||||
private static readonly Version Version = new Version("7.15.1");
|
private static readonly Version Version = new Version("7.13.0");
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the current version of Umbraco.
|
/// Gets the current version of Umbraco.
|
||||||
|
|||||||
@@ -1,295 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace Umbraco.Core
|
|
||||||
{
|
|
||||||
public static partial class Constants
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Defines the identifiers for Umbraco data types as constants for easy centralized access/management.
|
|
||||||
/// </summary>
|
|
||||||
internal static class DataTypes
|
|
||||||
{
|
|
||||||
|
|
||||||
public static class ReservedPreValueKeys
|
|
||||||
{
|
|
||||||
public const string IgnoreUserStartNodes = "ignoreUserStartNodes";
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Content Picker as string
|
|
||||||
/// </summary>
|
|
||||||
public const string ContentPicker = "FD1E0DA5-5606-4862-B679-5D0CF3A52A59";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Content Picker
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid ContentPickerGuid = new Guid(ContentPicker);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Member Picker as string
|
|
||||||
/// </summary>
|
|
||||||
public const string MemberPicker = "1EA2E01F-EBD8-4CE1-8D71-6B1149E63548";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Member Picker
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid MemberPickerGuid = new Guid(MemberPicker);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Media Picker as string
|
|
||||||
/// </summary>
|
|
||||||
public const string MediaPicker = "135D60E0-64D9-49ED-AB08-893C9BA44AE5";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Media Picker
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid MediaPickerGuid = new Guid(MediaPicker);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Multiple Media Picker as string
|
|
||||||
/// </summary>
|
|
||||||
public const string MultipleMediaPicker = "9DBBCBBB-2327-434A-B355-AF1B84E5010A";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Multiple Media Picker
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid MultipleMediaPickerGuid = new Guid(MultipleMediaPicker);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Related Links as string
|
|
||||||
/// </summary>
|
|
||||||
public const string RelatedLinks = "B4E3535A-1753-47E2-8568-602CF8CFEE6F";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Related Links
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid RelatedLinksGuid = new Guid(RelatedLinks);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Member as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Member = "d59be02f-1df9-4228-aa1e-01917d806cda";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Member
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid MemberGuid = new Guid(Member);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Image Cropper as string
|
|
||||||
/// </summary>
|
|
||||||
public const string ImageCropper = "1df9f033-e6d4-451f-b8d2-e0cbc50a836f";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Image Cropper
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid ImageCropperGuid = new Guid(ImageCropper);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Tags as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Tags = "b6b73142-b9c1-4bf8-a16d-e1c23320b549";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Tags
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid TagsGuid = new Guid(Tags);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for List View - Content as string
|
|
||||||
/// </summary>
|
|
||||||
public const string ListViewContent = "C0808DD3-8133-4E4B-8CE8-E2BEA84A96A4";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for List View - Content
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid ListViewContentGuid = new Guid(ListViewContent);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for List View - Media as string
|
|
||||||
/// </summary>
|
|
||||||
public const string ListViewMedia = "3A0156C4-3B8C-4803-BDC1-6871FAA83FFF";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for List View - Media
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid ListViewMediaGuid = new Guid(ListViewMedia);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for List View - Members as string
|
|
||||||
/// </summary>
|
|
||||||
public const string ListViewMembers = "AA2C52A0-CE87-4E65-A47C-7DF09358585D";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for List View - Members
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid ListViewMembersGuid = new Guid(ListViewMembers);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Date Picker with time as string
|
|
||||||
/// </summary>
|
|
||||||
public const string DatePickerWithTime = "e4d66c0f-b935-4200-81f0-025f7256b89a";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Date Picker with time
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid DatePickerWithTimeGuid = new Guid(DatePickerWithTime);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Approved Color as string
|
|
||||||
/// </summary>
|
|
||||||
public const string ApprovedColor = "0225af17-b302-49cb-9176-b9f35cab9c17";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Approved Color
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid ApprovedColorGuid = new Guid(ApprovedColor);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Dropdown multiple as string
|
|
||||||
/// </summary>
|
|
||||||
public const string DropdownMultiple = "f38f0ac7-1d27-439c-9f3f-089cd8825a53";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Dropdown multiple
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid DropdownMultipleGuid = new Guid(DropdownMultiple);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Radiobox as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Radiobox = "bb5f57c9-ce2b-4bb9-b697-4caca783a805";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Radiobox
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid RadioboxGuid = new Guid(Radiobox);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Date Picker as string
|
|
||||||
/// </summary>
|
|
||||||
public const string DatePicker = "5046194e-4237-453c-a547-15db3a07c4e1";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Date Picker
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid DatePickerGuid = new Guid(DatePicker);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Dropdown as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Dropdown = "0b6a45e7-44ba-430d-9da5-4e46060b9e03";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Dropdown
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid DropdownGuid = new Guid(Dropdown);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Checkbox list as string
|
|
||||||
/// </summary>
|
|
||||||
public const string CheckboxList = "fbaf13a8-4036-41f2-93a3-974f678c312a";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Checkbox list
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid CheckboxListGuid = new Guid(CheckboxList);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Checkbox as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Checkbox = "92897bc6-a5f3-4ffe-ae27-f2e7e33dda49";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Checkbox
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid CheckboxGuid = new Guid(Checkbox);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Numeric as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Numeric = "2e6d3631-066e-44b8-aec4-96f09099b2b5";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Dropdown
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid NumericGuid = new Guid(Numeric);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Richtext editor as string
|
|
||||||
/// </summary>
|
|
||||||
public const string RichtextEditor = "ca90c950-0aff-4e72-b976-a30b1ac57dad";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Richtext editor
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid RichtextEditorGuid = new Guid(RichtextEditor);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Textstring as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Textstring = "0cc0eba1-9960-42c9-bf9b-60e150b429ae";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Textstring
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid TextstringGuid = new Guid(Textstring);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Textarea as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Textarea = "c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Dropdown
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid TextareaGuid = new Guid(Textarea);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Upload as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Upload = "84c6b441-31df-4ffe-b67e-67d5bc3ae65a";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Upload
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid UploadGuid = new Guid(Upload);
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Label as string
|
|
||||||
/// </summary>
|
|
||||||
public const string Label = "f0bc4bfb-b499-40d6-ba86-058885a5178c";
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Guid for Label
|
|
||||||
/// </summary>
|
|
||||||
public static readonly Guid LabelGuid = new Guid(Label);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -447,11 +447,6 @@ namespace Umbraco.Core
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string NestedContentAlias = "Umbraco.NestedContent";
|
public const string NestedContentAlias = "Umbraco.NestedContent";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Alias for the multi url picker editor.
|
|
||||||
/// </summary>
|
|
||||||
public const string MultiUrlPickerAlias = "Umbraco.MultiUrlPicker";
|
|
||||||
|
|
||||||
public static class PreValueKeys
|
public static class PreValueKeys
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ namespace Umbraco.Core.FileResources {
|
|||||||
// class via a tool like ResGen or Visual Studio.
|
// class via a tool like ResGen or Visual Studio.
|
||||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
// with the /str option, or rebuild your VS project.
|
// with the /str option, or rebuild your VS project.
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class Files {
|
internal class Files {
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
using Newtonsoft.Json;
|
using System;
|
||||||
using Newtonsoft.Json.Linq;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
@@ -295,12 +293,6 @@ namespace Umbraco.Core.IO
|
|||||||
{
|
{
|
||||||
var property = GetProperty(content, propertyTypeAlias);
|
var property = GetProperty(content, propertyTypeAlias);
|
||||||
var svalue = property.Value as string;
|
var svalue = property.Value as string;
|
||||||
if (svalue != null && svalue.DetectIsJson())
|
|
||||||
{
|
|
||||||
// the property value is a JSON serialized image crop data set - grab the "src" property as the file source
|
|
||||||
var jObject = JsonConvert.DeserializeObject<JObject>(svalue);
|
|
||||||
svalue = jObject != null ? jObject.GetValueAsString("src") : svalue;
|
|
||||||
}
|
|
||||||
var oldpath = svalue == null ? null : GetRelativePath(svalue);
|
var oldpath = svalue == null ? null : GetRelativePath(svalue);
|
||||||
var filepath = StoreFile(content, property.PropertyType, filename, filestream, oldpath);
|
var filepath = StoreFile(content, property.PropertyType, filename, filestream, oldpath);
|
||||||
property.Value = GetUrl(filepath);
|
property.Value = GetUrl(filepath);
|
||||||
@@ -365,8 +357,7 @@ namespace Umbraco.Core.IO
|
|||||||
{
|
{
|
||||||
var jpgInfo = ImageFile.FromStream(stream);
|
var jpgInfo = ImageFile.FromStream(stream);
|
||||||
|
|
||||||
if (jpgInfo != null
|
if (jpgInfo.Format != ImageFileFormat.Unknown
|
||||||
&& jpgInfo.Format != ImageFileFormat.Unknown
|
|
||||||
&& jpgInfo.Properties.ContainsKey(ExifTag.PixelYDimension)
|
&& jpgInfo.Properties.ContainsKey(ExifTag.PixelYDimension)
|
||||||
&& jpgInfo.Properties.ContainsKey(ExifTag.PixelXDimension))
|
&& jpgInfo.Properties.ContainsKey(ExifTag.PixelXDimension))
|
||||||
{
|
{
|
||||||
@@ -377,28 +368,21 @@ namespace Umbraco.Core.IO
|
|||||||
return new Size(width, height);
|
return new Size(width, height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
//We will just swallow, just means we can't read exif data, we don't want to log an error either
|
|
||||||
}
|
|
||||||
|
|
||||||
//we have no choice but to try to read in via GDI
|
//we have no choice but to try to read in via GDI
|
||||||
try
|
|
||||||
{
|
|
||||||
using (var image = Image.FromStream(stream))
|
using (var image = Image.FromStream(stream))
|
||||||
{
|
{
|
||||||
|
|
||||||
var fileWidth = image.Width;
|
var fileWidth = image.Width;
|
||||||
var fileHeight = image.Height;
|
var fileHeight = image.Height;
|
||||||
return new Size(fileWidth, fileHeight);
|
return new Size(fileWidth, fileHeight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception)
|
||||||
{
|
{
|
||||||
//We will just swallow, just means we can't read via GDI, we don't want to log an error either
|
//We will just swallow, just means we can't read exif data, we don't want to log an error either
|
||||||
|
return new Size(Constants.Conventions.Media.DefaultSize, Constants.Conventions.Media.DefaultSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Size(Constants.Conventions.Media.DefaultSize, Constants.Conventions.Media.DefaultSize);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -118,9 +118,9 @@ namespace Umbraco.Core.Media.Exif
|
|||||||
/// <param name="encoding">The encoding to be used for text metadata when the source encoding is unknown.</param>
|
/// <param name="encoding">The encoding to be used for text metadata when the source encoding is unknown.</param>
|
||||||
/// <returns>The <see cref="ImageFile"/> created from the file.</returns>
|
/// <returns>The <see cref="ImageFile"/> created from the file.</returns>
|
||||||
public static ImageFile FromStream(Stream stream, Encoding encoding)
|
public static ImageFile FromStream(Stream stream, Encoding encoding)
|
||||||
{
|
{
|
||||||
// JPEG
|
// JPEG
|
||||||
if (JPEGDetector.IsOfType(stream))
|
if(JPEGDetector.IsOfType(stream))
|
||||||
{
|
{
|
||||||
return new JPEGFile(stream, encoding);
|
return new JPEGFile(stream, encoding);
|
||||||
}
|
}
|
||||||
@@ -137,9 +137,8 @@ namespace Umbraco.Core.Media.Exif
|
|||||||
return new SVGFile(stream);
|
return new SVGFile(stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
// We don't know
|
throw new NotValidImageFileException ();
|
||||||
return null;
|
}
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ namespace Umbraco.Core.Media.TypeDetector
|
|||||||
public static bool IsOfType(Stream fileStream)
|
public static bool IsOfType(Stream fileStream)
|
||||||
{
|
{
|
||||||
var header = GetFileHeader(fileStream);
|
var header = GetFileHeader(fileStream);
|
||||||
return header != null && header[0] == 0xff && header[1] == 0xD8;
|
|
||||||
|
return header[0] == 0xff && header[1] == 0xD8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,13 +7,9 @@ namespace Umbraco.Core.Media.TypeDetector
|
|||||||
public static byte[] GetFileHeader(Stream fileStream)
|
public static byte[] GetFileHeader(Stream fileStream)
|
||||||
{
|
{
|
||||||
fileStream.Seek(0, SeekOrigin.Begin);
|
fileStream.Seek(0, SeekOrigin.Begin);
|
||||||
var header = new byte[8];
|
byte[] header = new byte[8];
|
||||||
fileStream.Seek(0, SeekOrigin.Begin);
|
fileStream.Seek(0, SeekOrigin.Begin);
|
||||||
|
|
||||||
// Invalid header
|
|
||||||
if (fileStream.Read(header, 0, header.Length) != header.Length)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
return header;
|
return header;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,17 +7,17 @@ namespace Umbraco.Core.Media.TypeDetector
|
|||||||
{
|
{
|
||||||
public static bool IsOfType(Stream fileStream)
|
public static bool IsOfType(Stream fileStream)
|
||||||
{
|
{
|
||||||
var tiffHeader = GetFileHeader(fileStream);
|
string tiffHeader = GetFileHeader(fileStream);
|
||||||
return tiffHeader != null && tiffHeader == "MM\x00\x2a" || tiffHeader == "II\x2a\x00";
|
|
||||||
|
return tiffHeader == "MM\x00\x2a" || tiffHeader == "II\x2a\x00";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetFileHeader(Stream fileStream)
|
public static string GetFileHeader(Stream fileStream)
|
||||||
{
|
{
|
||||||
var header = RasterizedTypeDetector.GetFileHeader(fileStream);
|
var header = RasterizedTypeDetector.GetFileHeader(fileStream);
|
||||||
if (header == null)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
var tiffHeader = Encoding.ASCII.GetString(header, 0, 4);
|
string tiffHeader = Encoding.ASCII.GetString(header, 0, 4);
|
||||||
|
|
||||||
return tiffHeader;
|
return tiffHeader;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Umbraco.Core.Models
|
|
||||||
{
|
|
||||||
internal static class DataTypeExtensions
|
|
||||||
{
|
|
||||||
private static readonly ISet<Guid> IdsOfBuildInDataTypes = new HashSet<Guid>()
|
|
||||||
{
|
|
||||||
Constants.DataTypes.ContentPickerGuid,
|
|
||||||
Constants.DataTypes.MemberPickerGuid,
|
|
||||||
Constants.DataTypes.MediaPickerGuid,
|
|
||||||
Constants.DataTypes.MultipleMediaPickerGuid,
|
|
||||||
Constants.DataTypes.RelatedLinksGuid,
|
|
||||||
Constants.DataTypes.MemberGuid,
|
|
||||||
Constants.DataTypes.ImageCropperGuid,
|
|
||||||
Constants.DataTypes.TagsGuid,
|
|
||||||
Constants.DataTypes.ListViewContentGuid,
|
|
||||||
Constants.DataTypes.ListViewMediaGuid,
|
|
||||||
Constants.DataTypes.ListViewMembersGuid,
|
|
||||||
Constants.DataTypes.DatePickerWithTimeGuid,
|
|
||||||
Constants.DataTypes.ApprovedColorGuid,
|
|
||||||
Constants.DataTypes.DropdownMultipleGuid,
|
|
||||||
Constants.DataTypes.RadioboxGuid,
|
|
||||||
Constants.DataTypes.DatePickerGuid,
|
|
||||||
Constants.DataTypes.DropdownGuid,
|
|
||||||
Constants.DataTypes.CheckboxListGuid,
|
|
||||||
Constants.DataTypes.CheckboxGuid,
|
|
||||||
Constants.DataTypes.NumericGuid,
|
|
||||||
Constants.DataTypes.RichtextEditorGuid,
|
|
||||||
Constants.DataTypes.TextstringGuid,
|
|
||||||
Constants.DataTypes.TextareaGuid,
|
|
||||||
Constants.DataTypes.UploadGuid,
|
|
||||||
Constants.DataTypes.LabelGuid,
|
|
||||||
};
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns true if this date type is build-in/default.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="dataType">The data type definition.</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static bool IsBuildInDataType(this IDataTypeDefinition dataType)
|
|
||||||
{
|
|
||||||
return IsBuildInDataType(dataType.Key);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns true if this date type is build-in/default.
|
|
||||||
/// </summary>
|
|
||||||
public static bool IsBuildInDataType(Guid key)
|
|
||||||
{
|
|
||||||
return IdsOfBuildInDataTypes.Contains(key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -25,8 +25,6 @@ namespace Umbraco.Core.Models.PublishedContent
|
|||||||
{
|
{
|
||||||
Id = contentType.Id;
|
Id = contentType.Id;
|
||||||
Alias = contentType.Alias;
|
Alias = contentType.Alias;
|
||||||
Name = contentType.Name;
|
|
||||||
Description = contentType.Description;
|
|
||||||
_compositionAliases = new HashSet<string>(contentType.CompositionAliases(), StringComparer.InvariantCultureIgnoreCase);
|
_compositionAliases = new HashSet<string>(contentType.CompositionAliases(), StringComparer.InvariantCultureIgnoreCase);
|
||||||
_propertyTypes = contentType.CompositionPropertyTypes
|
_propertyTypes = contentType.CompositionPropertyTypes
|
||||||
.Select(x => new PublishedPropertyType(this, x))
|
.Select(x => new PublishedPropertyType(this, x))
|
||||||
@@ -35,12 +33,10 @@ namespace Umbraco.Core.Models.PublishedContent
|
|||||||
}
|
}
|
||||||
|
|
||||||
// internal so it can be used for unit tests
|
// internal so it can be used for unit tests
|
||||||
internal PublishedContentType(int id, string alias, string name, string description, IEnumerable<string> compositionAliases, IEnumerable<PublishedPropertyType> propertyTypes)
|
internal PublishedContentType(int id, string alias, IEnumerable<string> compositionAliases, IEnumerable<PublishedPropertyType> propertyTypes)
|
||||||
{
|
{
|
||||||
Id = id;
|
Id = id;
|
||||||
Alias = alias;
|
Alias = alias;
|
||||||
Name = name;
|
|
||||||
Description = description;
|
|
||||||
_compositionAliases = new HashSet<string>(compositionAliases, StringComparer.InvariantCultureIgnoreCase);
|
_compositionAliases = new HashSet<string>(compositionAliases, StringComparer.InvariantCultureIgnoreCase);
|
||||||
_propertyTypes = propertyTypes.ToArray();
|
_propertyTypes = propertyTypes.ToArray();
|
||||||
foreach (var propertyType in _propertyTypes)
|
foreach (var propertyType in _propertyTypes)
|
||||||
@@ -50,7 +46,7 @@ namespace Umbraco.Core.Models.PublishedContent
|
|||||||
|
|
||||||
// create detached content type - ie does not match anything in the DB
|
// create detached content type - ie does not match anything in the DB
|
||||||
internal PublishedContentType(string alias, IEnumerable<string> compositionAliases, IEnumerable<PublishedPropertyType> propertyTypes)
|
internal PublishedContentType(string alias, IEnumerable<string> compositionAliases, IEnumerable<PublishedPropertyType> propertyTypes)
|
||||||
: this(0, alias, string.Empty, string.Empty, compositionAliases, propertyTypes)
|
: this(0, alias, compositionAliases, propertyTypes)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
private void InitializeIndexes()
|
private void InitializeIndexes()
|
||||||
@@ -67,8 +63,6 @@ namespace Umbraco.Core.Models.PublishedContent
|
|||||||
|
|
||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
public string Alias { get; private set; }
|
public string Alias { get; private set; }
|
||||||
public string Name { get; private set; }
|
|
||||||
public string Description { get; private set; }
|
|
||||||
public HashSet<string> CompositionAliases { get { return _compositionAliases; } }
|
public HashSet<string> CompositionAliases { get { return _compositionAliases; } }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -225,5 +225,42 @@ namespace Umbraco.Core.Models
|
|||||||
return clone;
|
return clone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A struction that can be contained in the additional data of an UmbracoEntity representing
|
||||||
|
/// a user defined property
|
||||||
|
/// </summary>
|
||||||
|
public class EntityProperty : IDeepCloneable
|
||||||
|
{
|
||||||
|
public string PropertyEditorAlias { get; set; }
|
||||||
|
public object Value { get; set; }
|
||||||
|
public object DeepClone()
|
||||||
|
{
|
||||||
|
//Memberwise clone on Entity will work since it doesn't have any deep elements
|
||||||
|
// for any sub class this will work for standard properties as well that aren't complex object's themselves.
|
||||||
|
var clone = MemberwiseClone();
|
||||||
|
return clone;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected bool Equals(EntityProperty other)
|
||||||
|
{
|
||||||
|
return PropertyEditorAlias.Equals(other.PropertyEditorAlias) && string.Equals(Value, other.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Equals(object obj)
|
||||||
|
{
|
||||||
|
if (ReferenceEquals(null, obj)) return false;
|
||||||
|
if (ReferenceEquals(this, obj)) return true;
|
||||||
|
if (obj.GetType() != this.GetType()) return false;
|
||||||
|
return Equals((EntityProperty) obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
unchecked
|
||||||
|
{
|
||||||
|
return (PropertyEditorAlias.GetHashCode() * 397) ^ (Value != null ? Value.GetHashCode() : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -195,6 +195,19 @@ namespace Umbraco.Core.Models
|
|||||||
return startNodeIds.Any(x => formattedPath.Contains(string.Concat(",", x, ",")));
|
return startNodeIds.Any(x => formattedPath.Contains(string.Concat(",", x, ",")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static bool IsInBranchOfStartNode(this IUser user, IUmbracoEntity entity, IEntityService entityService, int recycleBinId, out bool hasPathAccess)
|
||||||
|
{
|
||||||
|
switch (recycleBinId)
|
||||||
|
{
|
||||||
|
case Constants.System.RecycleBinMedia:
|
||||||
|
return IsInBranchOfStartNode(entity.Path, user.CalculateMediaStartNodeIds(entityService), user.GetMediaStartNodePaths(entityService), out hasPathAccess);
|
||||||
|
case Constants.System.RecycleBinContent:
|
||||||
|
return IsInBranchOfStartNode(entity.Path, user.CalculateContentStartNodeIds(entityService), user.GetContentStartNodePaths(entityService), out hasPathAccess);
|
||||||
|
default:
|
||||||
|
throw new NotSupportedException("Path access is only determined on content or media");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal static bool IsInBranchOfStartNode(string path, int[] startNodeIds, string[] startNodePaths, out bool hasPathAccess)
|
internal static bool IsInBranchOfStartNode(string path, int[] startNodeIds, string[] startNodePaths, out bool hasPathAccess)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(path)) throw new ArgumentException("Value cannot be null or whitespace.", "path");
|
if (string.IsNullOrWhiteSpace(path)) throw new ArgumentException("Value cannot be null or whitespace.", "path");
|
||||||
|
|||||||
@@ -12,18 +12,14 @@ namespace Umbraco.Core.Persistence.Factories
|
|||||||
{
|
{
|
||||||
internal class UmbracoEntityFactory
|
internal class UmbracoEntityFactory
|
||||||
{
|
{
|
||||||
private static readonly Lazy<string[]> EntityProperties = new Lazy<string[]>(() => typeof(IUmbracoEntity).GetPublicProperties().Select(x => x.Name).ToArray());
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Figure out what extra properties we have that are not on the IUmbracoEntity and add them to additional data
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="entity"></param>
|
|
||||||
/// <param name="originalEntityProperties"></param>
|
|
||||||
internal void AddAdditionalData(UmbracoEntity entity, IDictionary<string, object> originalEntityProperties)
|
internal void AddAdditionalData(UmbracoEntity entity, IDictionary<string, object> originalEntityProperties)
|
||||||
{
|
{
|
||||||
|
var entityProps = typeof(IUmbracoEntity).GetPublicProperties().Select(x => x.Name).ToArray();
|
||||||
|
|
||||||
|
//figure out what extra properties we have that are not on the IUmbracoEntity and add them to additional data
|
||||||
foreach (var k in originalEntityProperties.Keys
|
foreach (var k in originalEntityProperties.Keys
|
||||||
.Select(x => new { orig = x, title = x.ToCleanString(CleanStringType.PascalCase | CleanStringType.Ascii | CleanStringType.ConvertCase) })
|
.Select(x => new { orig = x, title = x.ToCleanString(CleanStringType.PascalCase | CleanStringType.Ascii | CleanStringType.ConvertCase) })
|
||||||
.Where(x => EntityProperties.Value.InvariantContains(x.title) == false))
|
.Where(x => entityProps.InvariantContains(x.title) == false))
|
||||||
{
|
{
|
||||||
entity.AdditionalData[k.title] = originalEntityProperties[k.orig];
|
entity.AdditionalData[k.title] = originalEntityProperties[k.orig];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,36 +116,36 @@ namespace Umbraco.Core.Persistence.Migrations.Initial
|
|||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -1, Trashed = false, ParentId = -1, UserId = 0, Level = 0, Path = "-1", SortOrder = 0, UniqueId = new Guid("916724a5-173d-4619-b97e-b9de133dd6f5"), Text = "SYSTEM DATA: umbraco master root", NodeObjectType = new Guid(Constants.ObjectTypes.SystemRoot), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -1, Trashed = false, ParentId = -1, UserId = 0, Level = 0, Path = "-1", SortOrder = 0, UniqueId = new Guid("916724a5-173d-4619-b97e-b9de133dd6f5"), Text = "SYSTEM DATA: umbraco master root", NodeObjectType = new Guid(Constants.ObjectTypes.SystemRoot), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -20, Trashed = false, ParentId = -1, UserId = 0, Level = 0, Path = "-1,-20", SortOrder = 0, UniqueId = new Guid("0F582A79-1E41-4CF0-BFA0-76340651891A"), Text = "Recycle Bin", NodeObjectType = new Guid(Constants.ObjectTypes.ContentRecycleBin), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -20, Trashed = false, ParentId = -1, UserId = 0, Level = 0, Path = "-1,-20", SortOrder = 0, UniqueId = new Guid("0F582A79-1E41-4CF0-BFA0-76340651891A"), Text = "Recycle Bin", NodeObjectType = new Guid(Constants.ObjectTypes.ContentRecycleBin), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -21, Trashed = false, ParentId = -1, UserId = 0, Level = 0, Path = "-1,-21", SortOrder = 0, UniqueId = new Guid("BF7C7CBC-952F-4518-97A2-69E9C7B33842"), Text = "Recycle Bin", NodeObjectType = new Guid(Constants.ObjectTypes.MediaRecycleBin), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -21, Trashed = false, ParentId = -1, UserId = 0, Level = 0, Path = "-1,-21", SortOrder = 0, UniqueId = new Guid("BF7C7CBC-952F-4518-97A2-69E9C7B33842"), Text = "Recycle Bin", NodeObjectType = new Guid(Constants.ObjectTypes.MediaRecycleBin), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -92, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-92", SortOrder = 35, UniqueId = Constants.DataTypes.LabelGuid, Text = "Label", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -92, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-92", SortOrder = 35, UniqueId = new Guid("f0bc4bfb-b499-40d6-ba86-058885a5178c"), Text = "Label", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -90, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-90", SortOrder = 34, UniqueId = Constants.DataTypes.UploadGuid, Text = "Upload", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -90, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-90", SortOrder = 34, UniqueId = new Guid("84c6b441-31df-4ffe-b67e-67d5bc3ae65a"), Text = "Upload", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -89, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-89", SortOrder = 33, UniqueId = Constants.DataTypes.TextareaGuid, Text = "Textarea", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -89, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-89", SortOrder = 33, UniqueId = new Guid("c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3"), Text = "Textarea", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -88, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-88", SortOrder = 32, UniqueId = Constants.DataTypes.TextstringGuid, Text = "Textstring", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -88, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-88", SortOrder = 32, UniqueId = new Guid("0cc0eba1-9960-42c9-bf9b-60e150b429ae"), Text = "Textstring", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -87, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-87", SortOrder = 4, UniqueId = Constants.DataTypes.RichtextEditorGuid, Text = "Richtext editor", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -87, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-87", SortOrder = 4, UniqueId = new Guid("ca90c950-0aff-4e72-b976-a30b1ac57dad"), Text = "Richtext editor", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -51, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-51", SortOrder = 2, UniqueId = Constants.DataTypes.NumericGuid, Text = "Numeric", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -51, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-51", SortOrder = 2, UniqueId = new Guid("2e6d3631-066e-44b8-aec4-96f09099b2b5"), Text = "Numeric", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -49, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-49", SortOrder = 2, UniqueId = Constants.DataTypes.CheckboxGuid, Text = "Checkbox", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -49, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-49", SortOrder = 2, UniqueId = new Guid("92897bc6-a5f3-4ffe-ae27-f2e7e33dda49"), Text = "Checkbox", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -43, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-43", SortOrder = 2, UniqueId = Constants.DataTypes.CheckboxListGuid, Text = "Checkbox list", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -43, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-43", SortOrder = 2, UniqueId = new Guid("fbaf13a8-4036-41f2-93a3-974f678c312a"), Text = "Checkbox list", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -42, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-42", SortOrder = 2, UniqueId = Constants.DataTypes.DropdownGuid, Text = "Dropdown", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -42, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-42", SortOrder = 2, UniqueId = new Guid("0b6a45e7-44ba-430d-9da5-4e46060b9e03"), Text = "Dropdown", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -41, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-41", SortOrder = 2, UniqueId = Constants.DataTypes.DatePickerGuid, Text = "Date Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -41, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-41", SortOrder = 2, UniqueId = new Guid("5046194e-4237-453c-a547-15db3a07c4e1"), Text = "Date Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -40, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-40", SortOrder = 2, UniqueId = Constants.DataTypes.RadioboxGuid, Text = "Radiobox", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -40, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-40", SortOrder = 2, UniqueId = new Guid("bb5f57c9-ce2b-4bb9-b697-4caca783a805"), Text = "Radiobox", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -39, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-39", SortOrder = 2, UniqueId = Constants.DataTypes.DropdownMultipleGuid, Text = "Dropdown multiple", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -39, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-39", SortOrder = 2, UniqueId = new Guid("f38f0ac7-1d27-439c-9f3f-089cd8825a53"), Text = "Dropdown multiple", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -37, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-37", SortOrder = 2, UniqueId = Constants.DataTypes.ApprovedColorGuid, Text = "Approved Color", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -37, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-37", SortOrder = 2, UniqueId = new Guid("0225af17-b302-49cb-9176-b9f35cab9c17"), Text = "Approved Color", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -36, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-36", SortOrder = 2, UniqueId = Constants.DataTypes.DatePickerWithTimeGuid, Text = "Date Picker with time", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -36, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-36", SortOrder = 2, UniqueId = new Guid("e4d66c0f-b935-4200-81f0-025f7256b89a"), Text = "Date Picker with time", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = Constants.System.DefaultContentListViewDataTypeId, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-95", SortOrder = 2, UniqueId = Constants.DataTypes.ListViewContentGuid, Text = Constants.Conventions.DataTypes.ListViewPrefix + "Content", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = Constants.System.DefaultContentListViewDataTypeId, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-95", SortOrder = 2, UniqueId = new Guid("C0808DD3-8133-4E4B-8CE8-E2BEA84A96A4"), Text = Constants.Conventions.DataTypes.ListViewPrefix + "Content", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = Constants.System.DefaultMediaListViewDataTypeId, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-96", SortOrder = 2, UniqueId = Constants.DataTypes.ListViewMediaGuid, Text = Constants.Conventions.DataTypes.ListViewPrefix + "Media", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = Constants.System.DefaultMediaListViewDataTypeId, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-96", SortOrder = 2, UniqueId = new Guid("3A0156C4-3B8C-4803-BDC1-6871FAA83FFF"), Text = Constants.Conventions.DataTypes.ListViewPrefix + "Media", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = Constants.System.DefaultMembersListViewDataTypeId, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-97", SortOrder = 2, UniqueId = Constants.DataTypes.ListViewMembersGuid, Text = Constants.Conventions.DataTypes.ListViewPrefix + "Members", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = Constants.System.DefaultMembersListViewDataTypeId, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-97", SortOrder = 2, UniqueId = new Guid("AA2C52A0-CE87-4E65-A47C-7DF09358585D"), Text = Constants.Conventions.DataTypes.ListViewPrefix + "Members", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1031, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1031", SortOrder = 2, UniqueId = new Guid("f38bd2d7-65d0-48e6-95dc-87ce06ec2d3d"), Text = Constants.Conventions.MediaTypes.Folder, NodeObjectType = new Guid(Constants.ObjectTypes.MediaType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1031, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1031", SortOrder = 2, UniqueId = new Guid("f38bd2d7-65d0-48e6-95dc-87ce06ec2d3d"), Text = Constants.Conventions.MediaTypes.Folder, NodeObjectType = new Guid(Constants.ObjectTypes.MediaType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1032, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1032", SortOrder = 2, UniqueId = new Guid("cc07b313-0843-4aa8-bbda-871c8da728c8"), Text = Constants.Conventions.MediaTypes.Image, NodeObjectType = new Guid(Constants.ObjectTypes.MediaType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1032, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1032", SortOrder = 2, UniqueId = new Guid("cc07b313-0843-4aa8-bbda-871c8da728c8"), Text = Constants.Conventions.MediaTypes.Image, NodeObjectType = new Guid(Constants.ObjectTypes.MediaType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1033, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1033", SortOrder = 2, UniqueId = new Guid("4c52d8ab-54e6-40cd-999c-7a5f24903e4d"), Text = Constants.Conventions.MediaTypes.File, NodeObjectType = new Guid(Constants.ObjectTypes.MediaType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1033, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1033", SortOrder = 2, UniqueId = new Guid("4c52d8ab-54e6-40cd-999c-7a5f24903e4d"), Text = Constants.Conventions.MediaTypes.File, NodeObjectType = new Guid(Constants.ObjectTypes.MediaType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1041, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1041", SortOrder = 2, UniqueId = Constants.DataTypes.TagsGuid, Text = "Tags", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1041, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1041", SortOrder = 2, UniqueId = new Guid("b6b73142-b9c1-4bf8-a16d-e1c23320b549"), Text = "Tags", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1043, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1043", SortOrder = 2, UniqueId = Constants.DataTypes.ImageCropperGuid, Text = "Image Cropper", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1043, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1043", SortOrder = 2, UniqueId = new Guid("1df9f033-e6d4-451f-b8d2-e0cbc50a836f"), Text = "Image Cropper", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1044, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1044", SortOrder = 0, UniqueId = Constants.DataTypes.MemberGuid, Text = Constants.Conventions.MemberTypes.DefaultAlias, NodeObjectType = new Guid(Constants.ObjectTypes.MemberType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1044, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1044", SortOrder = 0, UniqueId = new Guid("d59be02f-1df9-4228-aa1e-01917d806cda"), Text = Constants.Conventions.MemberTypes.DefaultAlias, NodeObjectType = new Guid(Constants.ObjectTypes.MemberType), CreateDate = DateTime.Now });
|
||||||
|
|
||||||
//New UDI pickers with newer Ids
|
//New UDI pickers with newer Ids
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1046, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1046", SortOrder = 2, UniqueId = Constants.DataTypes.ContentPickerGuid, Text = "Content Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1046, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1046", SortOrder = 2, UniqueId = new Guid("FD1E0DA5-5606-4862-B679-5D0CF3A52A59"), Text = "Content Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1047, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1047", SortOrder = 2, UniqueId = Constants.DataTypes.MemberPickerGuid, Text = "Member Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1047, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1047", SortOrder = 2, UniqueId = new Guid("1EA2E01F-EBD8-4CE1-8D71-6B1149E63548"), Text = "Member Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1048, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1048", SortOrder = 2, UniqueId = Constants.DataTypes.MediaPickerGuid, Text = "Media Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1048, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1048", SortOrder = 2, UniqueId = new Guid("135D60E0-64D9-49ED-AB08-893C9BA44AE5"), Text = "Media Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1049, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1049", SortOrder = 2, UniqueId = Constants.DataTypes.MultipleMediaPickerGuid, Text = "Multiple Media Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1049, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1049", SortOrder = 2, UniqueId = new Guid("9DBBCBBB-2327-434A-B355-AF1B84E5010A"), Text = "Multiple Media Picker", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1050, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1050", SortOrder = 2, UniqueId = Constants.DataTypes.RelatedLinksGuid, Text = "Related Links", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
_database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = 1050, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,1050", SortOrder = 2, UniqueId = new Guid("B4E3535A-1753-47E2-8568-602CF8CFEE6F"), Text = "Related Links", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now });
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CreateUmbracoLockData()
|
private void CreateUmbracoLockData()
|
||||||
|
|||||||
-36
@@ -1,36 +0,0 @@
|
|||||||
using Umbraco.Core.Logging;
|
|
||||||
using Umbraco.Core.Persistence.SqlSyntax;
|
|
||||||
|
|
||||||
namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenFourteenZero
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Migrates member group picker properties from NVarchar to NText. See https://github.com/umbraco/Umbraco-CMS/issues/3268.
|
|
||||||
/// </summary>
|
|
||||||
[Migration("7.14.0", 1, Constants.System.UmbracoMigrationName)]
|
|
||||||
public class UpdateMemberGroupPickerData : MigrationBase
|
|
||||||
{
|
|
||||||
public UpdateMemberGroupPickerData(ISqlSyntaxProvider sqlSyntax, ILogger logger) : base(sqlSyntax, logger)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Up()
|
|
||||||
{
|
|
||||||
// move the data for all member group properties from the NVarchar to the NText column and clear the NVarchar column
|
|
||||||
Execute.Sql($@"UPDATE cmsPropertyData SET dataNtext = dataNvarchar, dataNvarchar = NULL
|
|
||||||
WHERE dataNtext IS NULL AND id IN (
|
|
||||||
SELECT id FROM cmsPropertyData WHERE propertyTypeId in (
|
|
||||||
SELECT id from cmsPropertyType where dataTypeID IN (
|
|
||||||
SELECT nodeId FROM cmsDataType WHERE propertyEditorAlias = '{Constants.PropertyEditors.MemberGroupPickerAlias}'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)");
|
|
||||||
|
|
||||||
// ensure that all exising member group properties are defined as NText
|
|
||||||
Execute.Sql($"UPDATE cmsDataType SET dbType = 'Ntext' WHERE propertyEditorAlias = '{Constants.PropertyEditors.MemberGroupPickerAlias}'");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Down()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -835,62 +835,6 @@ order by umbracoNode.{2}, umbracoNode.parentID, umbracoNode.sortOrder",
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public XmlDocument BuildPreviewXmlCache()
|
|
||||||
{
|
|
||||||
var xmlDoc = new XmlDocument();
|
|
||||||
var doctype = xmlDoc.CreateDocumentType("root", null, null,
|
|
||||||
ApplicationContext.Current.Services.ContentTypeService.GetContentTypesDtd());
|
|
||||||
xmlDoc.AppendChild(doctype);
|
|
||||||
var parent = xmlDoc.CreateElement("root");
|
|
||||||
var pIdAtt = xmlDoc.CreateAttribute("id");
|
|
||||||
pIdAtt.Value = "-1";
|
|
||||||
parent.Attributes.Append(pIdAtt);
|
|
||||||
xmlDoc.AppendChild(parent);
|
|
||||||
|
|
||||||
//Ensure that only nodes that have published versions are selected
|
|
||||||
var sql = string.Format(@"select umbracoNode.id, umbracoNode.parentID, umbracoNode.sortOrder, cmsPreviewXml.{0}, umbracoNode.{1} from umbracoNode
|
|
||||||
inner join cmsPreviewXml on cmsPreviewXml.nodeId = umbracoNode.id and umbracoNode.nodeObjectType = @type
|
|
||||||
inner join cmsDocument on cmsPreviewXml.versionId = cmsDocument.versionId and cmsDocument.newest=1
|
|
||||||
where umbracoNode.trashed = 0
|
|
||||||
order by umbracoNode.{2}, umbracoNode.parentID, umbracoNode.sortOrder",
|
|
||||||
SqlSyntax.GetQuotedColumnName("xml"),
|
|
||||||
SqlSyntax.GetQuotedColumnName("level"),
|
|
||||||
SqlSyntax.GetQuotedColumnName("level"));
|
|
||||||
|
|
||||||
XmlElement last = null;
|
|
||||||
|
|
||||||
//NOTE: Query creates a reader - does not load all into memory
|
|
||||||
foreach (var row in Database.Query<dynamic>(sql, new { type = NodeObjectTypeId }))
|
|
||||||
{
|
|
||||||
string parentId = ((int)row.parentID).ToInvariantString();
|
|
||||||
string xml = row.xml;
|
|
||||||
int sortOrder = row.sortOrder;
|
|
||||||
|
|
||||||
//if the parentid is changing
|
|
||||||
if (last != null && last.GetAttribute("parentID") != parentId)
|
|
||||||
{
|
|
||||||
parent = xmlDoc.GetElementById(parentId);
|
|
||||||
if (parent == null)
|
|
||||||
{
|
|
||||||
//Need to short circuit here, if the parent is not there it means that the parent is unpublished
|
|
||||||
// and therefore the child is not published either so cannot be included in the xml cache
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var xmlDocFragment = xmlDoc.CreateDocumentFragment();
|
|
||||||
xmlDocFragment.InnerXml = xml;
|
|
||||||
|
|
||||||
last = (XmlElement)parent.AppendChild(xmlDocFragment);
|
|
||||||
|
|
||||||
// fix sortOrder - see notes in UpdateSortOrder
|
|
||||||
last.Attributes["sortOrder"].Value = sortOrder.ToInvariantString();
|
|
||||||
}
|
|
||||||
|
|
||||||
return xmlDoc;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public int CountPublished(string contentTypeAlias = null)
|
public int CountPublished(string contentTypeAlias = null)
|
||||||
{
|
{
|
||||||
if (contentTypeAlias.IsNullOrWhiteSpace())
|
if (contentTypeAlias.IsNullOrWhiteSpace())
|
||||||
|
|||||||
@@ -20,22 +20,27 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
/// </remarks>
|
/// </remarks>
|
||||||
internal class EntityRepository : DisposableObjectSlim, IEntityRepository
|
internal class EntityRepository : DisposableObjectSlim, IEntityRepository
|
||||||
{
|
{
|
||||||
|
private readonly IDatabaseUnitOfWork _work;
|
||||||
|
|
||||||
public EntityRepository(IDatabaseUnitOfWork work)
|
public EntityRepository(IDatabaseUnitOfWork work)
|
||||||
{
|
{
|
||||||
UnitOfWork = work;
|
_work = work;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the Unit of Work added to the repository
|
/// Returns the Unit of Work added to the repository
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected internal IDatabaseUnitOfWork UnitOfWork { get; }
|
protected internal IDatabaseUnitOfWork UnitOfWork
|
||||||
|
{
|
||||||
|
get { return _work; }
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Internal for testing purposes
|
/// Internal for testing purposes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal Guid UnitKey
|
internal Guid UnitKey
|
||||||
{
|
{
|
||||||
get { return (Guid)UnitOfWork.Key; }
|
get { return (Guid)_work.Key; }
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Query Methods
|
#region Query Methods
|
||||||
@@ -64,8 +69,75 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
|
|
||||||
IEnumerable<IUmbracoEntity> result;
|
IEnumerable<IUmbracoEntity> result;
|
||||||
|
|
||||||
var pagedResult = UnitOfWork.Database.Page<dynamic>(pageIndex + 1, pageSize, pagedSql);
|
if (isMedia)
|
||||||
result = pagedResult.Items.Select(factory.BuildEntityFromDynamic).Cast<IUmbracoEntity>().ToList();
|
{
|
||||||
|
//Treat media differently for now, as an Entity it will be returned with ALL of it's properties in the AdditionalData bag!
|
||||||
|
var pagedResult = _work.Database.Page<dynamic>(pageIndex + 1, pageSize, pagedSql);
|
||||||
|
|
||||||
|
var ids = pagedResult.Items.Select(x => (int) x.id).InGroupsOf(2000);
|
||||||
|
var entities = pagedResult.Items.Select(factory.BuildEntityFromDynamic).Cast<IUmbracoEntity>().ToList();
|
||||||
|
|
||||||
|
//Now we need to merge in the property data since we need paging and we can't do this the way that the big media query was working before
|
||||||
|
foreach (var idGroup in ids)
|
||||||
|
{
|
||||||
|
var propSql = GetPropertySql(Constants.ObjectTypes.Media)
|
||||||
|
.Where("contentNodeId IN (@ids)", new { ids = idGroup });
|
||||||
|
propSql = (orderDirection == Direction.Descending) ? propSql.OrderByDescending("contentNodeId") : propSql.OrderBy("contentNodeId");
|
||||||
|
|
||||||
|
//This does NOT fetch all data into memory in a list, this will read
|
||||||
|
// over the records as a data reader, this is much better for performance and memory,
|
||||||
|
// but it means that during the reading of this data set, nothing else can be read
|
||||||
|
// from SQL server otherwise we'll get an exception.
|
||||||
|
var allPropertyData = _work.Database.Query<dynamic>(propSql);
|
||||||
|
|
||||||
|
//keep track of the current property data item being enumerated
|
||||||
|
var propertyDataSetEnumerator = allPropertyData.GetEnumerator();
|
||||||
|
var hasCurrent = false; // initially there is no enumerator.Current
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//This must be sorted by node id (which is done by SQL) because this is how we are sorting the query to lookup property types above,
|
||||||
|
// which allows us to more efficiently iterate over the large data set of property values.
|
||||||
|
foreach (var entity in entities)
|
||||||
|
{
|
||||||
|
// assemble the dtos for this def
|
||||||
|
// use the available enumerator.Current if any else move to next
|
||||||
|
while (hasCurrent || propertyDataSetEnumerator.MoveNext())
|
||||||
|
{
|
||||||
|
if (propertyDataSetEnumerator.Current.contentNodeId == entity.Id)
|
||||||
|
{
|
||||||
|
hasCurrent = false; // enumerator.Current is not available
|
||||||
|
|
||||||
|
//the property data goes into the additional data
|
||||||
|
entity.AdditionalData[propertyDataSetEnumerator.Current.propertyTypeAlias] = new UmbracoEntity.EntityProperty
|
||||||
|
{
|
||||||
|
PropertyEditorAlias = propertyDataSetEnumerator.Current.propertyEditorAlias,
|
||||||
|
Value = StringExtensions.IsNullOrWhiteSpace(propertyDataSetEnumerator.Current.dataNtext)
|
||||||
|
? propertyDataSetEnumerator.Current.dataNvarchar
|
||||||
|
: StringExtensions.ConvertToJsonIfPossible(propertyDataSetEnumerator.Current.dataNtext)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hasCurrent = true; // enumerator.Current is available for another def
|
||||||
|
break; // no more propertyDataDto for this def
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
propertyDataSetEnumerator.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result = entities;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var pagedResult = _work.Database.Page<dynamic>(pageIndex + 1, pageSize, pagedSql);
|
||||||
|
result = pagedResult.Items.Select(factory.BuildEntityFromDynamic).Cast<IUmbracoEntity>().ToList();
|
||||||
|
}
|
||||||
|
|
||||||
//The total items from the PetaPoco page query will be wrong due to the Outer join used on parent, depending on the search this will
|
//The total items from the PetaPoco page query will be wrong due to the Outer join used on parent, depending on the search this will
|
||||||
//return duplicate results when the COUNT is used in conjuction with it, so we need to get the total on our own.
|
//return duplicate results when the COUNT is used in conjuction with it, so we need to get the total on our own.
|
||||||
@@ -87,7 +159,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
var translatorCount = new SqlTranslator<IUmbracoEntity>(sqlCountClause, query);
|
var translatorCount = new SqlTranslator<IUmbracoEntity>(sqlCountClause, query);
|
||||||
var countSql = translatorCount.Translate();
|
var countSql = translatorCount.Translate();
|
||||||
|
|
||||||
totalRecords = UnitOfWork.Database.ExecuteScalar<int>(countSql);
|
totalRecords = _work.Database.ExecuteScalar<int>(countSql);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -95,7 +167,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
public IUmbracoEntity GetByKey(Guid key)
|
public IUmbracoEntity GetByKey(Guid key)
|
||||||
{
|
{
|
||||||
var sql = GetBaseWhere(GetBase, false, false, key);
|
var sql = GetBaseWhere(GetBase, false, false, key);
|
||||||
var nodeDto = UnitOfWork.Database.FirstOrDefault<dynamic>(sql);
|
var nodeDto = _work.Database.FirstOrDefault<dynamic>(sql);
|
||||||
if (nodeDto == null)
|
if (nodeDto == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
@@ -114,15 +186,27 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
|
|
||||||
var factory = new UmbracoEntityFactory();
|
var factory = new UmbracoEntityFactory();
|
||||||
|
|
||||||
//query = read forward data reader, do not load everything into mem
|
if (isMedia)
|
||||||
var dtos = UnitOfWork.Database.Query<dynamic>(sql);
|
|
||||||
var collection = new EntityDefinitionCollection();
|
|
||||||
foreach (var dto in dtos)
|
|
||||||
{
|
{
|
||||||
collection.AddOrUpdate(new EntityDefinition(factory, dto, isContent, false));
|
//for now treat media differently and include all property data too
|
||||||
|
var entities = _work.Database.Fetch<dynamic, UmbracoPropertyDto, UmbracoEntity>(
|
||||||
|
new UmbracoEntityRelator().Map, sql);
|
||||||
|
|
||||||
|
return entities.FirstOrDefault();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
//query = read forward data reader, do not load everything into mem
|
||||||
|
var dtos = _work.Database.Query<dynamic>(sql);
|
||||||
|
var collection = new EntityDefinitionCollection();
|
||||||
|
foreach (var dto in dtos)
|
||||||
|
{
|
||||||
|
collection.AddOrUpdate(new EntityDefinition(factory, dto, isContent, false));
|
||||||
|
}
|
||||||
|
var found = collection.FirstOrDefault();
|
||||||
|
return found != null ? found.BuildFromDynamic() : null;
|
||||||
}
|
}
|
||||||
var found = collection.FirstOrDefault();
|
|
||||||
return found != null ? found.BuildFromDynamic() : null;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -130,7 +214,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
public virtual IUmbracoEntity Get(int id)
|
public virtual IUmbracoEntity Get(int id)
|
||||||
{
|
{
|
||||||
var sql = GetBaseWhere(GetBase, false, false, id);
|
var sql = GetBaseWhere(GetBase, false, false, id);
|
||||||
var nodeDto = UnitOfWork.Database.FirstOrDefault<dynamic>(sql);
|
var nodeDto = _work.Database.FirstOrDefault<dynamic>(sql);
|
||||||
if (nodeDto == null)
|
if (nodeDto == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
@@ -149,16 +233,26 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
|
|
||||||
var factory = new UmbracoEntityFactory();
|
var factory = new UmbracoEntityFactory();
|
||||||
|
|
||||||
//query = read forward data reader, do not load everything into mem
|
if (isMedia)
|
||||||
var dtos = UnitOfWork.Database.Query<dynamic>(sql);
|
|
||||||
var collection = new EntityDefinitionCollection();
|
|
||||||
foreach (var dto in dtos)
|
|
||||||
{
|
{
|
||||||
collection.AddOrUpdate(new EntityDefinition(factory, dto, isContent, false));
|
//for now treat media differently and include all property data too
|
||||||
}
|
var entities = _work.Database.Fetch<dynamic, UmbracoPropertyDto, UmbracoEntity>(
|
||||||
var found = collection.FirstOrDefault();
|
new UmbracoEntityRelator().Map, sql);
|
||||||
return found != null ? found.BuildFromDynamic() : null;
|
|
||||||
|
|
||||||
|
return entities.FirstOrDefault();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//query = read forward data reader, do not load everything into mem
|
||||||
|
var dtos = _work.Database.Query<dynamic>(sql);
|
||||||
|
var collection = new EntityDefinitionCollection();
|
||||||
|
foreach (var dto in dtos)
|
||||||
|
{
|
||||||
|
collection.AddOrUpdate(new EntityDefinition(factory, dto, isContent, false));
|
||||||
|
}
|
||||||
|
var found = collection.FirstOrDefault();
|
||||||
|
return found != null ? found.BuildFromDynamic() : null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual IEnumerable<IUmbracoEntity> GetAll(Guid objectTypeId, params int[] ids)
|
public virtual IEnumerable<IUmbracoEntity> GetAll(Guid objectTypeId, params int[] ids)
|
||||||
@@ -183,14 +277,24 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
|
|
||||||
var factory = new UmbracoEntityFactory();
|
var factory = new UmbracoEntityFactory();
|
||||||
|
|
||||||
//query = read forward data reader, do not load everything into mem
|
if (isMedia)
|
||||||
var dtos = UnitOfWork.Database.Query<dynamic>(sql);
|
|
||||||
var collection = new EntityDefinitionCollection();
|
|
||||||
foreach (var dto in dtos)
|
|
||||||
{
|
{
|
||||||
collection.AddOrUpdate(new EntityDefinition(factory, dto, isContent, isMedia));
|
//for now treat media differently and include all property data too
|
||||||
|
var entities = _work.Database.Fetch<dynamic, UmbracoPropertyDto, UmbracoEntity>(
|
||||||
|
new UmbracoEntityRelator().Map, sql);
|
||||||
|
return entities;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//query = read forward data reader, do not load everything into mem
|
||||||
|
var dtos = _work.Database.Query<dynamic>(sql);
|
||||||
|
var collection = new EntityDefinitionCollection();
|
||||||
|
foreach (var dto in dtos)
|
||||||
|
{
|
||||||
|
collection.AddOrUpdate(new EntityDefinition(factory, dto, isContent, false));
|
||||||
|
}
|
||||||
|
return collection.Select(x => x.BuildFromDynamic()).ToList();
|
||||||
}
|
}
|
||||||
return collection.Select(x => x.BuildFromDynamic()).ToList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual IEnumerable<EntityPath> GetAllPaths(Guid objectTypeId, params int[] ids)
|
public virtual IEnumerable<EntityPath> GetAllPaths(Guid objectTypeId, params int[] ids)
|
||||||
@@ -211,7 +315,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
{
|
{
|
||||||
var sql = new Sql("SELECT id, path FROM umbracoNode WHERE umbracoNode.nodeObjectType=@type", new { type = objectTypeId });
|
var sql = new Sql("SELECT id, path FROM umbracoNode WHERE umbracoNode.nodeObjectType=@type", new { type = objectTypeId });
|
||||||
if (filter != null) filter(sql);
|
if (filter != null) filter(sql);
|
||||||
return UnitOfWork.Database.Fetch<EntityPath>(sql);
|
return _work.Database.Fetch<EntityPath>(sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual IEnumerable<IUmbracoEntity> GetByQuery(IQuery<IUmbracoEntity> query)
|
public virtual IEnumerable<IUmbracoEntity> GetByQuery(IQuery<IUmbracoEntity> query)
|
||||||
@@ -220,7 +324,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
var translator = new SqlTranslator<IUmbracoEntity>(sqlClause, query);
|
var translator = new SqlTranslator<IUmbracoEntity>(sqlClause, query);
|
||||||
var sql = translator.Translate().Append(GetGroupBy(false, false));
|
var sql = translator.Translate().Append(GetGroupBy(false, false));
|
||||||
|
|
||||||
var dtos = UnitOfWork.Database.Fetch<dynamic>(sql);
|
var dtos = _work.Database.Fetch<dynamic>(sql);
|
||||||
|
|
||||||
var factory = new UmbracoEntityFactory();
|
var factory = new UmbracoEntityFactory();
|
||||||
var list = dtos.Select(factory.BuildEntityFromDynamic).Cast<IUmbracoEntity>().ToList();
|
var list = dtos.Select(factory.BuildEntityFromDynamic).Cast<IUmbracoEntity>().ToList();
|
||||||
@@ -234,6 +338,10 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
/// <param name="query"></param>
|
/// <param name="query"></param>
|
||||||
/// <param name="objectTypeId"></param>
|
/// <param name="objectTypeId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// Note that this will also fetch all property data for media items, which can cause performance problems
|
||||||
|
/// when used without paging, in sites with large amounts of data in cmsPropertyData.
|
||||||
|
/// </remarks>
|
||||||
public virtual IEnumerable<IUmbracoEntity> GetByQuery(IQuery<IUmbracoEntity> query, Guid objectTypeId)
|
public virtual IEnumerable<IUmbracoEntity> GetByQuery(IQuery<IUmbracoEntity> query, Guid objectTypeId)
|
||||||
{
|
{
|
||||||
var isContent = objectTypeId == Constants.ObjectTypes.DocumentGuid || objectTypeId == Constants.ObjectTypes.DocumentBlueprintGuid;
|
var isContent = objectTypeId == Constants.ObjectTypes.DocumentGuid || objectTypeId == Constants.ObjectTypes.DocumentBlueprintGuid;
|
||||||
@@ -244,10 +352,53 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
var translator = new SqlTranslator<IUmbracoEntity>(sqlClause, query);
|
var translator = new SqlTranslator<IUmbracoEntity>(sqlClause, query);
|
||||||
var entitySql = translator.Translate();
|
var entitySql = translator.Translate();
|
||||||
|
|
||||||
return GetByQueryInternal(entitySql, isContent, isMedia);
|
var factory = new UmbracoEntityFactory();
|
||||||
|
|
||||||
|
if (isMedia)
|
||||||
|
{
|
||||||
|
var wheres = query.GetWhereClauses().ToArray();
|
||||||
|
|
||||||
|
var mediaSql = GetFullSqlForMedia(entitySql.Append(GetGroupBy(isContent, true, false)), sql =>
|
||||||
|
{
|
||||||
|
//adds the additional filters
|
||||||
|
foreach (var whereClause in wheres)
|
||||||
|
{
|
||||||
|
sql.Where(whereClause.Item1, whereClause.Item2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//for now treat media differently and include all property data too
|
||||||
|
var entities = _work.Database.Fetch<dynamic, UmbracoPropertyDto, UmbracoEntity>(
|
||||||
|
new UmbracoEntityRelator().Map, mediaSql);
|
||||||
|
return entities;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return GetByQueryInternal(entitySql, isContent, isMedia);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<IUmbracoEntity> GetByQueryInternal(Sql entitySql, bool isContent, bool isMedia)
|
/// <summary>
|
||||||
|
/// Gets entities by query without fetching property data.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="query"></param>
|
||||||
|
/// <param name="objectTypeId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
/// <remarks>
|
||||||
|
/// This is supposed to be internal and can be used when getting all entities without paging, without causing
|
||||||
|
/// performance issues.
|
||||||
|
/// </remarks>
|
||||||
|
internal IEnumerable<IUmbracoEntity> GetMediaByQueryWithoutPropertyData(IQuery<IUmbracoEntity> query)
|
||||||
|
{
|
||||||
|
var sqlClause = GetBaseWhere(GetBase, false, true, null, UmbracoObjectTypes.Media.GetGuid());
|
||||||
|
|
||||||
|
var translator = new SqlTranslator<IUmbracoEntity>(sqlClause, query);
|
||||||
|
var entitySql = translator.Translate();
|
||||||
|
|
||||||
|
return GetByQueryInternal(entitySql, false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal IEnumerable<IUmbracoEntity> GetByQueryInternal(Sql entitySql, bool isContent, bool isMedia)
|
||||||
{
|
{
|
||||||
var factory = new UmbracoEntityFactory();
|
var factory = new UmbracoEntityFactory();
|
||||||
|
|
||||||
@@ -255,7 +406,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
var finalSql = entitySql.Append(GetGroupBy(isContent, isMedia));
|
var finalSql = entitySql.Append(GetGroupBy(isContent, isMedia));
|
||||||
|
|
||||||
//query = read forward data reader, do not load everything into mem
|
//query = read forward data reader, do not load everything into mem
|
||||||
var dtos = UnitOfWork.Database.Query<dynamic>(finalSql);
|
var dtos = _work.Database.Query<dynamic>(finalSql);
|
||||||
var collection = new EntityDefinitionCollection();
|
var collection = new EntityDefinitionCollection();
|
||||||
foreach (var dto in dtos)
|
foreach (var dto in dtos)
|
||||||
{
|
{
|
||||||
@@ -275,7 +426,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
|
|
||||||
if (isMedia == false) return entitySql.Append(GetGroupBy(isContent, false));
|
if (isMedia == false) return entitySql.Append(GetGroupBy(isContent, false));
|
||||||
|
|
||||||
return entitySql.Append(GetGroupBy(isContent, true, false));
|
return GetFullSqlForMedia(entitySql.Append(GetGroupBy(isContent, true, false)));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Sql GetFullSqlForEntityType(int id, bool isContent, bool isMedia, Guid objectTypeId)
|
protected Sql GetFullSqlForEntityType(int id, bool isContent, bool isMedia, Guid objectTypeId)
|
||||||
@@ -284,7 +435,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
|
|
||||||
if (isMedia == false) return entitySql.Append(GetGroupBy(isContent, false));
|
if (isMedia == false) return entitySql.Append(GetGroupBy(isContent, false));
|
||||||
|
|
||||||
return entitySql.Append(GetGroupBy(isContent, true, false));
|
return GetFullSqlForMedia(entitySql.Append(GetGroupBy(isContent, true, false)));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Sql GetFullSqlForEntityType(bool isContent, bool isMedia, Guid objectTypeId, Action<Sql> filter)
|
protected Sql GetFullSqlForEntityType(bool isContent, bool isMedia, Guid objectTypeId, Action<Sql> filter)
|
||||||
@@ -293,7 +444,48 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
|
|
||||||
if (isMedia == false) return entitySql.Append(GetGroupBy(isContent, false));
|
if (isMedia == false) return entitySql.Append(GetGroupBy(isContent, false));
|
||||||
|
|
||||||
return entitySql.Append(GetGroupBy(isContent, true, false));
|
return GetFullSqlForMedia(entitySql.Append(GetGroupBy(isContent, true, false)), filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Sql GetPropertySql(string nodeObjectType)
|
||||||
|
{
|
||||||
|
var sql = new Sql()
|
||||||
|
.Select("contentNodeId, versionId, dataNvarchar, dataNtext, propertyEditorAlias, alias as propertyTypeAlias")
|
||||||
|
.From<PropertyDataDto>()
|
||||||
|
.InnerJoin<NodeDto>()
|
||||||
|
.On<PropertyDataDto, NodeDto>(dto => dto.NodeId, dto => dto.NodeId)
|
||||||
|
.InnerJoin<PropertyTypeDto>()
|
||||||
|
.On<PropertyTypeDto, PropertyDataDto>(dto => dto.Id, dto => dto.PropertyTypeId)
|
||||||
|
.InnerJoin<DataTypeDto>()
|
||||||
|
.On<PropertyTypeDto, DataTypeDto>(dto => dto.DataTypeId, dto => dto.DataTypeId)
|
||||||
|
.Where("umbracoNode.nodeObjectType = @nodeObjectType", new { nodeObjectType = nodeObjectType });
|
||||||
|
|
||||||
|
return sql;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Sql GetFullSqlForMedia(Sql entitySql, Action<Sql> filter = null)
|
||||||
|
{
|
||||||
|
//this will add any dataNvarchar property to the output which can be added to the additional properties
|
||||||
|
|
||||||
|
var joinSql = GetPropertySql(Constants.ObjectTypes.Media);
|
||||||
|
|
||||||
|
if (filter != null)
|
||||||
|
{
|
||||||
|
filter(joinSql);
|
||||||
|
}
|
||||||
|
|
||||||
|
//We're going to create a query to query against the entity SQL
|
||||||
|
// because we cannot group by nText columns and we have a COUNT in the entitySql we cannot simply left join
|
||||||
|
// the entitySql query, we have to join the wrapped query to get the ntext in the result
|
||||||
|
|
||||||
|
var wrappedSql = new Sql("SELECT * FROM (")
|
||||||
|
.Append(entitySql)
|
||||||
|
.Append(new Sql(") tmpTbl LEFT JOIN ("))
|
||||||
|
.Append(joinSql)
|
||||||
|
.Append(new Sql(") as property ON id = property.contentNodeId"))
|
||||||
|
.OrderBy("sortOrder, id");
|
||||||
|
|
||||||
|
return wrappedSql;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual Sql GetBase(bool isContent, bool isMedia, Action<Sql> customFilter)
|
protected virtual Sql GetBase(bool isContent, bool isMedia, Action<Sql> customFilter)
|
||||||
@@ -341,11 +533,6 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
columns.Add("contenttype.thumbnail");
|
columns.Add("contenttype.thumbnail");
|
||||||
columns.Add("contenttype.isContainer");
|
columns.Add("contenttype.isContainer");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isMedia)
|
|
||||||
{
|
|
||||||
columns.Add("media.mediaPath");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Creates an SQL query to return a single row for the entity
|
//Creates an SQL query to return a single row for the entity
|
||||||
@@ -368,16 +555,9 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
.On("umbracoNode.id = published.nodeId");
|
.On("umbracoNode.id = published.nodeId");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isMedia)
|
|
||||||
{
|
|
||||||
entitySql.LeftJoin("cmsMedia media").On("media.nodeId = umbracoNode.id");
|
|
||||||
}
|
|
||||||
|
|
||||||
entitySql.LeftJoin("cmsContentType contenttype").On("contenttype.nodeId = content.contentType");
|
entitySql.LeftJoin("cmsContentType contenttype").On("contenttype.nodeId = content.contentType");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (isCount == false)
|
if (isCount == false)
|
||||||
{
|
{
|
||||||
entitySql.LeftJoin("umbracoNode parent").On("parent.parentID = umbracoNode.id");
|
entitySql.LeftJoin("umbracoNode parent").On("parent.parentID = umbracoNode.id");
|
||||||
@@ -487,12 +667,6 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
columns.Add("document.versionId");
|
columns.Add("document.versionId");
|
||||||
columns.Add("contentversion.id");
|
columns.Add("contentversion.id");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isMedia)
|
|
||||||
{
|
|
||||||
columns.Add("media.mediaPath");
|
|
||||||
}
|
|
||||||
|
|
||||||
columns.Add("contenttype.alias");
|
columns.Add("contenttype.alias");
|
||||||
columns.Add("contenttype.icon");
|
columns.Add("contenttype.icon");
|
||||||
columns.Add("contenttype.thumbnail");
|
columns.Add("contenttype.thumbnail");
|
||||||
@@ -526,17 +700,99 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
public bool Exists(Guid key)
|
public bool Exists(Guid key)
|
||||||
{
|
{
|
||||||
var sql = new Sql().Select("COUNT(*)").From("umbracoNode").Where("uniqueID=@uniqueID", new {uniqueID = key});
|
var sql = new Sql().Select("COUNT(*)").From("umbracoNode").Where("uniqueID=@uniqueID", new {uniqueID = key});
|
||||||
return UnitOfWork.Database.ExecuteScalar<int>(sql) > 0;
|
return _work.Database.ExecuteScalar<int>(sql) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Exists(int id)
|
public bool Exists(int id)
|
||||||
{
|
{
|
||||||
var sql = new Sql().Select("COUNT(*)").From("umbracoNode").Where("id=@id", new { id = id });
|
var sql = new Sql().Select("COUNT(*)").From("umbracoNode").Where("id=@id", new { id = id });
|
||||||
return UnitOfWork.Database.ExecuteScalar<int>(sql) > 0;
|
return _work.Database.ExecuteScalar<int>(sql) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region private classes
|
#region private classes
|
||||||
|
|
||||||
|
[ExplicitColumns]
|
||||||
|
internal class UmbracoPropertyDto
|
||||||
|
{
|
||||||
|
[Column("propertyEditorAlias")]
|
||||||
|
public string PropertyEditorAlias { get; set; }
|
||||||
|
|
||||||
|
[Column("propertyTypeAlias")]
|
||||||
|
public string PropertyAlias { get; set; }
|
||||||
|
|
||||||
|
[Column("dataNvarchar")]
|
||||||
|
public string NVarcharValue { get; set; }
|
||||||
|
|
||||||
|
[Column("dataNtext")]
|
||||||
|
public string NTextValue { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This is a special relator in that it is not returning a DTO but a real resolved entity and that it accepts
|
||||||
|
/// a dynamic instance.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// We're doing this because when we query the db, we want to use dynamic so that it returns all available fields not just the ones
|
||||||
|
/// defined on the entity so we can them to additional data
|
||||||
|
/// </remarks>
|
||||||
|
internal class UmbracoEntityRelator
|
||||||
|
{
|
||||||
|
internal UmbracoEntity Current;
|
||||||
|
private readonly UmbracoEntityFactory _factory = new UmbracoEntityFactory();
|
||||||
|
|
||||||
|
internal UmbracoEntity Map(dynamic a, UmbracoPropertyDto p)
|
||||||
|
{
|
||||||
|
// Terminating call. Since we can return null from this function
|
||||||
|
// we need to be ready for PetaPoco to callback later with null
|
||||||
|
// parameters
|
||||||
|
if (a == null)
|
||||||
|
return Current;
|
||||||
|
|
||||||
|
// Is this the same UmbracoEntity as the current one we're processing
|
||||||
|
if (Current != null && Current.Key == a.uniqueID)
|
||||||
|
{
|
||||||
|
if (p != null && p.PropertyAlias.IsNullOrWhiteSpace() == false)
|
||||||
|
{
|
||||||
|
// Add this UmbracoProperty to the current additional data
|
||||||
|
Current.AdditionalData[p.PropertyAlias] = new UmbracoEntity.EntityProperty
|
||||||
|
{
|
||||||
|
PropertyEditorAlias = p.PropertyEditorAlias,
|
||||||
|
Value = p.NTextValue.IsNullOrWhiteSpace()
|
||||||
|
? p.NVarcharValue
|
||||||
|
: p.NTextValue.ConvertToJsonIfPossible()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return null to indicate we're not done with this UmbracoEntity yet
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is a different UmbracoEntity to the current one, or this is the
|
||||||
|
// first time through and we don't have a Tab yet
|
||||||
|
|
||||||
|
// Save the current UmbracoEntityDto
|
||||||
|
var prev = Current;
|
||||||
|
|
||||||
|
// Setup the new current UmbracoEntity
|
||||||
|
|
||||||
|
Current = _factory.BuildEntityFromDynamic(a);
|
||||||
|
|
||||||
|
if (p != null && p.PropertyAlias.IsNullOrWhiteSpace() == false)
|
||||||
|
{
|
||||||
|
//add the property/create the prop list if null
|
||||||
|
Current.AdditionalData[p.PropertyAlias] = new UmbracoEntity.EntityProperty
|
||||||
|
{
|
||||||
|
PropertyEditorAlias = p.PropertyEditorAlias,
|
||||||
|
Value = p.NTextValue.IsNullOrWhiteSpace()
|
||||||
|
? p.NVarcharValue
|
||||||
|
: p.NTextValue.ConvertToJsonIfPossible()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the now populated previous UmbracoEntity (or null if first time through)
|
||||||
|
return prev;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class EntityDefinitionCollection : KeyedCollection<int, EntityDefinition>
|
private class EntityDefinitionCollection : KeyedCollection<int, EntityDefinition>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
XmlDocument BuildXmlCache();
|
XmlDocument BuildXmlCache();
|
||||||
|
|
||||||
XmlDocument BuildPreviewXmlCache();
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get the count of published items
|
/// Get the count of published items
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -95,9 +95,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
|||||||
.InnerJoin<ContentDto>(SqlSyntax)
|
.InnerJoin<ContentDto>(SqlSyntax)
|
||||||
.On<ContentVersionDto, ContentDto>(SqlSyntax, left => left.NodeId, right => right.NodeId)
|
.On<ContentVersionDto, ContentDto>(SqlSyntax, left => left.NodeId, right => right.NodeId)
|
||||||
.InnerJoin<NodeDto>(SqlSyntax)
|
.InnerJoin<NodeDto>(SqlSyntax)
|
||||||
.On<ContentDto, NodeDto>(SqlSyntax, left => left.NodeId, right => right.NodeId)
|
.On<ContentDto, NodeDto>(SqlSyntax, left => left.NodeId, right => right.NodeId);
|
||||||
.InnerJoin<ContentTypeDto>(SqlSyntax)
|
|
||||||
.On<ContentTypeDto, ContentDto>(SqlSyntax, left => left.NodeId, right => right.ContentTypeId);
|
|
||||||
|
|
||||||
if (includeFilePaths)
|
if (includeFilePaths)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -267,8 +267,8 @@ ORDER BY colName";
|
|||||||
|
|
||||||
var fromDate = DateTime.UtcNow - timespan;
|
var fromDate = DateTime.UtcNow - timespan;
|
||||||
|
|
||||||
var count = Database.ExecuteScalar<int>("SELECT COUNT(*) FROM umbracoUserLogin WHERE lastValidatedUtc<=@fromDate", new { fromDate = fromDate });
|
var count = Database.ExecuteScalar<int>("SELECT COUNT(*) FROM umbracoUserLogin WHERE lastValidatedUtc=@fromDate", new { fromDate = fromDate });
|
||||||
Database.Execute("DELETE FROM umbracoUserLogin WHERE lastValidatedUtc<=@fromDate", new { fromDate = fromDate });
|
Database.Execute("DELETE FROM umbracoUserLogin WHERE lastValidatedUtc=@fromDate", new { fromDate = fromDate });
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -703,8 +703,6 @@ ORDER BY contentNodeId, versionId, propertytypeid
|
|||||||
// Members only
|
// Members only
|
||||||
case "USERNAME":
|
case "USERNAME":
|
||||||
return "cmsMember.LoginName";
|
return "cmsMember.LoginName";
|
||||||
case "CONTENTTYPEALIAS":
|
|
||||||
return "cmsContentType.alias";
|
|
||||||
default:
|
default:
|
||||||
//ensure invalid SQL cannot be submitted
|
//ensure invalid SQL cannot be submitted
|
||||||
return Regex.Replace(orderBy, @"[^\w\.,`\[\]@-]", "");
|
return Regex.Replace(orderBy, @"[^\w\.,`\[\]@-]", "");
|
||||||
|
|||||||
@@ -53,12 +53,6 @@ namespace Umbraco.Core.PropertyEditors
|
|||||||
nestedContentEditorFromPackage.Name = "(Obsolete) " + nestedContentEditorFromPackage.Name;
|
nestedContentEditorFromPackage.Name = "(Obsolete) " + nestedContentEditorFromPackage.Name;
|
||||||
nestedContentEditorFromPackage.IsDeprecated = true;
|
nestedContentEditorFromPackage.IsDeprecated = true;
|
||||||
}
|
}
|
||||||
var multiUrlPickerEditorFromPackage = editors.FirstOrDefault(x => x.Alias == "RJP.MultiUrlPicker");
|
|
||||||
if (multiUrlPickerEditorFromPackage != null)
|
|
||||||
{
|
|
||||||
multiUrlPickerEditorFromPackage.Name = "(Obsolete) " + multiUrlPickerEditorFromPackage.Name;
|
|
||||||
multiUrlPickerEditorFromPackage.IsDeprecated = true;
|
|
||||||
}
|
|
||||||
return editors;
|
return editors;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,22 +42,16 @@ namespace Umbraco.Core.PropertyEditors.ValueConverters
|
|||||||
|
|
||||||
public override object ConvertDataToSource(PublishedPropertyType propertyType, object source, bool preview)
|
public override object ConvertDataToSource(PublishedPropertyType propertyType, object source, bool preview)
|
||||||
{
|
{
|
||||||
var sourceAsString = source?.ToString();
|
|
||||||
if(sourceAsString.IsNullOrWhiteSpace())
|
|
||||||
{
|
|
||||||
return new string[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
// if Json storage type deserialzie and return as string array
|
// if Json storage type deserialzie and return as string array
|
||||||
if (JsonStorageType(propertyType.DataTypeId))
|
if (JsonStorageType(propertyType.DataTypeId))
|
||||||
{
|
{
|
||||||
var jArray = JsonConvert.DeserializeObject<JArray>(sourceAsString);
|
var jArray = JsonConvert.DeserializeObject<JArray>(source.ToString());
|
||||||
return jArray.ToObject<string[]>();
|
return jArray.ToObject<string[]>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise assume CSV storage type and return as string array
|
// Otherwise assume CSV storage type and return as string array
|
||||||
var csvTags =
|
var csvTags =
|
||||||
sourceAsString
|
source.ToString()
|
||||||
.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)
|
.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)
|
||||||
.ToArray();
|
.ToArray();
|
||||||
return csvTags;
|
return csvTags;
|
||||||
|
|||||||
@@ -107,11 +107,6 @@ namespace Umbraco.Core.Security
|
|||||||
|
|
||||||
await EnsureValidSessionId(context);
|
await EnsureValidSessionId(context);
|
||||||
|
|
||||||
if (context?.Identity == null)
|
|
||||||
{
|
|
||||||
context?.OwinContext.Authentication.SignOut(context.Options.AuthenticationType);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await base.ValidateIdentity(context);
|
await base.ValidateIdentity(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ using System.ComponentModel;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
@@ -35,7 +34,6 @@ namespace Umbraco.Core.Services
|
|||||||
//Support recursive locks because some of the methods that require locking call other methods that require locking.
|
//Support recursive locks because some of the methods that require locking call other methods that require locking.
|
||||||
//for example, the Move method needs to be locked but this calls the Save method which also needs to be locked.
|
//for example, the Move method needs to be locked but this calls the Save method which also needs to be locked.
|
||||||
private static readonly ReaderWriterLockSlim Locker = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
|
private static readonly ReaderWriterLockSlim Locker = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
|
||||||
private static readonly Regex AnchorRegex = new Regex("<a id=\"(.*?)\">", RegexOptions.Compiled);
|
|
||||||
|
|
||||||
public ContentService(
|
public ContentService(
|
||||||
IDatabaseUnitOfWorkProvider provider,
|
IDatabaseUnitOfWorkProvider provider,
|
||||||
@@ -301,45 +299,6 @@ namespace Umbraco.Core.Services
|
|||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<string> GetAnchorValuesFromRTEs(int id)
|
|
||||||
{
|
|
||||||
var result = new List<string>();
|
|
||||||
|
|
||||||
var content = GetById(id);
|
|
||||||
|
|
||||||
foreach (var contentProperty in content.Properties)
|
|
||||||
{
|
|
||||||
if (contentProperty.PropertyType.PropertyEditorAlias.InvariantEquals(Constants.PropertyEditors.TinyMCEAlias))
|
|
||||||
{
|
|
||||||
var value = contentProperty.Value?.ToString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(value))
|
|
||||||
{
|
|
||||||
result.AddRange(GetAnchorValuesFromRTEContent(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public IEnumerable<string> GetAnchorValuesFromRTEContent(string rteContent)
|
|
||||||
{
|
|
||||||
var result = new List<string>();
|
|
||||||
|
|
||||||
var matches = AnchorRegex.Matches(rteContent);
|
|
||||||
|
|
||||||
foreach (Match match in matches)
|
|
||||||
{
|
|
||||||
result.Add(match.Value.Split('\"')[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates and saves an <see cref="IContent"/> object using the alias of the <see cref="IContentType"/>
|
/// Creates and saves an <see cref="IContent"/> object using the alias of the <see cref="IContentType"/>
|
||||||
/// that this Content should based on.
|
/// that this Content should based on.
|
||||||
@@ -1782,15 +1741,7 @@ namespace Umbraco.Core.Services
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Empties the Recycle Bin by deleting all <see cref="IContent"/> that resides in the bin
|
/// Empties the Recycle Bin by deleting all <see cref="IContent"/> that resides in the bin
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
public void EmptyRecycleBin()
|
||||||
[Obsolete("Use EmptyRecycleBin with explicit indication of user ID instead")]
|
|
||||||
public void EmptyRecycleBin() => EmptyRecycleBin(0);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Empties the Recycle Bin by deleting all <see cref="IContent"/> that resides in the bin
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="userId">Optional Id of the User emptying the Recycle Bin</param>
|
|
||||||
public void EmptyRecycleBin(int userId = 0)
|
|
||||||
{
|
{
|
||||||
using (new WriteLock(Locker))
|
using (new WriteLock(Locker))
|
||||||
{
|
{
|
||||||
@@ -1820,7 +1771,7 @@ namespace Umbraco.Core.Services
|
|||||||
recycleBinEventArgs.RecycleBinEmptiedSuccessfully = success;
|
recycleBinEventArgs.RecycleBinEmptiedSuccessfully = success;
|
||||||
uow.Events.Dispatch(EmptiedRecycleBin, this, recycleBinEventArgs);
|
uow.Events.Dispatch(EmptiedRecycleBin, this, recycleBinEventArgs);
|
||||||
|
|
||||||
Audit(uow, AuditType.Delete, "Empty Content Recycle Bin performed by user", userId, Constants.System.RecycleBinContent);
|
Audit(uow, AuditType.Delete, "Empty Content Recycle Bin performed by user", 0, Constants.System.RecycleBinContent);
|
||||||
uow.Commit();
|
uow.Commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2241,17 +2192,6 @@ namespace Umbraco.Core.Services
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public XmlDocument BuildPreviewXmlCache()
|
|
||||||
{
|
|
||||||
using (var uow = UowProvider.GetUnitOfWork())
|
|
||||||
{
|
|
||||||
var repository = RepositoryFactory.CreateContentRepository(uow);
|
|
||||||
var result = repository.BuildPreviewXmlCache();
|
|
||||||
uow.Commit();
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Rebuilds all xml content in the cmsContentXml table for all documents
|
/// Rebuilds all xml content in the cmsContentXml table for all documents
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
using System;
|
|
||||||
using Umbraco.Core.Models;
|
|
||||||
|
|
||||||
namespace Umbraco.Core.Services
|
|
||||||
{
|
|
||||||
internal static class DateTypeServiceExtensions
|
|
||||||
{
|
|
||||||
public static bool IsDataTypeIgnoringUserStartNodes(this IDataTypeService dataTypeService, Guid key)
|
|
||||||
{
|
|
||||||
if (DataTypeExtensions.IsBuildInDataType(key)) return false; //built in ones can never be ignoring start nodes
|
|
||||||
|
|
||||||
var dataType = dataTypeService.GetDataTypeDefinitionById(key);
|
|
||||||
|
|
||||||
if (dataType != null)
|
|
||||||
{
|
|
||||||
var preValues = dataTypeService.GetPreValuesCollectionByDataTypeId(dataType.Id);
|
|
||||||
if (preValues.FormatAsDictionary().TryGetValue(
|
|
||||||
Constants.DataTypes.ReservedPreValueKeys.IgnoreUserStartNodes, out var preValue))
|
|
||||||
return preValue.Value.InvariantEquals("1");
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using Umbraco.Core.CodeAnnotations;
|
using Umbraco.Core.CodeAnnotations;
|
||||||
@@ -76,15 +75,28 @@ namespace Umbraco.Core.Services
|
|||||||
return _idkMap.GetKeyForId(id, umbracoObjectType);
|
return _idkMap.GetKeyForId(id, umbracoObjectType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IUmbracoEntity GetByKey(Guid key)
|
public IUmbracoEntity GetByKey(Guid key, bool loadBaseType = true)
|
||||||
{
|
{
|
||||||
using (var uow = UowProvider.GetUnitOfWork())
|
if (loadBaseType)
|
||||||
{
|
{
|
||||||
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
using (var uow = UowProvider.GetUnitOfWork())
|
||||||
var ret = repository.GetByKey(key);
|
{
|
||||||
uow.Commit();
|
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
||||||
return ret;
|
var ret = repository.GetByKey(key);
|
||||||
|
uow.Commit();
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//SD: TODO: Need to enable this at some stage ... just need to ask Morten what the deal is with what this does.
|
||||||
|
throw new NotSupportedException();
|
||||||
|
|
||||||
|
//var objectType = GetObjectType(key);
|
||||||
|
//var entityType = GetEntityType(objectType);
|
||||||
|
//var typeFullName = entityType.FullName;
|
||||||
|
//var entity = _supportedObjectTypes[typeFullName].Item2(id);
|
||||||
|
|
||||||
|
//return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -94,26 +106,49 @@ namespace Umbraco.Core.Services
|
|||||||
/// By default this will load the base type <see cref="IUmbracoEntity"/> with a minimum set of properties.
|
/// By default this will load the base type <see cref="IUmbracoEntity"/> with a minimum set of properties.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
/// <param name="id">Id of the object to retrieve</param>
|
/// <param name="id">Id of the object to retrieve</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c>.</param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
public virtual IUmbracoEntity Get(int id)
|
public virtual IUmbracoEntity Get(int id, bool loadBaseType = true)
|
||||||
{
|
{
|
||||||
using (var uow = UowProvider.GetUnitOfWork(readOnly:true))
|
if (loadBaseType)
|
||||||
{
|
{
|
||||||
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
using (var uow = UowProvider.GetUnitOfWork(readOnly:true))
|
||||||
var ret = repository.Get(id);
|
{
|
||||||
return ret;
|
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
||||||
|
var ret = repository.Get(id);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var objectType = GetObjectType(id);
|
||||||
|
var entityType = GetEntityType(objectType);
|
||||||
|
var typeFullName = entityType.FullName;
|
||||||
|
var entity = _supportedObjectTypes[typeFullName].Item2(id);
|
||||||
|
|
||||||
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IUmbracoEntity GetByKey(Guid key, UmbracoObjectTypes umbracoObjectType)
|
public IUmbracoEntity GetByKey(Guid key, UmbracoObjectTypes umbracoObjectType, bool loadBaseType = true)
|
||||||
{
|
{
|
||||||
var objectTypeId = umbracoObjectType.GetGuid();
|
if (loadBaseType)
|
||||||
using (var uow = UowProvider.GetUnitOfWork(readOnly:true))
|
|
||||||
{
|
{
|
||||||
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
var objectTypeId = umbracoObjectType.GetGuid();
|
||||||
var ret = repository.GetByKey(key, objectTypeId);
|
using (var uow = UowProvider.GetUnitOfWork(readOnly:true))
|
||||||
return ret;
|
{
|
||||||
|
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
||||||
|
var ret = repository.GetByKey(key, objectTypeId);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//SD: TODO: Need to enable this at some stage ... just need to ask Morten what the deal is with what this does.
|
||||||
|
throw new NotSupportedException();
|
||||||
|
|
||||||
|
//var entityType = GetEntityType(umbracoObjectType);
|
||||||
|
//var typeFullName = entityType.FullName;
|
||||||
|
//var entity = _supportedObjectTypes[typeFullName].Item2(id);
|
||||||
|
|
||||||
|
//return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -124,19 +159,29 @@ namespace Umbraco.Core.Services
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
/// <param name="id">Id of the object to retrieve</param>
|
/// <param name="id">Id of the object to retrieve</param>
|
||||||
/// <param name="umbracoObjectType">UmbracoObjectType of the entity to retrieve</param>
|
/// <param name="umbracoObjectType">UmbracoObjectType of the entity to retrieve</param>
|
||||||
// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c>.</param>
|
||||||
public virtual IUmbracoEntity Get(int id, UmbracoObjectTypes umbracoObjectType)
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
|
public virtual IUmbracoEntity Get(int id, UmbracoObjectTypes umbracoObjectType, bool loadBaseType = true)
|
||||||
{
|
{
|
||||||
var objectTypeId = umbracoObjectType.GetGuid();
|
if (loadBaseType)
|
||||||
using (var uow = UowProvider.GetUnitOfWork(readOnly:true))
|
|
||||||
{
|
{
|
||||||
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
var objectTypeId = umbracoObjectType.GetGuid();
|
||||||
var ret = repository.Get(id, objectTypeId);
|
using (var uow = UowProvider.GetUnitOfWork(readOnly:true))
|
||||||
return ret;
|
{
|
||||||
|
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
||||||
|
var ret = repository.Get(id, objectTypeId);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var entityType = GetEntityType(umbracoObjectType);
|
||||||
|
var typeFullName = entityType.FullName;
|
||||||
|
var entity = _supportedObjectTypes[typeFullName].Item2(id);
|
||||||
|
|
||||||
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IUmbracoEntity GetByKey<T>(Guid key) where T : IUmbracoEntity
|
public IUmbracoEntity GetByKey<T>(Guid key, bool loadBaseType = true) where T : IUmbracoEntity
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
@@ -149,15 +194,29 @@ namespace Umbraco.Core.Services
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
/// <typeparam name="T">Type of the model to retrieve. Must be based on an <see cref="IUmbracoEntity"/></typeparam>
|
/// <typeparam name="T">Type of the model to retrieve. Must be based on an <see cref="IUmbracoEntity"/></typeparam>
|
||||||
/// <param name="id">Id of the object to retrieve</param>
|
/// <param name="id">Id of the object to retrieve</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c>.</param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
public virtual IUmbracoEntity Get<T>(int id) where T : IUmbracoEntity
|
public virtual IUmbracoEntity Get<T>(int id, bool loadBaseType = true) where T : IUmbracoEntity
|
||||||
{
|
{
|
||||||
using (var uow = UowProvider.GetUnitOfWork(readOnly:true))
|
if (loadBaseType)
|
||||||
{
|
{
|
||||||
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
using (var uow = UowProvider.GetUnitOfWork(readOnly:true))
|
||||||
var ret = repository.Get(id);
|
{
|
||||||
return ret;
|
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
||||||
|
var ret = repository.Get(id);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var typeFullName = typeof(T).FullName;
|
||||||
|
Mandate.That<NotSupportedException>(_supportedObjectTypes.ContainsKey(typeFullName), () =>
|
||||||
|
{
|
||||||
|
throw new NotSupportedException
|
||||||
|
("The passed in type is not supported");
|
||||||
|
});
|
||||||
|
var entity = _supportedObjectTypes[typeFullName].Item2(id);
|
||||||
|
|
||||||
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -235,6 +294,27 @@ namespace Umbraco.Core.Services
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a collection of children by the parent's Id and UmbracoObjectType without adding property data
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parentId">Id of the parent to retrieve children for</param>
|
||||||
|
/// <returns>An enumerable list of <see cref="IUmbracoEntity"/> objects</returns>
|
||||||
|
internal IEnumerable<IUmbracoEntity> GetMediaChildrenWithoutPropertyData(int parentId)
|
||||||
|
{
|
||||||
|
var objectTypeId = UmbracoObjectTypes.Media.GetGuid();
|
||||||
|
using (var uow = UowProvider.GetUnitOfWork(readOnly: true))
|
||||||
|
{
|
||||||
|
var repository = RepositoryFactory.CreateEntityRepository(uow);
|
||||||
|
var query = Query<IUmbracoEntity>.Builder.Where(x => x.ParentId == parentId);
|
||||||
|
|
||||||
|
// Not pretty having to cast the repository, but it is the only way to get to use an internal method that we
|
||||||
|
// do not want to make public on the interface. Unfortunately also prevents this from being unit tested.
|
||||||
|
// See this issue for details on why we need this:
|
||||||
|
// https://github.com/umbraco/Umbraco-CMS/issues/3457
|
||||||
|
return ((EntityRepository)repository).GetMediaByQueryWithoutPropertyData(query);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns a paged collection of children
|
/// Returns a paged collection of children
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -718,32 +798,5 @@ namespace Umbraco.Core.Services
|
|||||||
}
|
}
|
||||||
return node.NodeId;
|
return node.NodeId;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Obsolete - only here for compat
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IUmbracoEntity GetByKey(Guid key, bool loadBaseType = true) => GetByKey(key);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IUmbracoEntity Get(int id, bool loadBaseType = true) => Get(id);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IUmbracoEntity GetByKey(Guid key, UmbracoObjectTypes umbracoObjectType, bool loadBaseType = true) => GetByKey(key, umbracoObjectType);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IUmbracoEntity GetByKey<T>(Guid key, bool loadBaseType = true) where T : IUmbracoEntity => GetByKey<T>(key);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IUmbracoEntity Get(int id, UmbracoObjectTypes umbracoObjectType, bool loadBaseType = true) => Get(id, umbracoObjectType);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IUmbracoEntity Get<T>(int id, bool loadBaseType = true) where T : IUmbracoEntity => Get<T>(id);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,8 +124,6 @@ namespace Umbraco.Core.Services
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
XmlDocument BuildXmlCache();
|
XmlDocument BuildXmlCache();
|
||||||
|
|
||||||
XmlDocument BuildPreviewXmlCache();
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Rebuilds all xml content in the cmsContentXml table for all documents
|
/// Rebuilds all xml content in the cmsContentXml table for all documents
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -440,16 +438,8 @@ namespace Umbraco.Core.Services
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Empties the Recycle Bin by deleting all <see cref="IContent"/> that resides in the bin
|
/// Empties the Recycle Bin by deleting all <see cref="IContent"/> that resides in the bin
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
[Obsolete("Use EmptyRecycleBin with explicit indication of user ID instead")]
|
|
||||||
void EmptyRecycleBin();
|
void EmptyRecycleBin();
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Empties the Recycle Bin by deleting all <see cref="IContent"/> that resides in the bin
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="userId">Optional Id of the User emptying the Recycle Bin</param>
|
|
||||||
void EmptyRecycleBin(int userId = 0);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Rollback an <see cref="IContent"/> object to a previous version.
|
/// Rollback an <see cref="IContent"/> object to a previous version.
|
||||||
/// This will create a new version, which is a copy of all the old data.
|
/// This will create a new version, which is a copy of all the old data.
|
||||||
@@ -713,8 +703,5 @@ namespace Umbraco.Core.Services
|
|||||||
/// <param name="userId">Optional id of the user creating the content</param>
|
/// <param name="userId">Optional id of the user creating the content</param>
|
||||||
/// <returns><see cref="IContent"/></returns>
|
/// <returns><see cref="IContent"/></returns>
|
||||||
IContent CreateContentWithIdentity(string name, int parentId, string contentTypeAlias, int userId = 0);
|
IContent CreateContentWithIdentity(string name, int parentId, string contentTypeAlias, int userId = 0);
|
||||||
|
|
||||||
IEnumerable<string> GetAnchorValuesFromRTEs(int id);
|
|
||||||
IEnumerable<string> GetAnchorValuesFromRTEContent(string rteContent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using Umbraco.Core.Models;
|
using Umbraco.Core.Models;
|
||||||
using Umbraco.Core.Models.EntityBase;
|
using Umbraco.Core.Models.EntityBase;
|
||||||
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
|
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
|
||||||
@@ -53,11 +52,8 @@ namespace Umbraco.Core.Services
|
|||||||
/// By default this will load the base type <see cref="IUmbracoEntity"/> with a minimum set of properties.
|
/// By default this will load the base type <see cref="IUmbracoEntity"/> with a minimum set of properties.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
/// <param name="key">Unique Id of the object to retrieve</param>
|
/// <param name="key">Unique Id of the object to retrieve</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c>.</param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
IUmbracoEntity GetByKey(Guid key);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IUmbracoEntity GetByKey(Guid key, bool loadBaseType = true);
|
IUmbracoEntity GetByKey(Guid key, bool loadBaseType = true);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -67,11 +63,8 @@ namespace Umbraco.Core.Services
|
|||||||
/// By default this will load the base type <see cref="IUmbracoEntity"/> with a minimum set of properties.
|
/// By default this will load the base type <see cref="IUmbracoEntity"/> with a minimum set of properties.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
/// <param name="id">Id of the object to retrieve</param>
|
/// <param name="id">Id of the object to retrieve</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c>.</param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
IUmbracoEntity Get(int id);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IUmbracoEntity Get(int id, bool loadBaseType = true);
|
IUmbracoEntity Get(int id, bool loadBaseType = true);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -82,17 +75,10 @@ namespace Umbraco.Core.Services
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
/// <param name="key">Unique Id of the object to retrieve</param>
|
/// <param name="key">Unique Id of the object to retrieve</param>
|
||||||
/// <param name="umbracoObjectType">UmbracoObjectType of the entity to retrieve</param>
|
/// <param name="umbracoObjectType">UmbracoObjectType of the entity to retrieve</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c>.</param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
IUmbracoEntity GetByKey(Guid key, UmbracoObjectTypes umbracoObjectType);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IUmbracoEntity GetByKey(Guid key, UmbracoObjectTypes umbracoObjectType, bool loadBaseType = true);
|
IUmbracoEntity GetByKey(Guid key, UmbracoObjectTypes umbracoObjectType, bool loadBaseType = true);
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IUmbracoEntity GetByKey<T>(Guid key, bool loadBaseType = true) where T : IUmbracoEntity;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets an UmbracoEntity by its Id and UmbracoObjectType, and optionally loads the complete object graph.
|
/// Gets an UmbracoEntity by its Id and UmbracoObjectType, and optionally loads the complete object graph.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -101,11 +87,8 @@ namespace Umbraco.Core.Services
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
/// <param name="id">Id of the object to retrieve</param>
|
/// <param name="id">Id of the object to retrieve</param>
|
||||||
/// <param name="umbracoObjectType">UmbracoObjectType of the entity to retrieve</param>
|
/// <param name="umbracoObjectType">UmbracoObjectType of the entity to retrieve</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c>.</param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
IUmbracoEntity Get(int id, UmbracoObjectTypes umbracoObjectType);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IUmbracoEntity Get(int id, UmbracoObjectTypes umbracoObjectType, bool loadBaseType = true);
|
IUmbracoEntity Get(int id, UmbracoObjectTypes umbracoObjectType, bool loadBaseType = true);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -115,12 +98,21 @@ namespace Umbraco.Core.Services
|
|||||||
/// By default this will load the base type <see cref="IUmbracoEntity"/> with a minimum set of properties.
|
/// By default this will load the base type <see cref="IUmbracoEntity"/> with a minimum set of properties.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
/// <typeparam name="T">Type of the model to retrieve. Must be based on an <see cref="IUmbracoEntity"/></typeparam>
|
/// <typeparam name="T">Type of the model to retrieve. Must be based on an <see cref="IUmbracoEntity"/></typeparam>
|
||||||
/// <param name="id">Id of the object to retrieve</param>
|
/// <param name="key">Unique Id of the object to retrieve</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c>.</param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
IUmbracoEntity Get<T>(int id) where T : IUmbracoEntity;
|
IUmbracoEntity GetByKey<T>(Guid key, bool loadBaseType = true) where T : IUmbracoEntity;
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
/// <summary>
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
/// Gets an UmbracoEntity by its Id and specified Type. Optionally loads the complete object graph.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// By default this will load the base type <see cref="IUmbracoEntity"/> with a minimum set of properties.
|
||||||
|
/// </returns>
|
||||||
|
/// <typeparam name="T">Type of the model to retrieve. Must be based on an <see cref="IUmbracoEntity"/></typeparam>
|
||||||
|
/// <param name="id">Id of the object to retrieve</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c>.</param>
|
||||||
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
IUmbracoEntity Get<T>(int id, bool loadBaseType = true) where T : IUmbracoEntity;
|
IUmbracoEntity Get<T>(int id, bool loadBaseType = true) where T : IUmbracoEntity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -289,16 +289,8 @@ namespace Umbraco.Core.Services
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Empties the Recycle Bin by deleting all <see cref="IMedia"/> that resides in the bin
|
/// Empties the Recycle Bin by deleting all <see cref="IMedia"/> that resides in the bin
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
[Obsolete("Use EmptyRecycleBin with explicit indication of user ID instead")]
|
|
||||||
void EmptyRecycleBin();
|
void EmptyRecycleBin();
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Empties the Recycle Bin by deleting all <see cref="IMedia"/> that resides in the bin
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="userId">Optional Id of the User emptying the Recycle Bin</param>
|
|
||||||
void EmptyRecycleBin(int userId = 0);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Deletes all media of specified type. All children of deleted media is moved to Recycle Bin.
|
/// Deletes all media of specified type. All children of deleted media is moved to Recycle Bin.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using Umbraco.Core.Models;
|
using Umbraco.Core.Models;
|
||||||
using Umbraco.Core.Models.EntityBase;
|
using Umbraco.Core.Models.EntityBase;
|
||||||
|
|
||||||
@@ -143,67 +142,49 @@ namespace Umbraco.Core.Services
|
|||||||
/// Gets the Child object from a Relation as an <see cref="IUmbracoEntity"/>
|
/// Gets the Child object from a Relation as an <see cref="IUmbracoEntity"/>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relation">Relation to retrieve child object from</param>
|
/// <param name="relation">Relation to retrieve child object from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
IUmbracoEntity GetChildEntityFromRelation(IRelation relation);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IUmbracoEntity GetChildEntityFromRelation(IRelation relation, bool loadBaseType = false);
|
IUmbracoEntity GetChildEntityFromRelation(IRelation relation, bool loadBaseType = false);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the Parent object from a Relation as an <see cref="IUmbracoEntity"/>
|
/// Gets the Parent object from a Relation as an <see cref="IUmbracoEntity"/>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relation">Relation to retrieve parent object from</param>
|
/// <param name="relation">Relation to retrieve parent object from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
IUmbracoEntity GetParentEntityFromRelation(IRelation relation);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IUmbracoEntity GetParentEntityFromRelation(IRelation relation, bool loadBaseType = false);
|
IUmbracoEntity GetParentEntityFromRelation(IRelation relation, bool loadBaseType = false);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the Parent and Child objects from a Relation as a <see cref="Tuple"/>"/> with <see cref="IUmbracoEntity"/>.
|
/// Gets the Parent and Child objects from a Relation as a <see cref="Tuple"/>"/> with <see cref="IUmbracoEntity"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relation">Relation to retrieve parent and child object from</param>
|
/// <param name="relation">Relation to retrieve parent and child object from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>Returns a Tuple with Parent (item1) and Child (item2)</returns>
|
/// <returns>Returns a Tuple with Parent (item1) and Child (item2)</returns>
|
||||||
Tuple<IUmbracoEntity, IUmbracoEntity> GetEntitiesFromRelation(IRelation relation);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
Tuple<IUmbracoEntity, IUmbracoEntity> GetEntitiesFromRelation(IRelation relation, bool loadBaseType = false);
|
Tuple<IUmbracoEntity, IUmbracoEntity> GetEntitiesFromRelation(IRelation relation, bool loadBaseType = false);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the Child objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
/// Gets the Child objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relations">List of relations to retrieve child objects from</param>
|
/// <param name="relations">List of relations to retrieve child objects from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>An enumerable list of <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An enumerable list of <see cref="IUmbracoEntity"/></returns>
|
||||||
IEnumerable<IUmbracoEntity> GetChildEntitiesFromRelations(IEnumerable<IRelation> relations);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IEnumerable<IUmbracoEntity> GetChildEntitiesFromRelations(IEnumerable<IRelation> relations, bool loadBaseType = false);
|
IEnumerable<IUmbracoEntity> GetChildEntitiesFromRelations(IEnumerable<IRelation> relations, bool loadBaseType = false);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the Parent objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
/// Gets the Parent objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relations">List of relations to retrieve parent objects from</param>
|
/// <param name="relations">List of relations to retrieve parent objects from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>An enumerable list of <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An enumerable list of <see cref="IUmbracoEntity"/></returns>
|
||||||
IEnumerable<IUmbracoEntity> GetParentEntitiesFromRelations(IEnumerable<IRelation> relations);
|
IEnumerable<IUmbracoEntity> GetParentEntitiesFromRelations(IEnumerable<IRelation> relations,
|
||||||
|
bool loadBaseType = false);
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IEnumerable<IUmbracoEntity> GetParentEntitiesFromRelations(IEnumerable<IRelation> relations, bool loadBaseType = false);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the Parent and Child objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
/// Gets the Parent and Child objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relations">List of relations to retrieve parent and child objects from</param>
|
/// <param name="relations">List of relations to retrieve parent and child objects from</param>
|
||||||
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
IEnumerable<Tuple<IUmbracoEntity, IUmbracoEntity>> GetEntitiesFromRelations(
|
/// <returns>An enumerable list of <see cref="Tuple"/> with <see cref="IUmbracoEntity"/></returns>
|
||||||
IEnumerable<IRelation> relations);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
IEnumerable<Tuple<IUmbracoEntity, IUmbracoEntity>> GetEntitiesFromRelations(
|
IEnumerable<Tuple<IUmbracoEntity, IUmbracoEntity>> GetEntitiesFromRelations(
|
||||||
IEnumerable<IRelation> relations,
|
IEnumerable<IRelation> relations,
|
||||||
bool loadBaseType = false);
|
bool loadBaseType = false);
|
||||||
|
|||||||
@@ -509,7 +509,7 @@ namespace Umbraco.Core.Services
|
|||||||
public IEnumerable<IMedia> GetPagedChildren(int id, long pageIndex, int pageSize, out long totalChildren,
|
public IEnumerable<IMedia> GetPagedChildren(int id, long pageIndex, int pageSize, out long totalChildren,
|
||||||
string orderBy, Direction orderDirection, bool orderBySystemField, string filter)
|
string orderBy, Direction orderDirection, bool orderBySystemField, string filter)
|
||||||
{
|
{
|
||||||
return GetPagedChildren(id, pageIndex, pageSize, out totalChildren, orderBy, orderDirection, orderBySystemField, filter, null);
|
return GetPagedChildren(id, pageIndex, pageSize, out totalChildren, orderBy, orderDirection, true, filter, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -981,15 +981,7 @@ namespace Umbraco.Core.Services
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Empties the Recycle Bin by deleting all <see cref="IMedia"/> that resides in the bin
|
/// Empties the Recycle Bin by deleting all <see cref="IMedia"/> that resides in the bin
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
public void EmptyRecycleBin()
|
||||||
[Obsolete("Use EmptyRecycleBin with explicit indication of user ID instead")]
|
|
||||||
public void EmptyRecycleBin() => EmptyRecycleBin(0);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Empties the Recycle Bin by deleting all <see cref="IMedia"/> that resides in the bin
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="userId">Optional Id of the User emptying the Recycle Bin</param>
|
|
||||||
public void EmptyRecycleBin(int userId = 0)
|
|
||||||
{
|
{
|
||||||
using (new WriteLock(Locker))
|
using (new WriteLock(Locker))
|
||||||
{
|
{
|
||||||
@@ -1014,7 +1006,7 @@ namespace Umbraco.Core.Services
|
|||||||
recycleBinEventArgs.RecycleBinEmptiedSuccessfully = success;
|
recycleBinEventArgs.RecycleBinEmptiedSuccessfully = success;
|
||||||
uow.Events.Dispatch(EmptiedRecycleBin, this, recycleBinEventArgs);
|
uow.Events.Dispatch(EmptiedRecycleBin, this, recycleBinEventArgs);
|
||||||
|
|
||||||
Audit(uow, AuditType.Delete, "Empty Media Recycle Bin performed by user", userId, Constants.System.RecycleBinMedia);
|
Audit(uow, AuditType.Delete, "Empty Media Recycle Bin performed by user", 0, Constants.System.RecycleBinMedia);
|
||||||
uow.Commit();
|
uow.Commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Umbraco.Core.Events;
|
using Umbraco.Core.Events;
|
||||||
using Umbraco.Core.Logging;
|
using Umbraco.Core.Logging;
|
||||||
@@ -70,11 +69,6 @@ namespace Umbraco.Core.Services
|
|||||||
|
|
||||||
public void Save(IMemberGroup memberGroup, bool raiseEvents = true)
|
public void Save(IMemberGroup memberGroup, bool raiseEvents = true)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(memberGroup.Name))
|
|
||||||
{
|
|
||||||
throw new InvalidOperationException("The name of a MemberGroup can not be empty");
|
|
||||||
}
|
|
||||||
|
|
||||||
using (var uow = UowProvider.GetUnitOfWork())
|
using (var uow = UowProvider.GetUnitOfWork())
|
||||||
{
|
{
|
||||||
var saveEventArgs = new SaveEventArgs<IMemberGroup>(memberGroup);
|
var saveEventArgs = new SaveEventArgs<IMemberGroup>(memberGroup);
|
||||||
|
|||||||
@@ -124,18 +124,11 @@ namespace Umbraco.Core.Services
|
|||||||
var notifications = GetUsersNotifications(users.Select(x => x.Id), action, Enumerable.Empty<int>(), Constants.ObjectTypes.DocumentGuid).ToList();
|
var notifications = GetUsersNotifications(users.Select(x => x.Id), action, Enumerable.Empty<int>(), Constants.ObjectTypes.DocumentGuid).ToList();
|
||||||
if (notifications.Count == 0) break;
|
if (notifications.Count == 0) break;
|
||||||
|
|
||||||
while (notifications.Count > 0)
|
var i = 0;
|
||||||
|
foreach (var user in users)
|
||||||
{
|
{
|
||||||
var notification = notifications[0];
|
// continue if there's no notification for this user
|
||||||
var isMatched = false;
|
if (notifications[i].UserId != user.Id) continue; // next user
|
||||||
|
|
||||||
// grab user whose associated to the notification
|
|
||||||
var user = users.Where(x => x.Id == notification.UserId).FirstOrDefault();
|
|
||||||
|
|
||||||
if (user == null)
|
|
||||||
{
|
|
||||||
notifications.RemoveAll(x => x.UserId == notification.UserId);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var j = 0; j < entitiesL.Count; j++)
|
for (var j = 0; j < entitiesL.Count; j++)
|
||||||
{
|
{
|
||||||
@@ -143,9 +136,7 @@ namespace Umbraco.Core.Services
|
|||||||
var path = paths[j];
|
var path = paths[j];
|
||||||
|
|
||||||
// test if the notification applies to the path ie to this entity
|
// test if the notification applies to the path ie to this entity
|
||||||
if (path.Contains(notification.EntityId) == false) continue; // next entity
|
if (path.Contains(notifications[i].EntityId) == false) continue; // next entity
|
||||||
|
|
||||||
isMatched = true;
|
|
||||||
|
|
||||||
if (prevVersionDictionary.ContainsKey(content.Id) == false)
|
if (prevVersionDictionary.ContainsKey(content.Id) == false)
|
||||||
{
|
{
|
||||||
@@ -155,19 +146,16 @@ namespace Umbraco.Core.Services
|
|||||||
// queue notification
|
// queue notification
|
||||||
var req = CreateNotificationRequest(operatingUser, user, content, prevVersionDictionary[content.Id], actionName, http, createSubject, createBody);
|
var req = CreateNotificationRequest(operatingUser, user, content, prevVersionDictionary[content.Id], actionName, http, createSubject, createBody);
|
||||||
Enqueue(req);
|
Enqueue(req);
|
||||||
|
|
||||||
// don't process any further entities as a notification has been sent
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// when a match has been found, skip other notifications for user.
|
// skip other notifications for this user, essentially this means moving i to the next index of notifications
|
||||||
if (isMatched)
|
// for the next user.
|
||||||
|
do
|
||||||
{
|
{
|
||||||
notifications.RemoveAll(x => x.UserId == notification.UserId);
|
i++;
|
||||||
continue;
|
} while (i < notifications.Count && notifications[i].UserId == user.Id);
|
||||||
}
|
|
||||||
|
|
||||||
notifications.Remove(notification);
|
if (i >= notifications.Count) break; // break if no more notifications
|
||||||
}
|
}
|
||||||
|
|
||||||
// load more users if any
|
// load more users if any
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Umbraco.Core.Events;
|
using Umbraco.Core.Events;
|
||||||
using Umbraco.Core.Logging;
|
using Umbraco.Core.Logging;
|
||||||
@@ -305,36 +304,39 @@ namespace Umbraco.Core.Services
|
|||||||
/// Gets the Child object from a Relation as an <see cref="IUmbracoEntity"/>
|
/// Gets the Child object from a Relation as an <see cref="IUmbracoEntity"/>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relation">Relation to retrieve child object from</param>
|
/// <param name="relation">Relation to retrieve child object from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
public IUmbracoEntity GetChildEntityFromRelation(IRelation relation)
|
public IUmbracoEntity GetChildEntityFromRelation(IRelation relation, bool loadBaseType = false)
|
||||||
{
|
{
|
||||||
var objectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ChildObjectType);
|
var objectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ChildObjectType);
|
||||||
return _entityService.Get(relation.ChildId, objectType);
|
return _entityService.Get(relation.ChildId, objectType, loadBaseType);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the Parent object from a Relation as an <see cref="IUmbracoEntity"/>
|
/// Gets the Parent object from a Relation as an <see cref="IUmbracoEntity"/>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relation">Relation to retrieve parent object from</param>
|
/// <param name="relation">Relation to retrieve parent object from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An <see cref="IUmbracoEntity"/></returns>
|
||||||
public IUmbracoEntity GetParentEntityFromRelation(IRelation relation)
|
public IUmbracoEntity GetParentEntityFromRelation(IRelation relation, bool loadBaseType = false)
|
||||||
{
|
{
|
||||||
var objectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ParentObjectType);
|
var objectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ParentObjectType);
|
||||||
return _entityService.Get(relation.ParentId, objectType);
|
return _entityService.Get(relation.ParentId, objectType, loadBaseType);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the Parent and Child objects from a Relation as a <see cref="Tuple"/>"/> with <see cref="IUmbracoEntity"/>.
|
/// Gets the Parent and Child objects from a Relation as a <see cref="Tuple"/>"/> with <see cref="IUmbracoEntity"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relation">Relation to retrieve parent and child object from</param>
|
/// <param name="relation">Relation to retrieve parent and child object from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>Returns a Tuple with Parent (item1) and Child (item2)</returns>
|
/// <returns>Returns a Tuple with Parent (item1) and Child (item2)</returns>
|
||||||
public Tuple<IUmbracoEntity, IUmbracoEntity> GetEntitiesFromRelation(IRelation relation)
|
public Tuple<IUmbracoEntity, IUmbracoEntity> GetEntitiesFromRelation(IRelation relation, bool loadBaseType = false)
|
||||||
{
|
{
|
||||||
var childObjectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ChildObjectType);
|
var childObjectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ChildObjectType);
|
||||||
var parentObjectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ParentObjectType);
|
var parentObjectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ParentObjectType);
|
||||||
|
|
||||||
var child = _entityService.Get(relation.ChildId, childObjectType);
|
var child = _entityService.Get(relation.ChildId, childObjectType, loadBaseType);
|
||||||
var parent = _entityService.Get(relation.ParentId, parentObjectType);
|
var parent = _entityService.Get(relation.ParentId, parentObjectType, loadBaseType);
|
||||||
|
|
||||||
return new Tuple<IUmbracoEntity, IUmbracoEntity>(parent, child);
|
return new Tuple<IUmbracoEntity, IUmbracoEntity>(parent, child);
|
||||||
}
|
}
|
||||||
@@ -343,13 +345,14 @@ namespace Umbraco.Core.Services
|
|||||||
/// Gets the Child objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
/// Gets the Child objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relations">List of relations to retrieve child objects from</param>
|
/// <param name="relations">List of relations to retrieve child objects from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>An enumerable list of <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An enumerable list of <see cref="IUmbracoEntity"/></returns>
|
||||||
public IEnumerable<IUmbracoEntity> GetChildEntitiesFromRelations(IEnumerable<IRelation> relations)
|
public IEnumerable<IUmbracoEntity> GetChildEntitiesFromRelations(IEnumerable<IRelation> relations, bool loadBaseType = false)
|
||||||
{
|
{
|
||||||
foreach (var relation in relations)
|
foreach (var relation in relations)
|
||||||
{
|
{
|
||||||
var objectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ChildObjectType);
|
var objectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ChildObjectType);
|
||||||
yield return _entityService.Get(relation.ChildId, objectType);
|
yield return _entityService.Get(relation.ChildId, objectType, loadBaseType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -357,13 +360,15 @@ namespace Umbraco.Core.Services
|
|||||||
/// Gets the Parent objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
/// Gets the Parent objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relations">List of relations to retrieve parent objects from</param>
|
/// <param name="relations">List of relations to retrieve parent objects from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>An enumerable list of <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An enumerable list of <see cref="IUmbracoEntity"/></returns>
|
||||||
public IEnumerable<IUmbracoEntity> GetParentEntitiesFromRelations(IEnumerable<IRelation> relations)
|
public IEnumerable<IUmbracoEntity> GetParentEntitiesFromRelations(IEnumerable<IRelation> relations,
|
||||||
|
bool loadBaseType = false)
|
||||||
{
|
{
|
||||||
foreach (var relation in relations)
|
foreach (var relation in relations)
|
||||||
{
|
{
|
||||||
var objectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ParentObjectType);
|
var objectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ParentObjectType);
|
||||||
yield return _entityService.Get(relation.ParentId, objectType);
|
yield return _entityService.Get(relation.ParentId, objectType, loadBaseType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -371,17 +376,19 @@ namespace Umbraco.Core.Services
|
|||||||
/// Gets the Parent and Child objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
/// Gets the Parent and Child objects from a list of Relations as a list of <see cref="IUmbracoEntity"/> objects.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="relations">List of relations to retrieve parent and child objects from</param>
|
/// <param name="relations">List of relations to retrieve parent and child objects from</param>
|
||||||
|
/// <param name="loadBaseType">Optional bool to load the complete object graph when set to <c>False</c></param>
|
||||||
/// <returns>An enumerable list of <see cref="Tuple"/> with <see cref="IUmbracoEntity"/></returns>
|
/// <returns>An enumerable list of <see cref="Tuple"/> with <see cref="IUmbracoEntity"/></returns>
|
||||||
public IEnumerable<Tuple<IUmbracoEntity, IUmbracoEntity>> GetEntitiesFromRelations(
|
public IEnumerable<Tuple<IUmbracoEntity, IUmbracoEntity>> GetEntitiesFromRelations(
|
||||||
IEnumerable<IRelation> relations)
|
IEnumerable<IRelation> relations,
|
||||||
|
bool loadBaseType = false)
|
||||||
{
|
{
|
||||||
foreach (var relation in relations)
|
foreach (var relation in relations)
|
||||||
{
|
{
|
||||||
var childObjectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ChildObjectType);
|
var childObjectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ChildObjectType);
|
||||||
var parentObjectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ParentObjectType);
|
var parentObjectType = UmbracoObjectTypesExtensions.GetUmbracoObjectType(relation.RelationType.ParentObjectType);
|
||||||
|
|
||||||
var child = _entityService.Get(relation.ChildId, childObjectType);
|
var child = _entityService.Get(relation.ChildId, childObjectType, loadBaseType);
|
||||||
var parent = _entityService.Get(relation.ParentId, parentObjectType);
|
var parent = _entityService.Get(relation.ParentId, parentObjectType, loadBaseType);
|
||||||
|
|
||||||
yield return new Tuple<IUmbracoEntity, IUmbracoEntity>(parent, child);
|
yield return new Tuple<IUmbracoEntity, IUmbracoEntity>(parent, child);
|
||||||
}
|
}
|
||||||
@@ -737,31 +744,5 @@ namespace Umbraco.Core.Services
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static event TypedEventHandler<IRelationService, SaveEventArgs<IRelationType>> SavedRelationType;
|
public static event TypedEventHandler<IRelationService, SaveEventArgs<IRelationType>> SavedRelationType;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Obsolete - only here for compat
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IUmbracoEntity GetChildEntityFromRelation(IRelation relation, bool loadBaseType = false) => GetChildEntityFromRelation(relation);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IUmbracoEntity GetParentEntityFromRelation(IRelation relation, bool loadBaseType = false) => GetParentEntityFromRelation(relation);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public Tuple<IUmbracoEntity, IUmbracoEntity> GetEntitiesFromRelation(IRelation relation, bool loadBaseType = false) => GetEntitiesFromRelation(relation);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IEnumerable<IUmbracoEntity> GetChildEntitiesFromRelations(IEnumerable<IRelation> relations, bool loadBaseType = false) => GetChildEntitiesFromRelations(relations);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IEnumerable<IUmbracoEntity> GetParentEntitiesFromRelations(IEnumerable<IRelation> relations, bool loadBaseType = false) => GetParentEntitiesFromRelations(relations);
|
|
||||||
|
|
||||||
[Obsolete("Use the overload that doesn't specify loadBaseType instead, loadBaseType will not affect any results")]
|
|
||||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
|
||||||
public IEnumerable<Tuple<IUmbracoEntity, IUmbracoEntity>> GetEntitiesFromRelations(IEnumerable<IRelation> relations, bool loadBaseType = false) => GetEntitiesFromRelations(relations);
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -189,6 +189,7 @@ namespace Umbraco.Core
|
|||||||
outputArray[i] = char.IsLetterOrDigit(inputArray[i]) ? inputArray[i] : replacement;
|
outputArray[i] = char.IsLetterOrDigit(inputArray[i]) ? inputArray[i] : replacement;
|
||||||
return new string(outputArray);
|
return new string(outputArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly char[] CleanForXssChars = "*?(){}[];:%<>/\\|&'\"".ToCharArray();
|
private static readonly char[] CleanForXssChars = "*?(){}[];:%<>/\\|&'\"".ToCharArray();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -541,7 +542,7 @@ namespace Umbraco.Core
|
|||||||
public static string StripHtml(this string text)
|
public static string StripHtml(this string text)
|
||||||
{
|
{
|
||||||
const string pattern = @"<(.|\n)*?>";
|
const string pattern = @"<(.|\n)*?>";
|
||||||
return Regex.Replace(text, pattern, string.Empty);
|
return Regex.Replace(text, pattern, String.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -731,7 +732,6 @@ namespace Umbraco.Core
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="stringToConvert">Referrs to itself</param>
|
/// <param name="stringToConvert">Referrs to itself</param>
|
||||||
/// <returns>The MD5 hashed string</returns>
|
/// <returns>The MD5 hashed string</returns>
|
||||||
[Obsolete("Please use the GenerateHash method instead. This may be removed in future versions")]
|
|
||||||
public static string ToMd5(this string stringToConvert)
|
public static string ToMd5(this string stringToConvert)
|
||||||
{
|
{
|
||||||
return stringToConvert.GenerateHash("MD5");
|
return stringToConvert.GenerateHash("MD5");
|
||||||
@@ -742,7 +742,6 @@ namespace Umbraco.Core
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="stringToConvert">referrs to itself</param>
|
/// <param name="stringToConvert">referrs to itself</param>
|
||||||
/// <returns>The SHA1 hashed string</returns>
|
/// <returns>The SHA1 hashed string</returns>
|
||||||
[Obsolete("Please use the GenerateHash method instead. This may be removed in future versions")]
|
|
||||||
public static string ToSHA1(this string stringToConvert)
|
public static string ToSHA1(this string stringToConvert)
|
||||||
{
|
{
|
||||||
return stringToConvert.GenerateHash("SHA1");
|
return stringToConvert.GenerateHash("SHA1");
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>Umbraco.Core</RootNamespace>
|
<RootNamespace>Umbraco.Core</RootNamespace>
|
||||||
<AssemblyName>Umbraco.Core</AssemblyName>
|
<AssemblyName>Umbraco.Core</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
|
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
|
||||||
<RestorePackages>true</RestorePackages>
|
<RestorePackages>true</RestorePackages>
|
||||||
@@ -48,11 +48,11 @@
|
|||||||
<Reference Include="ClientDependency.Core, Version=1.9.7.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="ClientDependency.Core, Version=1.9.7.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\ClientDependency.1.9.7\lib\net45\ClientDependency.Core.dll</HintPath>
|
<HintPath>..\packages\ClientDependency.1.9.7\lib\net45\ClientDependency.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="HtmlAgilityPack, Version=1.8.8.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
<Reference Include="HtmlAgilityPack, Version=1.4.9.5, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\HtmlAgilityPack.1.8.8\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
<HintPath>..\packages\HtmlAgilityPack.1.4.9.5\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="ImageProcessor, Version=2.7.0.100, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="ImageProcessor, Version=2.5.6.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\ImageProcessor.2.7.0.100\lib\net452\ImageProcessor.dll</HintPath>
|
<HintPath>..\packages\ImageProcessor.2.5.6\lib\net45\ImageProcessor.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
|
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
|
||||||
@@ -61,22 +61,22 @@
|
|||||||
<HintPath>..\packages\Log4Net.Async.2.0.4\lib\net40\Log4Net.Async.dll</HintPath>
|
<HintPath>..\packages\Log4Net.Async.2.0.4\lib\net40\Log4Net.Async.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.2\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.AspNet.Identity.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.AspNet.Identity.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.2\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.3.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Security, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Security, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Security.4.0.1\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Security.3.1.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Security.Cookies, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Security.Cookies, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Security.Cookies.4.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Security.Cookies.3.1.0\lib\net45\Microsoft.Owin.Security.Cookies.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Security.OAuth, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Security.OAuth, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.4.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.1.0\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MiniProfiler, Version=2.1.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3, processorArchitecture=MSIL">
|
<Reference Include="MiniProfiler, Version=2.1.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MiniProfiler.2.1.0\lib\net40\MiniProfiler.dll</HintPath>
|
<HintPath>..\packages\MiniProfiler.2.1.0\lib\net40\MiniProfiler.dll</HintPath>
|
||||||
@@ -85,14 +85,14 @@
|
|||||||
<HintPath>..\packages\MySql.Data.6.9.9\lib\net45\MySql.Data.dll</HintPath>
|
<HintPath>..\packages\MySql.Data.6.9.9\lib\net45\MySql.Data.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.10.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Semver, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Semver, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
|
<HintPath>..\packages\semver.1.1.2\lib\net45\Semver.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.ComponentModel.Composition" />
|
<Reference Include="System.ComponentModel.Composition" />
|
||||||
@@ -115,8 +115,8 @@
|
|||||||
<Reference Include="System.Runtime.Caching" />
|
<Reference Include="System.Runtime.Caching" />
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
<Reference Include="System.Runtime.Serialization" />
|
||||||
<Reference Include="System.Transactions" />
|
<Reference Include="System.Transactions" />
|
||||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
<Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
|
<HintPath>..\packages\System.ValueTuple.4.4.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web" />
|
<Reference Include="System.Web" />
|
||||||
<Reference Include="System.Web.ApplicationServices" />
|
<Reference Include="System.Web.ApplicationServices" />
|
||||||
@@ -324,9 +324,6 @@
|
|||||||
<Compile Include="Configuration\UmbracoSettings\WebRoutingElement.cs" />
|
<Compile Include="Configuration\UmbracoSettings\WebRoutingElement.cs" />
|
||||||
<Compile Include="Configuration\UmbracoVersion.cs" />
|
<Compile Include="Configuration\UmbracoVersion.cs" />
|
||||||
<Compile Include="Attempt.cs" />
|
<Compile Include="Attempt.cs" />
|
||||||
<Compile Include="Constants-DataTypes.cs">
|
|
||||||
<DependentUpon>Constants.cs</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Constants-DeploySelector.cs" />
|
<Compile Include="Constants-DeploySelector.cs" />
|
||||||
<Compile Include="Constants-Examine.cs" />
|
<Compile Include="Constants-Examine.cs" />
|
||||||
<Compile Include="Constants-Icons.cs" />
|
<Compile Include="Constants-Icons.cs" />
|
||||||
@@ -377,7 +374,6 @@
|
|||||||
<Compile Include="Models\Consent.cs" />
|
<Compile Include="Models\Consent.cs" />
|
||||||
<Compile Include="Models\ConsentExtensions.cs" />
|
<Compile Include="Models\ConsentExtensions.cs" />
|
||||||
<Compile Include="Models\ConsentState.cs" />
|
<Compile Include="Models\ConsentState.cs" />
|
||||||
<Compile Include="Models\DataTypeExtensions.cs" />
|
|
||||||
<Compile Include="Models\EntityBase\EntityPath.cs" />
|
<Compile Include="Models\EntityBase\EntityPath.cs" />
|
||||||
<Compile Include="Models\EntityBase\IDeletableEntity.cs" />
|
<Compile Include="Models\EntityBase\IDeletableEntity.cs" />
|
||||||
<Compile Include="Models\IAuditEntry.cs" />
|
<Compile Include="Models\IAuditEntry.cs" />
|
||||||
@@ -576,7 +572,6 @@
|
|||||||
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenEightZero\AddInstructionCountColumn.cs" />
|
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenEightZero\AddInstructionCountColumn.cs" />
|
||||||
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenEightZero\AddCmsMediaTable.cs" />
|
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenEightZero\AddCmsMediaTable.cs" />
|
||||||
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenEightZero\AddUserLoginTable.cs" />
|
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenEightZero\AddUserLoginTable.cs" />
|
||||||
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenFourteenZero\UpdateMemberGroupPickerData.cs" />
|
|
||||||
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenTwelveZero\RenameTrueFalseField.cs" />
|
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenTwelveZero\RenameTrueFalseField.cs" />
|
||||||
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenTwelveZero\SetDefaultTagsStorageType.cs" />
|
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenTwelveZero\SetDefaultTagsStorageType.cs" />
|
||||||
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenNineZero\AddUmbracoAuditTable.cs" />
|
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenNineZero\AddUmbracoAuditTable.cs" />
|
||||||
@@ -768,7 +763,6 @@
|
|||||||
<Compile Include="Services\ConsentService.cs" />
|
<Compile Include="Services\ConsentService.cs" />
|
||||||
<Compile Include="Services\ContentTypeServiceExtensions.cs" />
|
<Compile Include="Services\ContentTypeServiceExtensions.cs" />
|
||||||
<Compile Include="Models\RedirectUrl.cs" />
|
<Compile Include="Models\RedirectUrl.cs" />
|
||||||
<Compile Include="Services\DateTypeServiceExtensions.cs" />
|
|
||||||
<Compile Include="Services\IConsentService.cs" />
|
<Compile Include="Services\IConsentService.cs" />
|
||||||
<Compile Include="Services\IContentServiceBase.cs" />
|
<Compile Include="Services\IContentServiceBase.cs" />
|
||||||
<Compile Include="Services\IdkMap.cs" />
|
<Compile Include="Services\IdkMap.cs" />
|
||||||
|
|||||||
@@ -150,9 +150,9 @@ namespace Umbraco.Core
|
|||||||
var toInclude = new[] {".aspx", ".ashx", ".asmx", ".axd", ".svc"};
|
var toInclude = new[] {".aspx", ".ashx", ".asmx", ".axd", ".svc"};
|
||||||
return toInclude.Any(ext.InvariantEquals) == false;
|
return toInclude.Any(ext.InvariantEquals) == false;
|
||||||
}
|
}
|
||||||
catch (ArgumentException)
|
catch (ArgumentException ex)
|
||||||
{
|
{
|
||||||
LogHelper.Debug(typeof(UriExtensions), "Failed to determine if request was client side. Due to invalid characters in path: {0}", () => url.LocalPath);
|
LogHelper.Error(typeof(UriExtensions), "Failed to determine if request was client side", ex);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
@@ -16,19 +16,19 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
|
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /></startup><system.data>
|
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup><system.data>
|
||||||
<DbProviderFactories>
|
<DbProviderFactories>
|
||||||
<remove invariant="MySql.Data.MySqlClient" />
|
<remove invariant="MySql.Data.MySqlClient" />
|
||||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||||
|
|||||||
@@ -2,21 +2,21 @@
|
|||||||
<packages>
|
<packages>
|
||||||
<package id="AutoMapper" version="3.3.1" targetFramework="net45" />
|
<package id="AutoMapper" version="3.3.1" targetFramework="net45" />
|
||||||
<package id="ClientDependency" version="1.9.7" targetFramework="net45" />
|
<package id="ClientDependency" version="1.9.7" targetFramework="net45" />
|
||||||
<package id="HtmlAgilityPack" version="1.8.8" targetFramework="net452" />
|
<package id="HtmlAgilityPack" version="1.4.9.5" targetFramework="net45" />
|
||||||
<package id="ImageProcessor" version="2.7.0.100" targetFramework="net452" />
|
<package id="ImageProcessor" version="2.5.6" targetFramework="net45" />
|
||||||
<package id="log4net" version="2.0.8" targetFramework="net45" />
|
<package id="log4net" version="2.0.8" targetFramework="net45" />
|
||||||
<package id="Log4Net.Async" version="2.0.4" targetFramework="net45" />
|
<package id="Log4Net.Async" version="2.0.4" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.Identity.Core" version="2.2.2" targetFramework="net452" />
|
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.2" targetFramework="net452" />
|
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin.Security" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.Security" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin.Security.Cookies" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.Security.Cookies" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin.Security.OAuth" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.Security.OAuth" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="MiniProfiler" version="2.1.0" targetFramework="net45" />
|
<package id="MiniProfiler" version="2.1.0" targetFramework="net45" />
|
||||||
<package id="MySql.Data" version="6.9.9" targetFramework="net45" />
|
<package id="MySql.Data" version="6.9.9" targetFramework="net45" />
|
||||||
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net452" />
|
<package id="Newtonsoft.Json" version="10.0.2" targetFramework="net45" />
|
||||||
<package id="Owin" version="1.0" targetFramework="net45" />
|
<package id="Owin" version="1.0" targetFramework="net45" />
|
||||||
<package id="semver" version="1.1.2" targetFramework="net452" />
|
<package id="semver" version="1.1.2" targetFramework="net45" />
|
||||||
<package id="SqlServerCE" version="4.0.0.1" targetFramework="net45" />
|
<package id="SqlServerCE" version="4.0.0.1" targetFramework="net45" />
|
||||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net452" />
|
<package id="System.ValueTuple" version="4.4.0" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.2.0.26\build\Microsoft.Diagnostics.Tracing.TraceEvent.props" Condition="Exists('..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.2.0.26\build\Microsoft.Diagnostics.Tracing.TraceEvent.props')" />
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
@@ -10,7 +9,7 @@
|
|||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>Umbraco.Tests.Benchmarks</RootNamespace>
|
<RootNamespace>Umbraco.Tests.Benchmarks</RootNamespace>
|
||||||
<AssemblyName>Umbraco.Tests.Benchmarks</AssemblyName>
|
<AssemblyName>Umbraco.Tests.Benchmarks</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<NuGetPackageImportStamp>
|
<NuGetPackageImportStamp>
|
||||||
</NuGetPackageImportStamp>
|
</NuGetPackageImportStamp>
|
||||||
@@ -40,8 +39,8 @@
|
|||||||
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="BenchmarkDotNet, Version=0.10.3.0, Culture=neutral, PublicKeyToken=aa0ca2f9092cefc4, processorArchitecture=MSIL">
|
<Reference Include="BenchmarkDotNet, Version=0.10.12.0, Culture=neutral, PublicKeyToken=aa0ca2f9092cefc4, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\BenchmarkDotNet.0.10.3\lib\net45\BenchmarkDotNet.dll</HintPath>
|
<HintPath>..\packages\BenchmarkDotNet.0.10.12\lib\net46\BenchmarkDotNet.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="BenchmarkDotNet.Core, Version=0.10.12.0, Culture=neutral, PublicKeyToken=aa0ca2f9092cefc4, processorArchitecture=MSIL">
|
<Reference Include="BenchmarkDotNet.Core, Version=0.10.12.0, Culture=neutral, PublicKeyToken=aa0ca2f9092cefc4, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\BenchmarkDotNet.Core.0.10.12\lib\net46\BenchmarkDotNet.Core.dll</HintPath>
|
<HintPath>..\packages\BenchmarkDotNet.Core.0.10.12\lib\net46\BenchmarkDotNet.Core.dll</HintPath>
|
||||||
@@ -49,27 +48,20 @@
|
|||||||
<Reference Include="BenchmarkDotNet.Diagnostics.Windows, Version=0.9.9.0, Culture=neutral, PublicKeyToken=aa0ca2f9092cefc4, processorArchitecture=MSIL">
|
<Reference Include="BenchmarkDotNet.Diagnostics.Windows, Version=0.9.9.0, Culture=neutral, PublicKeyToken=aa0ca2f9092cefc4, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\BenchmarkDotNet.Diagnostics.Windows.0.9.9\lib\net45\BenchmarkDotNet.Diagnostics.Windows.dll</HintPath>
|
<HintPath>..\packages\BenchmarkDotNet.Diagnostics.Windows.0.9.9\lib\net45\BenchmarkDotNet.Diagnostics.Windows.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="BenchmarkDotNet.Toolchains.Roslyn, Version=0.10.3.0, Culture=neutral, PublicKeyToken=aa0ca2f9092cefc4, processorArchitecture=MSIL">
|
<Reference Include="BenchmarkDotNet.Toolchains.Roslyn, Version=0.10.12.0, Culture=neutral, PublicKeyToken=aa0ca2f9092cefc4, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\BenchmarkDotNet.Toolchains.Roslyn.0.10.3\lib\net45\BenchmarkDotNet.Toolchains.Roslyn.dll</HintPath>
|
<HintPath>..\packages\BenchmarkDotNet.Toolchains.Roslyn.0.10.12\lib\net46\BenchmarkDotNet.Toolchains.Roslyn.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
|
<Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Castle.Core.4.0.0\lib\net45\Castle.Core.dll</HintPath>
|
<HintPath>..\packages\Castle.Core.4.0.0\lib\net45\Castle.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Dia2Lib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.CodeAnalysis, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.2.0.26\lib\net45\Dia2Lib.dll</HintPath>
|
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.2.4.0\lib\netstandard1.3\Microsoft.CodeAnalysis.dll</HintPath>
|
||||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.CodeAnalysis, Version=2.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.2.9.0\lib\netstandard1.3\Microsoft.CodeAnalysis.dll</HintPath>
|
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.2.4.0\lib\netstandard1.3\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=2.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Diagnostics.Tracing.TraceEvent, Version=1.0.41.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.2.9.0\lib\netstandard1.3\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.41\lib\net40\Microsoft.Diagnostics.Tracing.TraceEvent.dll</HintPath>
|
||||||
</Reference>
|
|
||||||
<Reference Include="Microsoft.Diagnostics.FastSerialization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.2.0.26\lib\net45\Microsoft.Diagnostics.FastSerialization.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Microsoft.Diagnostics.Tracing.TraceEvent, Version=2.0.26.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.2.0.26\lib\net45\Microsoft.Diagnostics.Tracing.TraceEvent.dll</HintPath>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.DotNet.InternalAbstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.DotNet.InternalAbstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.DotNet.InternalAbstractions.1.0.0\lib\net451\Microsoft.DotNet.InternalAbstractions.dll</HintPath>
|
<HintPath>..\packages\Microsoft.DotNet.InternalAbstractions.1.0.0\lib\net451\Microsoft.DotNet.InternalAbstractions.dll</HintPath>
|
||||||
@@ -77,28 +69,24 @@
|
|||||||
<Reference Include="Microsoft.DotNet.PlatformAbstractions, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.DotNet.PlatformAbstractions, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.DotNet.PlatformAbstractions.1.1.1\lib\net451\Microsoft.DotNet.PlatformAbstractions.dll</HintPath>
|
<HintPath>..\packages\Microsoft.DotNet.PlatformAbstractions.1.1.1\lib\net451\Microsoft.DotNet.PlatformAbstractions.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Win32.Registry, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Win32.Registry, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Win32.Registry.4.5.0\lib\net461\Microsoft.Win32.Registry.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Win32.Registry.4.3.0\lib\net46\Microsoft.Win32.Registry.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Moq, Version=4.1.1309.919, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
|
<Reference Include="Moq, Version=4.1.1309.919, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Moq.4.1.1309.0919\lib\net40\Moq.dll</HintPath>
|
<HintPath>..\packages\Moq.4.1.1309.0919\lib\net40\Moq.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="OSExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.2.0.26\lib\net45\OSExtensions.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll</HintPath>
|
<HintPath>..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Collections.Immutable, Version=1.2.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
|
<HintPath>..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.ComponentModel.Composition" />
|
<Reference Include="System.ComponentModel.Composition" />
|
||||||
<Reference Include="System.Console, Version=4.0.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Console.4.3.1\lib\net46\System.Console.dll</HintPath>
|
<HintPath>..\packages\System.Console.4.3.0\lib\net46\System.Console.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||||
@@ -125,33 +113,11 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Management" />
|
<Reference Include="System.Management" />
|
||||||
<Reference Include="System.Numerics" />
|
<Reference Include="System.Numerics" />
|
||||||
<Reference Include="System.Reflection, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Reflection.Metadata, Version=1.4.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll</HintPath>
|
<HintPath>..\packages\System.Reflection.Metadata.1.4.2\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Reflection.Metadata, Version=1.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Reflection.Metadata.1.6.0\lib\netstandard2.0\System.Reflection.Metadata.dll</HintPath>
|
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net46\System.Security.Cryptography.Algorithms.dll</HintPath>
|
||||||
</Reference>
|
|
||||||
<Reference Include="System.Runtime, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll</HintPath>
|
|
||||||
<Private>True</Private>
|
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System.Runtime.Extensions, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\System.Runtime.Extensions.4.3.1\lib\net462\System.Runtime.Extensions.dll</HintPath>
|
|
||||||
<Private>True</Private>
|
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System.Runtime.InteropServices, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\System.Runtime.InteropServices.4.3.0\lib\net462\System.Runtime.InteropServices.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System.Security.AccessControl, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\System.Security.AccessControl.4.5.0\lib\net461\System.Security.AccessControl.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
|
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
@@ -160,25 +126,21 @@
|
|||||||
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
|
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
|
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net46\System.Security.Cryptography.X509Certificates.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Security.Principal.Windows, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Text.Encoding.CodePages, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Security.Principal.Windows.4.5.0\lib\net461\System.Security.Principal.Windows.dll</HintPath>
|
<HintPath>..\packages\System.Text.Encoding.CodePages.4.3.0\lib\net46\System.Text.Encoding.CodePages.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Threading.Tasks.Extensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Text.Encoding.CodePages.4.5.0\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
|
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.3.0\lib\portable-net45+win8+wp8+wpa81\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||||
</Reference>
|
|
||||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Threading.Thread, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Threading.Thread, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Threading.Thread.4.3.0\lib\net46\System.Threading.Thread.dll</HintPath>
|
<HintPath>..\packages\System.Threading.Thread.4.3.0\lib\net46\System.Threading.Thread.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
<Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
|
<HintPath>..\packages\System.ValueTuple.4.4.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
@@ -187,9 +149,7 @@
|
|||||||
<Reference Include="System.Net.Http" />
|
<Reference Include="System.Net.Http" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.1\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
|
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Xml.XmlDocument, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Xml.XmlDocument, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Xml.XmlDocument.4.3.0\lib\net46\System.Xml.XmlDocument.dll</HintPath>
|
<HintPath>..\packages\System.Xml.XmlDocument.4.3.0\lib\net46\System.Xml.XmlDocument.dll</HintPath>
|
||||||
@@ -200,10 +160,6 @@
|
|||||||
<Reference Include="System.Xml.XPath.XDocument, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Xml.XPath.XDocument, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\System.Xml.XPath.XDocument.4.3.0\lib\net46\System.Xml.XPath.XDocument.dll</HintPath>
|
<HintPath>..\packages\System.Xml.XPath.XDocument.4.3.0\lib\net46\System.Xml.XPath.XDocument.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="TraceReloggerLib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.2.0.26\lib\net45\TraceReloggerLib.dll</HintPath>
|
|
||||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="ConcurrentDictionaryBenchmarks.cs" />
|
<Compile Include="ConcurrentDictionaryBenchmarks.cs" />
|
||||||
@@ -239,10 +195,6 @@
|
|||||||
<Name>Umbraco.Web</Name>
|
<Name>Umbraco.Web</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.2.6.2\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
|
|
||||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.2.6.2\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
@@ -255,11 +207,12 @@
|
|||||||
<PreBuildEvent>xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.1\amd64\*.* "$(TargetDir)amd64\" /Y /F /E /I /C /D
|
<PreBuildEvent>xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.1\amd64\*.* "$(TargetDir)amd64\" /Y /F /E /I /C /D
|
||||||
xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.1\x86\*.* "$(TargetDir)x86\" /Y /F /E /I /C /D</PreBuildEvent>
|
xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.1\x86\*.* "$(TargetDir)x86\" /Y /F /E /I /C /D</PreBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<Import Project="..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.41\build\Microsoft.Diagnostics.Tracing.TraceEvent.targets" Condition="Exists('..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.41\build\Microsoft.Diagnostics.Tracing.TraceEvent.targets')" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.2.0.26\build\Microsoft.Diagnostics.Tracing.TraceEvent.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.2.0.26\build\Microsoft.Diagnostics.Tracing.TraceEvent.props'))" />
|
<Error Condition="!Exists('..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.41\build\Microsoft.Diagnostics.Tracing.TraceEvent.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.41\build\Microsoft.Diagnostics.Tracing.TraceEvent.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-1.2.3.0" newVersion="1.2.3.0" />
|
<bindingRedirect oldVersion="0.0.0.0-1.2.1.0" newVersion="1.2.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
|
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
|
||||||
@@ -16,27 +16,27 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
@@ -64,60 +64,8 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-1.4.3.0" newVersion="1.4.3.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="Microsoft.CodeAnalysis" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="Microsoft.CodeAnalysis.CSharp" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="Microsoft.Diagnostics.Tracing.TraceEvent" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-2.0.26.0" newVersion="2.0.26.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="Microsoft.Win32.Registry" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
|
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" /></startup></configuration>
|
</configuration>
|
||||||
@@ -1,25 +1,25 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="BenchmarkDotNet" version="0.10.3" targetFramework="net462" />
|
<package id="BenchmarkDotNet" version="0.10.12" targetFramework="net46" />
|
||||||
<package id="BenchmarkDotNet.Core" version="0.10.12" targetFramework="net46" />
|
<package id="BenchmarkDotNet.Core" version="0.10.12" targetFramework="net46" />
|
||||||
<package id="BenchmarkDotNet.Diagnostics.Windows" version="0.9.9" targetFramework="net45" />
|
<package id="BenchmarkDotNet.Diagnostics.Windows" version="0.9.9" targetFramework="net45" />
|
||||||
<package id="BenchmarkDotNet.Toolchains.Roslyn" version="0.10.3" targetFramework="net462" />
|
<package id="BenchmarkDotNet.Toolchains.Roslyn" version="0.10.12" targetFramework="net46" />
|
||||||
<package id="Castle.Core" version="4.0.0" targetFramework="net45" />
|
<package id="Castle.Core" version="4.0.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.CodeAnalysis.Analyzers" version="2.6.2" targetFramework="net462" developmentDependency="true" />
|
<package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.CodeAnalysis.Common" version="2.9.0" targetFramework="net462" />
|
<package id="Microsoft.CodeAnalysis.Common" version="2.4.0" targetFramework="net46" />
|
||||||
<package id="Microsoft.CodeAnalysis.CSharp" version="2.9.0" targetFramework="net462" />
|
<package id="Microsoft.CodeAnalysis.CSharp" version="2.4.0" targetFramework="net46" />
|
||||||
<package id="Microsoft.Diagnostics.Tracing.TraceEvent" version="2.0.26" targetFramework="net462" />
|
<package id="Microsoft.Diagnostics.Tracing.TraceEvent" version="1.0.41" targetFramework="net45" />
|
||||||
<package id="Microsoft.DotNet.InternalAbstractions" version="1.0.0" targetFramework="net46" />
|
<package id="Microsoft.DotNet.InternalAbstractions" version="1.0.0" targetFramework="net46" />
|
||||||
<package id="Microsoft.DotNet.PlatformAbstractions" version="1.1.1" targetFramework="net46" />
|
<package id="Microsoft.DotNet.PlatformAbstractions" version="1.1.1" targetFramework="net46" />
|
||||||
<package id="Microsoft.SqlServer.Compact" version="4.0.8854.1" targetFramework="net45" />
|
<package id="Microsoft.SqlServer.Compact" version="4.0.8854.1" targetFramework="net45" />
|
||||||
<package id="Microsoft.Win32.Registry" version="4.5.0" targetFramework="net462" />
|
<package id="Microsoft.Win32.Registry" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="Moq" version="4.1.1309.0919" targetFramework="net45" />
|
<package id="Moq" version="4.1.1309.0919" targetFramework="net45" />
|
||||||
<package id="SqlServerCE" version="4.0.0.1" targetFramework="net45" />
|
<package id="SqlServerCE" version="4.0.0.1" targetFramework="net45" />
|
||||||
<package id="System.AppContext" version="4.3.0" targetFramework="net46" />
|
<package id="System.AppContext" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Collections" version="4.3.0" targetFramework="net46" />
|
<package id="System.Collections" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net46" />
|
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Collections.Immutable" version="1.5.0" targetFramework="net462" />
|
<package id="System.Collections.Immutable" version="1.3.1" targetFramework="net46" />
|
||||||
<package id="System.Console" version="4.3.1" targetFramework="net462" />
|
<package id="System.Console" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net46" />
|
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Diagnostics.FileVersionInfo" version="4.3.0" targetFramework="net46" />
|
<package id="System.Diagnostics.FileVersionInfo" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Diagnostics.StackTrace" version="4.3.0" targetFramework="net46" />
|
<package id="System.Diagnostics.StackTrace" version="4.3.0" targetFramework="net46" />
|
||||||
@@ -31,32 +31,28 @@
|
|||||||
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net46" />
|
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Linq" version="4.3.0" targetFramework="net46" />
|
<package id="System.Linq" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net46" />
|
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Reflection" version="4.3.0" targetFramework="net462" />
|
<package id="System.Reflection" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Reflection.Metadata" version="1.6.0" targetFramework="net462" />
|
<package id="System.Reflection.Metadata" version="1.4.2" targetFramework="net46" />
|
||||||
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net462" />
|
<package id="System.Reflection.Primitives" version="4.0.1" targetFramework="net45" />
|
||||||
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net46" />
|
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Runtime" version="4.3.1" targetFramework="net462" />
|
<package id="System.Runtime" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.1" targetFramework="net462" />
|
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Runtime.Extensions" version="4.3.1" targetFramework="net462" />
|
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net462" />
|
|
||||||
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net462" />
|
|
||||||
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net46" />
|
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Security.AccessControl" version="4.5.0" targetFramework="net462" />
|
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net462" />
|
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net462" />
|
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net462" />
|
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net462" />
|
|
||||||
<package id="System.Security.Principal.Windows" version="4.5.0" targetFramework="net462" />
|
|
||||||
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net46" />
|
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Text.Encoding.CodePages" version="4.5.0" targetFramework="net462" />
|
<package id="System.Text.Encoding.CodePages" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net46" />
|
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Threading" version="4.3.0" targetFramework="net46" />
|
<package id="System.Threading" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net46" />
|
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Threading.Tasks.Extensions" version="4.5.1" targetFramework="net462" />
|
<package id="System.Threading.Tasks.Extensions" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Threading.Tasks.Parallel" version="4.3.0" targetFramework="net46" />
|
<package id="System.Threading.Tasks.Parallel" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Threading.Thread" version="4.3.0" targetFramework="net46" />
|
<package id="System.Threading.Thread" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
|
<package id="System.ValueTuple" version="4.4.0" targetFramework="net46" />
|
||||||
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="net462" />
|
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net46" />
|
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="net46" />
|
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="net46" />
|
||||||
<package id="System.Xml.XmlSerializer" version="4.3.0" targetFramework="net46" />
|
<package id="System.Xml.XmlSerializer" version="4.3.0" targetFramework="net46" />
|
||||||
|
|||||||
@@ -102,14 +102,14 @@
|
|||||||
</system.web>
|
</system.web>
|
||||||
|
|
||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
|
||||||
</startup>
|
</startup>
|
||||||
<runtime>
|
<runtime>
|
||||||
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
|
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
|
|
||||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||||
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
|
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
|
||||||
|
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
|
|
||||||
@@ -141,19 +141,19 @@
|
|||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ namespace Umbraco.Tests.CodeFirst
|
|||||||
new PublishedPropertyType("articleDate", 0, "?"),
|
new PublishedPropertyType("articleDate", 0, "?"),
|
||||||
new PublishedPropertyType("pageTitle", 0, "?"),
|
new PublishedPropertyType("pageTitle", 0, "?"),
|
||||||
};
|
};
|
||||||
var type = new AutoPublishedContentType(0, "anything", "anything", "anything", propertyTypes);
|
var type = new AutoPublishedContentType(0, "anything", propertyTypes);
|
||||||
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
||||||
Debug.Print("INIT STRONG {0}",
|
Debug.Print("INIT STRONG {0}",
|
||||||
PublishedContentType.Get(PublishedItemType.Content, "anything")
|
PublishedContentType.Get(PublishedItemType.Content, "anything")
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace Umbraco.Tests
|
|||||||
// AutoPublishedContentType will auto-generate other properties
|
// AutoPublishedContentType will auto-generate other properties
|
||||||
new PublishedPropertyType("content", 0, "?"),
|
new PublishedPropertyType("content", 0, "?"),
|
||||||
};
|
};
|
||||||
var type = new AutoPublishedContentType(0, "anything", "anything", "anything", propertyTypes);
|
var type = new AutoPublishedContentType(0, "anything", propertyTypes);
|
||||||
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
||||||
Debug.Print("INIT LIB {0}",
|
Debug.Print("INIT LIB {0}",
|
||||||
PublishedContentType.Get(PublishedItemType.Content, "anything")
|
PublishedContentType.Get(PublishedItemType.Content, "anything")
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ namespace Umbraco.Tests.Membership
|
|||||||
new PublishedPropertyType("bodyText", 0, "?"),
|
new PublishedPropertyType("bodyText", 0, "?"),
|
||||||
new PublishedPropertyType("author", 0, "?")
|
new PublishedPropertyType("author", 0, "?")
|
||||||
};
|
};
|
||||||
var type = new AutoPublishedContentType(0, "anything", "anything", "anything", propertyTypes);
|
var type = new AutoPublishedContentType(0, "anything", propertyTypes);
|
||||||
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace Umbraco.Tests.Migrations.SqlScripts {
|
|||||||
// class via a tool like ResGen or Visual Studio.
|
// class via a tool like ResGen or Visual Studio.
|
||||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
// with the /str option, or rebuild your VS project.
|
// with the /str option, or rebuild your VS project.
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class SqlResources {
|
internal class SqlResources {
|
||||||
|
|||||||
@@ -178,6 +178,17 @@ namespace Umbraco.Tests.Models
|
|||||||
item.AdditionalData.Add("test1", 3);
|
item.AdditionalData.Add("test1", 3);
|
||||||
item.AdditionalData.Add("test2", "valuie");
|
item.AdditionalData.Add("test2", "valuie");
|
||||||
|
|
||||||
|
item.AdditionalData.Add("test3", new UmbracoEntity.EntityProperty()
|
||||||
|
{
|
||||||
|
Value = "test",
|
||||||
|
PropertyEditorAlias = "TestPropertyEditor"
|
||||||
|
});
|
||||||
|
item.AdditionalData.Add("test4", new UmbracoEntity.EntityProperty()
|
||||||
|
{
|
||||||
|
Value = "test2",
|
||||||
|
PropertyEditorAlias = "TestPropertyEditor2"
|
||||||
|
});
|
||||||
|
|
||||||
var clone = (UmbracoEntity)item.DeepClone();
|
var clone = (UmbracoEntity)item.DeepClone();
|
||||||
|
|
||||||
Assert.AreNotSame(clone, item);
|
Assert.AreNotSame(clone, item);
|
||||||
@@ -239,6 +250,16 @@ namespace Umbraco.Tests.Models
|
|||||||
};
|
};
|
||||||
item.AdditionalData.Add("test1", 3);
|
item.AdditionalData.Add("test1", 3);
|
||||||
item.AdditionalData.Add("test2", "valuie");
|
item.AdditionalData.Add("test2", "valuie");
|
||||||
|
item.AdditionalData.Add("test3", new UmbracoEntity.EntityProperty()
|
||||||
|
{
|
||||||
|
Value = "test",
|
||||||
|
PropertyEditorAlias = "TestPropertyEditor"
|
||||||
|
});
|
||||||
|
item.AdditionalData.Add("test4", new UmbracoEntity.EntityProperty()
|
||||||
|
{
|
||||||
|
Value = "test2",
|
||||||
|
PropertyEditorAlias = "TestPropertyEditor2"
|
||||||
|
});
|
||||||
|
|
||||||
var result = ss.ToStream(item);
|
var result = ss.ToStream(item);
|
||||||
var json = result.ResultStream.ToJsonString();
|
var json = result.ResultStream.ToJsonString();
|
||||||
|
|||||||
@@ -327,7 +327,7 @@ AnotherContentFinder
|
|||||||
public void Resolves_RestExtensions()
|
public void Resolves_RestExtensions()
|
||||||
{
|
{
|
||||||
var types = _manager.ResolveRestExtensions();
|
var types = _manager.ResolveRestExtensions();
|
||||||
Assert.AreEqual(2, types.Count());
|
Assert.AreEqual(3, types.Count());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ namespace Umbraco.Tests.PublishedContent
|
|||||||
new PublishedPropertyType("creatorName", 0, "?"),
|
new PublishedPropertyType("creatorName", 0, "?"),
|
||||||
new PublishedPropertyType("blah", 0, "?"), // ugly error when that one is missing...
|
new PublishedPropertyType("blah", 0, "?"), // ugly error when that one is missing...
|
||||||
};
|
};
|
||||||
var type = new AutoPublishedContentType(0, "anything", "anything", "anything", propertyTypes);
|
var type = new AutoPublishedContentType(0, "anything", propertyTypes);
|
||||||
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace Umbraco.Tests.PublishedContent
|
|||||||
|
|
||||||
// need to specify a custom callback for unit tests
|
// need to specify a custom callback for unit tests
|
||||||
// AutoPublishedContentTypes generates properties automatically
|
// AutoPublishedContentTypes generates properties automatically
|
||||||
var type = new AutoPublishedContentType(0, "anything", "anything", "anything", new PublishedPropertyType[] {});
|
var type = new AutoPublishedContentType(0, "anything", new PublishedPropertyType[] {});
|
||||||
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
||||||
|
|
||||||
// need to specify a different callback for testing
|
// need to specify a different callback for testing
|
||||||
|
|||||||
@@ -234,9 +234,9 @@ namespace Umbraco.Tests.PublishedContent
|
|||||||
new PublishedPropertyType("prop1", 1, "?"),
|
new PublishedPropertyType("prop1", 1, "?"),
|
||||||
};
|
};
|
||||||
|
|
||||||
var contentType1 = new PublishedContentType(1, "ContentType1", "ContentType1", "ContentType1", Enumerable.Empty<string>(), props);
|
var contentType1 = new PublishedContentType(1, "ContentType1", Enumerable.Empty<string>(), props);
|
||||||
var contentType2 = new PublishedContentType(2, "ContentType2", "ContentType2", "ContentType2", Enumerable.Empty<string>(), props);
|
var contentType2 = new PublishedContentType(2, "ContentType2", Enumerable.Empty<string>(), props);
|
||||||
var contentType2s = new PublishedContentType(3, "ContentType2Sub", "ContentType2Sub", "ContentType2Sub", Enumerable.Empty<string>(), props);
|
var contentType2s = new PublishedContentType(3, "ContentType2Sub", Enumerable.Empty<string>(), props);
|
||||||
|
|
||||||
cache.Add(new SolidPublishedContent(contentType1)
|
cache.Add(new SolidPublishedContent(contentType1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace Umbraco.Tests.PublishedContent
|
|||||||
// AutoPublishedContentType will auto-generate other properties
|
// AutoPublishedContentType will auto-generate other properties
|
||||||
new PublishedPropertyType("content", 0, Constants.PropertyEditors.TinyMCEAlias),
|
new PublishedPropertyType("content", 0, Constants.PropertyEditors.TinyMCEAlias),
|
||||||
};
|
};
|
||||||
var type = new AutoPublishedContentType(0, "anything", "anything", "anything", propertyTypes);
|
var type = new AutoPublishedContentType(0, "anything", propertyTypes);
|
||||||
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
||||||
|
|
||||||
var rCtx = GetRoutingContext("/test", 1234);
|
var rCtx = GetRoutingContext("/test", 1234);
|
||||||
|
|||||||
@@ -354,12 +354,12 @@ namespace Umbraco.Tests.PublishedContent
|
|||||||
{
|
{
|
||||||
private static readonly PublishedPropertyType Default = new PublishedPropertyType("*", 0, "?");
|
private static readonly PublishedPropertyType Default = new PublishedPropertyType("*", 0, "?");
|
||||||
|
|
||||||
public AutoPublishedContentType(int id, string alias, string name, string description, IEnumerable<PublishedPropertyType> propertyTypes)
|
public AutoPublishedContentType(int id, string alias, IEnumerable<PublishedPropertyType> propertyTypes)
|
||||||
: base(id, alias, name, description, Enumerable.Empty<string>(), propertyTypes)
|
: base(id, alias, Enumerable.Empty<string>(), propertyTypes)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
public AutoPublishedContentType(int id, string alias, string name, string description, IEnumerable<string> compositionAliases, IEnumerable<PublishedPropertyType> propertyTypes)
|
public AutoPublishedContentType(int id, string alias, IEnumerable<string> compositionAliases, IEnumerable<PublishedPropertyType> propertyTypes)
|
||||||
: base(id, alias, name, description, compositionAliases, propertyTypes)
|
: base(id, alias, compositionAliases, propertyTypes)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
public override PublishedPropertyType GetPropertyType(string alias)
|
public override PublishedPropertyType GetPropertyType(string alias)
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace Umbraco.Tests.PublishedContent
|
|||||||
new PublishedPropertyType("testRecursive", 0, "?"),
|
new PublishedPropertyType("testRecursive", 0, "?"),
|
||||||
};
|
};
|
||||||
var compositionAliases = new[] { "MyCompositionAlias" };
|
var compositionAliases = new[] { "MyCompositionAlias" };
|
||||||
var type = new AutoPublishedContentType(0, "anything", "anything", "anything", compositionAliases, propertyTypes);
|
var type = new AutoPublishedContentType(0, "anything", compositionAliases, propertyTypes);
|
||||||
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -515,6 +515,12 @@ namespace Umbraco.Tests.Services
|
|||||||
|
|
||||||
Assert.That(entities.Any(), Is.True);
|
Assert.That(entities.Any(), Is.True);
|
||||||
Assert.That(entities.Count(), Is.EqualTo(5));
|
Assert.That(entities.Count(), Is.EqualTo(5));
|
||||||
|
|
||||||
|
Assert.That(
|
||||||
|
entities.Any(
|
||||||
|
x =>
|
||||||
|
x.AdditionalData.Any(y => y.Value is UmbracoEntity.EntityProperty
|
||||||
|
&& ((UmbracoEntity.EntityProperty)y.Value).PropertyEditorAlias == Constants.PropertyEditors.UploadFieldAlias)), Is.True);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace Umbraco.Tests.Services.Importing {
|
|||||||
// class via a tool like ResGen or Visual Studio.
|
// class via a tool like ResGen or Visual Studio.
|
||||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
// with the /str option, or rebuild your VS project.
|
// with the /str option, or rebuild your VS project.
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class ImportResources {
|
internal class ImportResources {
|
||||||
@@ -322,7 +322,7 @@ namespace Umbraco.Tests.Services.Importing {
|
|||||||
/// </package>
|
/// </package>
|
||||||
/// <author>
|
/// <author>
|
||||||
/// <name>Morten Christensen</name>
|
/// <name>Morten Christensen</name>
|
||||||
/// [rest of string was truncated]";.
|
/// [rest of string was truncated]";.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string TemplateOnly_Package {
|
internal static string TemplateOnly_Package {
|
||||||
get {
|
get {
|
||||||
@@ -348,7 +348,7 @@ namespace Umbraco.Tests.Services.Importing {
|
|||||||
/// </package>
|
/// </package>
|
||||||
/// <author>
|
/// <author>
|
||||||
/// <name>Morten Christensen</name>
|
/// <name>Morten Christensen</name>
|
||||||
/// [rest of string was truncated]";.
|
/// [rest of string was truncated]";.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string TemplateOnly_Updated_Package {
|
internal static string TemplateOnly_Updated_Package {
|
||||||
get {
|
get {
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using NUnit.Framework;
|
|
||||||
using Umbraco.Core;
|
|
||||||
using Umbraco.Core.Models;
|
|
||||||
using Umbraco.Core.Models.Rdbms;
|
|
||||||
using Umbraco.Tests.TestHelpers;
|
|
||||||
using Umbraco.Tests.TestHelpers.Entities;
|
|
||||||
|
|
||||||
namespace Umbraco.Tests.Services
|
|
||||||
{
|
|
||||||
[DatabaseTestBehavior(DatabaseBehavior.NewDbFileAndSchemaPerTest)]
|
|
||||||
[TestFixture, RequiresSTA]
|
|
||||||
public class MemberGroupServiceTests : BaseServiceTest
|
|
||||||
{
|
|
||||||
[SetUp]
|
|
||||||
public override void Initialize()
|
|
||||||
{
|
|
||||||
base.Initialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
[TearDown]
|
|
||||||
public override void TearDown()
|
|
||||||
{
|
|
||||||
base.TearDown();
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
[ExpectedException("System.InvalidOperationException")]
|
|
||||||
public void New_MemberGroup_Is_Not_Allowed_With_Empty_Name()
|
|
||||||
{
|
|
||||||
var service = ServiceContext.MemberGroupService;
|
|
||||||
|
|
||||||
service.Save(new MemberGroup {Name = ""});
|
|
||||||
|
|
||||||
Assert.Fail("An exception should have been thrown");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -61,17 +61,6 @@ namespace Umbraco.Tests.Strings
|
|||||||
Assert.AreEqual(stripped, result);
|
Assert.AreEqual(stripped, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase("'+alert(1234)+'", "+alert1234+")]
|
|
||||||
[TestCase("'+alert(56+78)+'", "+alert56+78+")]
|
|
||||||
[TestCase("{{file}}", "file")]
|
|
||||||
[TestCase("'+alert('hello')+'", "+alerthello+")]
|
|
||||||
[TestCase("Test", "Test")]
|
|
||||||
public void Clean_From_XSS(string input, string result)
|
|
||||||
{
|
|
||||||
var cleaned = input.CleanForXss();
|
|
||||||
Assert.AreEqual(cleaned, result);
|
|
||||||
}
|
|
||||||
|
|
||||||
[TestCase("This is a string to encrypt")]
|
[TestCase("This is a string to encrypt")]
|
||||||
[TestCase("This is a string to encrypt\nThis is a second line")]
|
[TestCase("This is a string to encrypt\nThis is a second line")]
|
||||||
[TestCase(" White space is preserved ")]
|
[TestCase(" White space is preserved ")]
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Umbraco.Tests.TestHelpers
|
|||||||
|
|
||||||
// need to specify a custom callback for unit tests
|
// need to specify a custom callback for unit tests
|
||||||
// AutoPublishedContentTypes generates properties automatically
|
// AutoPublishedContentTypes generates properties automatically
|
||||||
var type = new AutoPublishedContentType(0, "anything", "anything", "anything", new PublishedPropertyType[] {});
|
var type = new AutoPublishedContentType(0, "anything", new PublishedPropertyType[] {});
|
||||||
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
PublishedContentType.GetPublishedContentTypeCallback = (alias) => type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ namespace Umbraco.Tests.TreesAndSections {
|
|||||||
// class via a tool like ResGen or Visual Studio.
|
// class via a tool like ResGen or Visual Studio.
|
||||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
// with the /str option, or rebuild your VS project.
|
// with the /str option, or rebuild your VS project.
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class ResourceFiles {
|
internal class ResourceFiles {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>Umbraco.Tests</RootNamespace>
|
<RootNamespace>Umbraco.Tests</RootNamespace>
|
||||||
<AssemblyName>Umbraco.Tests</AssemblyName>
|
<AssemblyName>Umbraco.Tests</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
|
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
|
||||||
<RestorePackages>true</RestorePackages>
|
<RestorePackages>true</RestorePackages>
|
||||||
@@ -65,12 +65,6 @@
|
|||||||
<Reference Include="Examine, Version=0.1.89.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Examine, Version=0.1.89.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Examine.0.1.89\lib\net45\Examine.dll</HintPath>
|
<HintPath>..\packages\Examine.0.1.89\lib\net45\Examine.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="HtmlAgilityPack, Version=1.8.8.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\HtmlAgilityPack.1.8.8\lib\Net45\HtmlAgilityPack.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Examine, Version=0.1.90.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\Examine.0.1.90\lib\net45\Examine.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
|
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@@ -84,25 +78,25 @@
|
|||||||
<HintPath>..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll</HintPath>
|
<HintPath>..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.2\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.3.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Host.HttpListener, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Host.HttpListener, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Host.HttpListener.4.0.1\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Host.HttpListener.3.1.0\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.4.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Hosting, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Hosting, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Hosting.4.0.1\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Hosting.3.1.0\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Security, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Security, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Security.4.0.1\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Security.3.1.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Owin.Testing, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Owin.Testing, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Owin.Testing.4.0.1\lib\net45\Microsoft.Owin.Testing.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Owin.Testing.3.1.0\lib\net45\Microsoft.Owin.Testing.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||||
@@ -113,8 +107,8 @@
|
|||||||
<Reference Include="Moq, Version=4.1.1309.919, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
|
<Reference Include="Moq, Version=4.1.1309.919, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Moq.4.1.1309.0919\lib\net40\Moq.dll</HintPath>
|
<HintPath>..\packages\Moq.4.1.1309.0919\lib\net40\Moq.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
|
<HintPath>..\packages\Newtonsoft.Json.10.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=2.6.2.12296, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=2.6.2.12296, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.2.6.2\lib\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.2.6.2\lib\nunit.framework.dll</HintPath>
|
||||||
@@ -123,7 +117,7 @@
|
|||||||
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Semver, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Semver, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
|
<HintPath>..\packages\semver.1.1.2\lib\net45\Semver.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.ComponentModel.Composition" />
|
<Reference Include="System.ComponentModel.Composition" />
|
||||||
@@ -139,8 +133,8 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.Net.Http" />
|
<Reference Include="System.Net.Http" />
|
||||||
<Reference Include="System.Net.Http.Formatting, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Net.Http.WebRequest" />
|
<Reference Include="System.Net.Http.WebRequest" />
|
||||||
<Reference Include="System.Runtime.Caching" />
|
<Reference Include="System.Runtime.Caching" />
|
||||||
@@ -148,38 +142,38 @@
|
|||||||
<Reference Include="System.Web" />
|
<Reference Include="System.Web" />
|
||||||
<Reference Include="System.Web.ApplicationServices" />
|
<Reference Include="System.Web.ApplicationServices" />
|
||||||
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.Http, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.Http.Owin, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.Http.Owin, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.7\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.Http.SelfHost, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.Http.SelfHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.SelfHost.5.2.7\lib\net45\System.Web.Http.SelfHost.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.SelfHost.5.2.3\lib\net45\System.Web.Http.SelfHost.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.Http.Tracing, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.Http.Tracing, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Tracing.5.2.7\lib\net45\System.Web.Http.Tracing.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Tracing.5.2.3\lib\net45\System.Web.Http.Tracing.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.Http.WebHost, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.7\lib\net45\System.Web.Http.WebHost.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.Services" />
|
<Reference Include="System.Web.Services" />
|
||||||
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
@@ -199,7 +193,6 @@
|
|||||||
<Compile Include="PublishedContent\StronglyTypedModels\Home.cs" />
|
<Compile Include="PublishedContent\StronglyTypedModels\Home.cs" />
|
||||||
<Compile Include="Services\AuditServiceTests.cs" />
|
<Compile Include="Services\AuditServiceTests.cs" />
|
||||||
<Compile Include="Services\ConsentServiceTests.cs" />
|
<Compile Include="Services\ConsentServiceTests.cs" />
|
||||||
<Compile Include="Services\MemberGroupServiceTests.cs" />
|
|
||||||
<Compile Include="TestHelpers\ControllerTesting\AuthenticateEverythingExtensions.cs" />
|
<Compile Include="TestHelpers\ControllerTesting\AuthenticateEverythingExtensions.cs" />
|
||||||
<Compile Include="TestHelpers\ControllerTesting\AuthenticateEverythingMiddleware.cs" />
|
<Compile Include="TestHelpers\ControllerTesting\AuthenticateEverythingMiddleware.cs" />
|
||||||
<Compile Include="TestHelpers\ControllerTesting\SpecificAssemblyResolver.cs" />
|
<Compile Include="TestHelpers\ControllerTesting\SpecificAssemblyResolver.cs" />
|
||||||
@@ -398,7 +391,6 @@
|
|||||||
<Compile Include="Models\ContentExtensionsTests.cs" />
|
<Compile Include="Models\ContentExtensionsTests.cs" />
|
||||||
<Compile Include="Models\UserExtensionsTests.cs" />
|
<Compile Include="Models\UserExtensionsTests.cs" />
|
||||||
<Compile Include="Web\Mvc\MergeParentContextViewDataAttributeTests.cs" />
|
<Compile Include="Web\Mvc\MergeParentContextViewDataAttributeTests.cs" />
|
||||||
<Compile Include="Web\Mvc\ValidateUmbracoFormRouteStringAttributeTests.cs" />
|
|
||||||
<Compile Include="Web\Mvc\ViewDataDictionaryExtensionTests.cs" />
|
<Compile Include="Web\Mvc\ViewDataDictionaryExtensionTests.cs" />
|
||||||
<Compile Include="Persistence\PetaPocoExtensionsTest.cs" />
|
<Compile Include="Persistence\PetaPocoExtensionsTest.cs" />
|
||||||
<Compile Include="Persistence\Querying\ContentTypeSqlMappingTests.cs" />
|
<Compile Include="Persistence\Querying\ContentTypeSqlMappingTests.cs" />
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ namespace Umbraco.Tests.UmbracoExamine {
|
|||||||
// class via a tool like ResGen or Visual Studio.
|
// class via a tool like ResGen or Visual Studio.
|
||||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
// with the /str option, or rebuild your VS project.
|
// with the /str option, or rebuild your VS project.
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class TestFiles {
|
internal class TestFiles {
|
||||||
|
|||||||
@@ -4,8 +4,7 @@ using Umbraco.Web;
|
|||||||
|
|
||||||
namespace Umbraco.Tests.Web.Mvc
|
namespace Umbraco.Tests.Web.Mvc
|
||||||
{
|
{
|
||||||
|
[TestFixture]
|
||||||
[TestFixture]
|
|
||||||
public class HtmlHelperExtensionMethodsTests
|
public class HtmlHelperExtensionMethodsTests
|
||||||
{
|
{
|
||||||
[SetUp]
|
[SetUp]
|
||||||
@@ -30,30 +29,5 @@ namespace Umbraco.Tests.Web.Mvc
|
|||||||
var output = _htmlHelper.Wrap("div", "hello world", new {style = "color:red;", onclick = "void();"});
|
var output = _htmlHelper.Wrap("div", "hello world", new {style = "color:red;", onclick = "void();"});
|
||||||
Assert.AreEqual("<div style=\"color:red;\" onclick=\"void();\">hello world</div>", output.ToHtmlString());
|
Assert.AreEqual("<div style=\"color:red;\" onclick=\"void();\">hello world</div>", output.ToHtmlString());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
[Test]
|
|
||||||
public void GetRelatedLinkHtml_Simple()
|
|
||||||
{
|
|
||||||
var relatedLink = new Umbraco.Web.Models.RelatedLink {
|
|
||||||
Caption = "Link Caption",
|
|
||||||
NewWindow = true,
|
|
||||||
Link = "https://www.google.com/"
|
|
||||||
};
|
|
||||||
var output = _htmlHelper.GetRelatedLinkHtml(relatedLink);
|
|
||||||
Assert.AreEqual("<a href=\"https://www.google.com/\" target=\"_blank\">Link Caption</a>", output.ToHtmlString());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void GetRelatedLinkHtml_HtmlAttributes()
|
|
||||||
{
|
|
||||||
var relatedLink = new Umbraco.Web.Models.RelatedLink
|
|
||||||
{
|
|
||||||
Caption = "Link Caption",
|
|
||||||
NewWindow = true,
|
|
||||||
Link = "https://www.google.com/"
|
|
||||||
};
|
|
||||||
var output = _htmlHelper.GetRelatedLinkHtml(relatedLink, new { @class = "test-class"});
|
|
||||||
Assert.AreEqual("<a class=\"test-class\" href=\"https://www.google.com/\" target=\"_blank\">Link Caption</a>", output.ToHtmlString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
using NUnit.Framework;
|
|
||||||
using Umbraco.Web;
|
|
||||||
using Umbraco.Web.Mvc;
|
|
||||||
|
|
||||||
namespace Umbraco.Tests.Web.Mvc
|
|
||||||
{
|
|
||||||
[TestFixture]
|
|
||||||
public class ValidateUmbracoFormRouteStringAttributeTests
|
|
||||||
{
|
|
||||||
[Test]
|
|
||||||
public void Validate_Route_String()
|
|
||||||
{
|
|
||||||
var attribute = new ValidateUmbracoFormRouteStringAttribute();
|
|
||||||
|
|
||||||
Assert.Throws<HttpUmbracoFormRouteStringException>(() => attribute.ValidateRouteString(null, null, null, null));
|
|
||||||
|
|
||||||
const string ControllerName = "Test";
|
|
||||||
const string ControllerAction = "Index";
|
|
||||||
const string Area = "MyArea";
|
|
||||||
var validUfprt = UmbracoHelper.CreateEncryptedRouteString(ControllerName, ControllerAction, Area);
|
|
||||||
|
|
||||||
var invalidUfprt = validUfprt + "z";
|
|
||||||
Assert.Throws<HttpUmbracoFormRouteStringException>(() => attribute.ValidateRouteString(invalidUfprt, null, null, null));
|
|
||||||
|
|
||||||
Assert.Throws<HttpUmbracoFormRouteStringException>(() => attribute.ValidateRouteString(validUfprt, ControllerName, ControllerAction, "doesntMatch"));
|
|
||||||
Assert.Throws<HttpUmbracoFormRouteStringException>(() => attribute.ValidateRouteString(validUfprt, ControllerName, ControllerAction, null));
|
|
||||||
Assert.Throws<HttpUmbracoFormRouteStringException>(() => attribute.ValidateRouteString(validUfprt, ControllerName, "doesntMatch", Area));
|
|
||||||
Assert.Throws<HttpUmbracoFormRouteStringException>(() => attribute.ValidateRouteString(validUfprt, ControllerName, null, Area));
|
|
||||||
Assert.Throws<HttpUmbracoFormRouteStringException>(() => attribute.ValidateRouteString(validUfprt, "doesntMatch", ControllerAction, Area));
|
|
||||||
Assert.Throws<HttpUmbracoFormRouteStringException>(() => attribute.ValidateRouteString(validUfprt, null, ControllerAction, Area));
|
|
||||||
|
|
||||||
Assert.DoesNotThrow(() => attribute.ValidateRouteString(validUfprt, ControllerName, ControllerAction, Area));
|
|
||||||
Assert.DoesNotThrow(() => attribute.ValidateRouteString(validUfprt, ControllerName.ToLowerInvariant(), ControllerAction.ToLowerInvariant(), Area.ToLowerInvariant()));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,42 +2,41 @@
|
|||||||
<packages>
|
<packages>
|
||||||
<package id="AutoMapper" version="3.3.1" targetFramework="net45" />
|
<package id="AutoMapper" version="3.3.1" targetFramework="net45" />
|
||||||
<package id="Castle.Core" version="4.0.0" targetFramework="net45" />
|
<package id="Castle.Core" version="4.0.0" targetFramework="net45" />
|
||||||
<package id="Examine" version="0.1.90" targetFramework="net45" />
|
<package id="Examine" version="0.1.89" targetFramework="net45" />
|
||||||
<package id="HtmlAgilityPack" version="1.8.8" targetFramework="net452" />
|
|
||||||
<package id="log4net" version="2.0.8" targetFramework="net45" />
|
<package id="log4net" version="2.0.8" targetFramework="net45" />
|
||||||
<package id="Log4Net.Async" version="2.0.4" targetFramework="net45" />
|
<package id="Log4Net.Async" version="2.0.4" targetFramework="net45" />
|
||||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net45" />
|
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.Identity.Core" version="2.2.2" targetFramework="net452" />
|
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.Mvc" version="5.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.Razor" version="3.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.WebApi" version="5.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.WebApi.SelfHost" version="5.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.SelfHost" version="5.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.WebApi.Tracing" version="5.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.Tracing" version="5.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.AspNet.WebPages" version="3.2.7" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin.Host.HttpListener" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.Host.HttpListener" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin.Host.SystemWeb" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.Host.SystemWeb" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin.Hosting" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin.Security" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.Security" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Owin.Testing" version="4.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.Testing" version="3.1.0" targetFramework="net45" />
|
||||||
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
|
||||||
<package id="MiniProfiler" version="2.1.0" targetFramework="net45" />
|
<package id="MiniProfiler" version="2.1.0" targetFramework="net45" />
|
||||||
<package id="Moq" version="4.1.1309.0919" targetFramework="net45" />
|
<package id="Moq" version="4.1.1309.0919" targetFramework="net45" />
|
||||||
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net452" />
|
<package id="Newtonsoft.Json" version="10.0.2" targetFramework="net45" />
|
||||||
<package id="NUnit" version="2.6.2" targetFramework="net45" />
|
<package id="NUnit" version="2.6.2" targetFramework="net45" />
|
||||||
<package id="NUnitTestAdapter" version="2.1.1" targetFramework="net45" />
|
<package id="NUnitTestAdapter" version="2.1.1" targetFramework="net45" />
|
||||||
<package id="Owin" version="1.0" targetFramework="net45" />
|
<package id="Owin" version="1.0" targetFramework="net45" />
|
||||||
<package id="Selenium.WebDriver" version="2.32.0" targetFramework="net45" />
|
<package id="Selenium.WebDriver" version="2.32.0" targetFramework="net45" />
|
||||||
<package id="semver" version="1.1.2" targetFramework="net452" />
|
<package id="semver" version="1.1.2" targetFramework="net45" />
|
||||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net45" />
|
<package id="SharpZipLib" version="0.86.0" targetFramework="net45" />
|
||||||
<package id="SqlServerCE" version="4.0.0.1" targetFramework="net45" />
|
<package id="SqlServerCE" version="4.0.0.1" targetFramework="net45" />
|
||||||
<package id="System.Runtime" version="4.3.1" targetFramework="net452" />
|
<package id="System.Runtime" version="4.3.0" targetFramework="net45" />
|
||||||
<package id="System.Runtime.Extensions" version="4.3.1" targetFramework="net452" />
|
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net45" />
|
||||||
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net452" />
|
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net45" />
|
||||||
<package id="System.Text.RegularExpressions" version="4.3.1" targetFramework="net452" />
|
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"jquery-migrate": "1.4.0",
|
"jquery-migrate": "1.4.0",
|
||||||
"angular-dynamic-locale": "0.1.28",
|
"angular-dynamic-locale": "0.1.28",
|
||||||
"ng-file-upload": "~7.3.8",
|
"ng-file-upload": "~7.3.8",
|
||||||
"tinymce": "~4.9.4",
|
"tinymce": "~4.7.1",
|
||||||
"codemirror": "~5.3.0",
|
"codemirror": "~5.3.0",
|
||||||
"angular-local-storage": "~0.2.3",
|
"angular-local-storage": "~0.2.3",
|
||||||
"moment": "~2.10.3",
|
"moment": "~2.10.3",
|
||||||
|
|||||||
+30
-11
@@ -4146,7 +4146,8 @@
|
|||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"aproba": {
|
"aproba": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
@@ -4167,12 +4168,14 @@
|
|||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
@@ -4187,17 +4190,20 @@
|
|||||||
"code-point-at": {
|
"code-point-at": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"console-control-strings": {
|
"console-control-strings": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"core-util-is": {
|
"core-util-is": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
@@ -4314,7 +4320,8 @@
|
|||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
@@ -4326,6 +4333,7 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"number-is-nan": "^1.0.0"
|
"number-is-nan": "^1.0.0"
|
||||||
}
|
}
|
||||||
@@ -4340,6 +4348,7 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
@@ -4347,12 +4356,14 @@
|
|||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "0.0.8",
|
"version": "0.0.8",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"minipass": {
|
"minipass": {
|
||||||
"version": "2.2.4",
|
"version": "2.2.4",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "^5.1.1",
|
"safe-buffer": "^5.1.1",
|
||||||
"yallist": "^3.0.0"
|
"yallist": "^3.0.0"
|
||||||
@@ -4371,6 +4382,7 @@
|
|||||||
"version": "0.5.1",
|
"version": "0.5.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimist": "0.0.8"
|
"minimist": "0.0.8"
|
||||||
}
|
}
|
||||||
@@ -4451,7 +4463,8 @@
|
|||||||
"number-is-nan": {
|
"number-is-nan": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"object-assign": {
|
"object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
@@ -4463,6 +4476,7 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
@@ -4548,7 +4562,8 @@
|
|||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.1.1",
|
"version": "5.1.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"safer-buffer": {
|
"safer-buffer": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
@@ -4584,6 +4599,7 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"code-point-at": "^1.0.0",
|
"code-point-at": "^1.0.0",
|
||||||
"is-fullwidth-code-point": "^1.0.0",
|
"is-fullwidth-code-point": "^1.0.0",
|
||||||
@@ -4603,6 +4619,7 @@
|
|||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "^2.0.0"
|
"ansi-regex": "^2.0.0"
|
||||||
}
|
}
|
||||||
@@ -4646,12 +4663,14 @@
|
|||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"yallist": {
|
"yallist": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ LazyLoad.js([
|
|||||||
'../js/umbraco.security.js',
|
'../js/umbraco.security.js',
|
||||||
'../ServerVariables',
|
'../ServerVariables',
|
||||||
'../lib/spectrum/spectrum.js',
|
'../lib/spectrum/spectrum.js',
|
||||||
'../js/umbraco.canvasdesigner.js'
|
'../js/umbraco.canvasdesigner.js',
|
||||||
|
'../js/canvasdesigner.panel.js'
|
||||||
], function () {
|
], function () {
|
||||||
jQuery(document).ready(function () {
|
jQuery(document).ready(function () {
|
||||||
angular.bootstrap(document, ['Umbraco.canvasdesigner']);
|
angular.bootstrap(document, ['Umbraco.canvasdesigner']);
|
||||||
|
|||||||
-4
@@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
<umb-toggle
|
<umb-toggle
|
||||||
checked="vm.checked"
|
checked="vm.checked"
|
||||||
disabled="vm.disabled"
|
|
||||||
on-click="vm.toggle()"
|
on-click="vm.toggle()"
|
||||||
show-labels="true"
|
show-labels="true"
|
||||||
label-on="Start"
|
label-on="Start"
|
||||||
@@ -39,7 +38,6 @@
|
|||||||
|
|
||||||
var vm = this;
|
var vm = this;
|
||||||
vm.checked = false;
|
vm.checked = false;
|
||||||
vm.disabled = false;
|
|
||||||
|
|
||||||
vm.toggle = toggle;
|
vm.toggle = toggle;
|
||||||
|
|
||||||
@@ -54,7 +52,6 @@
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
@param {boolean} checked Set to <code>true</code> or <code>false</code> to toggle the switch.
|
@param {boolean} checked Set to <code>true</code> or <code>false</code> to toggle the switch.
|
||||||
@param {boolean} disabled Set to <code>true</code> or <code>false</code> to disable/enable the switch.
|
|
||||||
@param {callback} onClick The function which should be called when the toggle is clicked.
|
@param {callback} onClick The function which should be called when the toggle is clicked.
|
||||||
@param {string=} showLabels Set to <code>true</code> or <code>false</code> to show a "On" or "Off" label next to the switch.
|
@param {string=} showLabels Set to <code>true</code> or <code>false</code> to show a "On" or "Off" label next to the switch.
|
||||||
@param {string=} labelOn Set a custom label for when the switched is turned on. It will default to "On".
|
@param {string=} labelOn Set a custom label for when the switched is turned on. It will default to "On".
|
||||||
@@ -118,7 +115,6 @@
|
|||||||
templateUrl: 'views/components/buttons/umb-toggle.html',
|
templateUrl: 'views/components/buttons/umb-toggle.html',
|
||||||
scope: {
|
scope: {
|
||||||
checked: "=",
|
checked: "=",
|
||||||
disabled: "=",
|
|
||||||
onClick: "&",
|
onClick: "&",
|
||||||
labelOn: "@?",
|
labelOn: "@?",
|
||||||
labelOff: "@?",
|
labelOff: "@?",
|
||||||
|
|||||||
+1
-12
@@ -53,16 +53,6 @@
|
|||||||
if (scope.documentType !== null) {
|
if (scope.documentType !== null) {
|
||||||
scope.previewOpenUrl = '#/settings/documenttypes/edit/' + scope.documentType.id;
|
scope.previewOpenUrl = '#/settings/documenttypes/edit/' + scope.documentType.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
// only allow configuring scheduled publishing if the user has publish ("U") and unpublish ("Z") permissions on this node
|
|
||||||
scope.allowScheduledPublishing = _.contains(scope.node.allowedActions, "U") && _.contains(scope.node.allowedActions, "Z");
|
|
||||||
|
|
||||||
ensureUniqueUrls();
|
|
||||||
}
|
|
||||||
|
|
||||||
// make sure we don't show duplicate URLs in case multiple URL providers assign the same URLs to the content (see issue 3842 for details)
|
|
||||||
function ensureUniqueUrls() {
|
|
||||||
scope.node.urls = _.uniq(scope.node.urls);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
scope.auditTrailPageChange = function (pageNumber) {
|
scope.auditTrailPageChange = function (pageNumber) {
|
||||||
@@ -303,12 +293,11 @@
|
|||||||
if (!newValue) { return; }
|
if (!newValue) { return; }
|
||||||
if (newValue === oldValue) { return; }
|
if (newValue === oldValue) { return; }
|
||||||
|
|
||||||
if (isInfoTab) {
|
if(isInfoTab) {
|
||||||
loadAuditTrail();
|
loadAuditTrail();
|
||||||
loadRedirectUrls();
|
loadRedirectUrls();
|
||||||
formatDatesToLocal();
|
formatDatesToLocal();
|
||||||
setNodePublishStatus(scope.node);
|
setNodePublishStatus(scope.node);
|
||||||
ensureUniqueUrls();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
-55
@@ -1,55 +0,0 @@
|
|||||||
/**
|
|
||||||
@ngdoc directive
|
|
||||||
@name umbraco.directives.directive:umbCheckbox
|
|
||||||
@restrict E
|
|
||||||
@scope
|
|
||||||
|
|
||||||
@description
|
|
||||||
<b>Added in Umbraco version 7.14.0</b> Use this directive to render an umbraco checkbox.
|
|
||||||
|
|
||||||
<h3>Markup example</h3>
|
|
||||||
<pre>
|
|
||||||
<div ng-controller="My.Controller as vm">
|
|
||||||
|
|
||||||
<umb-checkbox
|
|
||||||
name="checkboxlist"
|
|
||||||
value="{{key}}"
|
|
||||||
model="true"
|
|
||||||
text="{{text}}">
|
|
||||||
</umb-checkbox>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
@param {boolean} model Set to <code>true</code> or <code>false</code> to set the checkbox to checked or unchecked.
|
|
||||||
@param {string} value Set the value of the checkbox.
|
|
||||||
@param {string} name Set the name of the checkbox.
|
|
||||||
@param {string} text Set the text for the checkbox label.
|
|
||||||
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
function CheckboxDirective() {
|
|
||||||
var directive = {
|
|
||||||
restrict: 'E',
|
|
||||||
replace: true,
|
|
||||||
templateUrl: 'views/components/forms/umb-checkbox.html',
|
|
||||||
scope: {
|
|
||||||
model: "=",
|
|
||||||
value: "@",
|
|
||||||
name: "@",
|
|
||||||
text: "@",
|
|
||||||
required: "="
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return directive;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
angular.module('umbraco.directives').directive('umbCheckbox', CheckboxDirective);
|
|
||||||
|
|
||||||
})();
|
|
||||||
-54
@@ -1,54 +0,0 @@
|
|||||||
/**
|
|
||||||
@ngdoc directive
|
|
||||||
@name umbraco.directives.directive:umbRadiobutton
|
|
||||||
@restrict E
|
|
||||||
@scope
|
|
||||||
|
|
||||||
@description
|
|
||||||
<b>Added in Umbraco version 7.14.0</b> Use this directive to render an umbraco radio button.
|
|
||||||
|
|
||||||
<h3>Markup example</h3>
|
|
||||||
<pre>
|
|
||||||
<div ng-controller="My.Controller as vm">
|
|
||||||
|
|
||||||
<umb-radiobutton
|
|
||||||
name="checkboxlist"
|
|
||||||
value="{{key}}"
|
|
||||||
model="true"
|
|
||||||
text="{{text}}">
|
|
||||||
</umb-radiobutton>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
@param {boolean} model Set to <code>true</code> or <code>false</code> to set the radiobutton to checked or unchecked.
|
|
||||||
@param {string} value Set the value of the radiobutton.
|
|
||||||
@param {string} name Set the name of the radiobutton.
|
|
||||||
@param {string} text Set the text for the radiobutton label.
|
|
||||||
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
function RadiobuttonDirective() {
|
|
||||||
var directive = {
|
|
||||||
restrict: 'E',
|
|
||||||
replace: true,
|
|
||||||
templateUrl: 'views/components/forms/umb-radiobutton.html',
|
|
||||||
scope: {
|
|
||||||
model: "=",
|
|
||||||
value: "@",
|
|
||||||
name: "@",
|
|
||||||
text: "@"
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return directive;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
angular.module('umbraco.directives').directive('umbRadiobutton', RadiobuttonDirective);
|
|
||||||
|
|
||||||
})();
|
|
||||||
+35
-14
@@ -103,6 +103,34 @@ angular.module("umbraco.directives")
|
|||||||
scope.dimensions.cropper.height = _viewPortH; // scope.dimensions.viewport.height - 2 * scope.dimensions.margin;
|
scope.dimensions.cropper.height = _viewPortH; // scope.dimensions.viewport.height - 2 * scope.dimensions.margin;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//when loading an image without any crop info, we center and fit it
|
||||||
|
var resizeImageToEditor = function(){
|
||||||
|
//returns size fitting the cropper
|
||||||
|
var size = cropperHelper.calculateAspectRatioFit(
|
||||||
|
scope.dimensions.image.width,
|
||||||
|
scope.dimensions.image.height,
|
||||||
|
scope.dimensions.cropper.width,
|
||||||
|
scope.dimensions.cropper.height,
|
||||||
|
true);
|
||||||
|
|
||||||
|
//sets the image size and updates the scope
|
||||||
|
scope.dimensions.image.width = size.width;
|
||||||
|
scope.dimensions.image.height = size.height;
|
||||||
|
|
||||||
|
//calculate the best suited ratios
|
||||||
|
scope.dimensions.scale.min = size.ratio;
|
||||||
|
scope.dimensions.scale.max = 2;
|
||||||
|
scope.dimensions.scale.current = size.ratio;
|
||||||
|
|
||||||
|
//center the image
|
||||||
|
var position = cropperHelper.centerInsideViewPort(scope.dimensions.image, scope.dimensions.cropper);
|
||||||
|
scope.dimensions.top = position.top;
|
||||||
|
scope.dimensions.left = position.left;
|
||||||
|
|
||||||
|
setConstraints();
|
||||||
|
};
|
||||||
|
|
||||||
//resize to a given ratio
|
//resize to a given ratio
|
||||||
var resizeImageToScale = function(ratio){
|
var resizeImageToScale = function(ratio){
|
||||||
//do stuff
|
//do stuff
|
||||||
@@ -199,19 +227,12 @@ angular.module("umbraco.directives")
|
|||||||
//set dimensions on image, viewport, cropper etc
|
//set dimensions on image, viewport, cropper etc
|
||||||
setDimensions(image);
|
setDimensions(image);
|
||||||
|
|
||||||
//create a default crop if we haven't got one already
|
//if we have a crop already position the image
|
||||||
var createDefaultCrop = !scope.crop;
|
if(scope.crop){
|
||||||
if (createDefaultCrop) {
|
resizeImageToCrop();
|
||||||
calculateCropBox();
|
}else{
|
||||||
}
|
resizeImageToEditor();
|
||||||
|
}
|
||||||
resizeImageToCrop();
|
|
||||||
|
|
||||||
//if we're creating a new crop, make sure to zoom out fully
|
|
||||||
if (createDefaultCrop) {
|
|
||||||
scope.dimensions.scale.current = scope.dimensions.scale.min;
|
|
||||||
resizeImageToScale(scope.dimensions.scale.min);
|
|
||||||
}
|
|
||||||
|
|
||||||
//sets constaints for the cropper
|
//sets constaints for the cropper
|
||||||
setConstraints();
|
setConstraints();
|
||||||
@@ -232,7 +253,7 @@ angular.module("umbraco.directives")
|
|||||||
var throttledResizing = _.throttle(function(){
|
var throttledResizing = _.throttle(function(){
|
||||||
resizeImageToScale(scope.dimensions.scale.current);
|
resizeImageToScale(scope.dimensions.scale.current);
|
||||||
calculateCropBox();
|
calculateCropBox();
|
||||||
}, 16);
|
}, 100);
|
||||||
|
|
||||||
|
|
||||||
//happens when we change the scale
|
//happens when we change the scale
|
||||||
|
|||||||
+10
-10
@@ -14,8 +14,7 @@ angular.module("umbraco.directives")
|
|||||||
scope: {
|
scope: {
|
||||||
src: '=',
|
src: '=',
|
||||||
center: "=",
|
center: "=",
|
||||||
onImageLoaded: "&",
|
onImageLoaded: "&"
|
||||||
onGravityChanged: "&"
|
|
||||||
},
|
},
|
||||||
link: function(scope, element, attrs) {
|
link: function(scope, element, attrs) {
|
||||||
|
|
||||||
@@ -35,7 +34,7 @@ angular.module("umbraco.directives")
|
|||||||
var $overlay = element.find(".overlay");
|
var $overlay = element.find(".overlay");
|
||||||
|
|
||||||
scope.style = function () {
|
scope.style = function () {
|
||||||
if (scope.dimensions.width <= 0 || scope.dimensions.height <= 0) {
|
if (scope.dimensions.width <= 0) {
|
||||||
setDimensions();
|
setDimensions();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,7 +52,7 @@ angular.module("umbraco.directives")
|
|||||||
|
|
||||||
calculateGravity(offsetX, offsetY);
|
calculateGravity(offsetX, offsetY);
|
||||||
|
|
||||||
gravityChanged();
|
lazyEndEvent();
|
||||||
};
|
};
|
||||||
|
|
||||||
var setDimensions = function () {
|
var setDimensions = function () {
|
||||||
@@ -78,11 +77,12 @@ angular.module("umbraco.directives")
|
|||||||
scope.center.top = (scope.dimensions.top+10) / scope.dimensions.height;
|
scope.center.top = (scope.dimensions.top+10) / scope.dimensions.height;
|
||||||
};
|
};
|
||||||
|
|
||||||
var gravityChanged = function () {
|
var lazyEndEvent = _.debounce(function(){
|
||||||
if (angular.isFunction(scope.onGravityChanged)) {
|
scope.$apply(function(){
|
||||||
scope.onGravityChanged();
|
scope.$emit("imageFocalPointStop");
|
||||||
}
|
});
|
||||||
};
|
}, 2000);
|
||||||
|
|
||||||
|
|
||||||
//Drag and drop positioning, using jquery ui draggable
|
//Drag and drop positioning, using jquery ui draggable
|
||||||
//TODO ensure that the point doesnt go outside the box
|
//TODO ensure that the point doesnt go outside the box
|
||||||
@@ -100,7 +100,7 @@ angular.module("umbraco.directives")
|
|||||||
calculateGravity(offsetX, offsetY);
|
calculateGravity(offsetX, offsetY);
|
||||||
});
|
});
|
||||||
|
|
||||||
gravityChanged();
|
lazyEndEvent();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
+1
-5
@@ -266,11 +266,7 @@ function umbTreeDirective($compile, $log, $q, $rootScope, treeService, notificat
|
|||||||
treeService.syncTree({
|
treeService.syncTree({
|
||||||
node: treeNode,
|
node: treeNode,
|
||||||
path: path,
|
path: path,
|
||||||
forceReload: forceReload,
|
forceReload: forceReload
|
||||||
//when the tree node is expanding during sync tree, handle it and raise appropriate events
|
|
||||||
treeNodeExpanded: function (args) {
|
|
||||||
emitEvent("treeNodeExpanded", { tree: scope.tree, node: args.node, children: args.children });
|
|
||||||
}
|
|
||||||
}).then(function (data) {
|
}).then(function (data) {
|
||||||
|
|
||||||
if (activate === undefined || activate === true) {
|
if (activate === undefined || activate === true) {
|
||||||
|
|||||||
-7
@@ -12,7 +12,6 @@ function treeSearchBox(localizationService, searchService, $q) {
|
|||||||
searchFromName: "@",
|
searchFromName: "@",
|
||||||
showSearch: "@",
|
showSearch: "@",
|
||||||
section: "@",
|
section: "@",
|
||||||
datatypeId: "@",
|
|
||||||
hideSearchCallback: "=",
|
hideSearchCallback: "=",
|
||||||
searchCallback: "="
|
searchCallback: "="
|
||||||
},
|
},
|
||||||
@@ -35,7 +34,6 @@ function treeSearchBox(localizationService, searchService, $q) {
|
|||||||
scope.showSearch = "false";
|
scope.showSearch = "false";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//used to cancel any request in progress if another one needs to take it's place
|
//used to cancel any request in progress if another one needs to take it's place
|
||||||
var canceler = null;
|
var canceler = null;
|
||||||
|
|
||||||
@@ -62,11 +60,6 @@ function treeSearchBox(localizationService, searchService, $q) {
|
|||||||
searchArgs["searchFrom"] = scope.searchFromId;
|
searchArgs["searchFrom"] = scope.searchFromId;
|
||||||
}
|
}
|
||||||
|
|
||||||
//append dataTypeId value if there is one
|
|
||||||
if (scope.datatypeId) {
|
|
||||||
searchArgs["dataTypeId"] = scope.datatypeId;
|
|
||||||
}
|
|
||||||
|
|
||||||
searcher(searchArgs).then(function (data) {
|
searcher(searchArgs).then(function (data) {
|
||||||
scope.searchCallback(data);
|
scope.searchCallback(data);
|
||||||
//set back to null so it can be re-created
|
//set back to null so it can be re-created
|
||||||
|
|||||||
+17
-17
@@ -86,21 +86,20 @@ angular.module("umbraco.directives")
|
|||||||
function generateAlias(value) {
|
function generateAlias(value) {
|
||||||
|
|
||||||
if (generateAliasTimeout) {
|
if (generateAliasTimeout) {
|
||||||
$timeout.cancel(generateAliasTimeout);
|
$timeout.cancel(generateAliasTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value !== undefined && value !== "" && value !== null) {
|
if( value !== undefined && value !== "" && value !== null) {
|
||||||
|
|
||||||
scope.alias = "";
|
scope.alias = "";
|
||||||
scope.placeholderText = scope.labels.busy;
|
scope.placeholderText = scope.labels.busy;
|
||||||
|
|
||||||
generateAliasTimeout = $timeout(function () {
|
generateAliasTimeout = $timeout(function () {
|
||||||
updateAlias = true;
|
updateAlias = true;
|
||||||
entityResource.getSafeAlias(encodeURIComponent(value), true).then(function (safeAlias) {
|
entityResource.getSafeAlias(encodeURIComponent(value), true).then(function (safeAlias) {
|
||||||
if (updateAlias) {
|
if (updateAlias) {
|
||||||
scope.alias = safeAlias.alias;
|
scope.alias = safeAlias.alias;
|
||||||
}
|
}
|
||||||
scope.placeholderText = scope.labels.idle;
|
|
||||||
});
|
});
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
||||||
@@ -109,6 +108,7 @@ angular.module("umbraco.directives")
|
|||||||
scope.alias = "";
|
scope.alias = "";
|
||||||
scope.placeholderText = scope.labels.idle;
|
scope.placeholderText = scope.labels.idle;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// if alias gets unlocked - stop watching alias
|
// if alias gets unlocked - stop watching alias
|
||||||
@@ -119,17 +119,17 @@ angular.module("umbraco.directives")
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
// validate custom entered alias
|
// validate custom entered alias
|
||||||
eventBindings.push(scope.$watch('alias', function (newValue, oldValue) {
|
eventBindings.push(scope.$watch('alias', function(newValue, oldValue){
|
||||||
if (scope.alias === "" || scope.alias === null || scope.alias === undefined) {
|
|
||||||
if (bindWatcher === true) {
|
if(scope.alias === "" && bindWatcher === true || scope.alias === null && bindWatcher === true) {
|
||||||
// add watcher
|
// add watcher
|
||||||
eventBindings.push(scope.$watch('aliasFrom', function (newValue, oldValue) {
|
eventBindings.push(scope.$watch('aliasFrom', function(newValue, oldValue) {
|
||||||
if (bindWatcher) {
|
if(bindWatcher) {
|
||||||
generateAlias(newValue);
|
generateAlias(newValue);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// clean up
|
// clean up
|
||||||
|
|||||||
+1
-1
@@ -38,7 +38,7 @@ Use this directive to generate color swatches to pick from.
|
|||||||
scope.selectedColor = color;
|
scope.selectedColor = color;
|
||||||
|
|
||||||
if (scope.onSelect) {
|
if (scope.onSelect) {
|
||||||
scope.onSelect({color: color });
|
scope.onSelect(color);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* @name umbraco.resources.codefileResource
|
* @name umbraco.resources.codefileResource
|
||||||
* @description Loads in data for files that contain code such as js scripts, partial views and partial view macros
|
* @description Loads in data for files that contain code such as js scripts, partial views and partial view macros
|
||||||
**/
|
**/
|
||||||
function codefileResource($q, $http, umbDataFormatter, umbRequestHelper, localizationService) {
|
function codefileResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
||||||
@@ -106,16 +106,13 @@ function codefileResource($q, $http, umbDataFormatter, umbRequestHelper, localiz
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
deleteByPath: function (type, virtualpath) {
|
deleteByPath: function (type, virtualpath) {
|
||||||
|
|
||||||
var promise = localizationService.localize("codefile_deleteItemFailed", [virtualpath]);
|
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.post(
|
$http.post(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"codeFileApiBaseUrl",
|
"codeFileApiBaseUrl",
|
||||||
"Delete",
|
"Delete",
|
||||||
[{ type: type }, { virtualPath: virtualpath}])),
|
[{ type: type }, { virtualPath: virtualpath}])),
|
||||||
promise);
|
"Failed to delete item: " + virtualpath);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -239,19 +236,13 @@ function codefileResource($q, $http, umbDataFormatter, umbRequestHelper, localiz
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
createContainer: function (type, parentId, name) {
|
createContainer: function(type, parentId, name) {
|
||||||
|
|
||||||
// Is the parent ID numeric?
|
|
||||||
var key = "codefile_createFolderFailedBy" + (isNaN(parseInt(parentId)) ? "Name" : "Id");
|
|
||||||
|
|
||||||
var promise = localizationService.localize(key, [parentId]);
|
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.post(umbRequestHelper.getApiUrl(
|
$http.post(umbRequestHelper.getApiUrl(
|
||||||
"codeFileApiBaseUrl",
|
"codeFileApiBaseUrl",
|
||||||
"PostCreateContainer",
|
"PostCreateContainer",
|
||||||
{ type: type, parentId: parentId, name: encodeURIComponent(name) })),
|
{ type: type, parentId: parentId, name: encodeURIComponent(name) })),
|
||||||
promise);
|
'Failed to create a folder under parent id ' + parentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -160,40 +160,6 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
'Failed to retrieve entity data for id ' + id);
|
'Failed to retrieve entity data for id ' + id);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
getUrlAndAnchors: function (id) {
|
|
||||||
|
|
||||||
if (id === -1 || id === "-1") {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
|
||||||
$http.get(
|
|
||||||
umbRequestHelper.getApiUrl(
|
|
||||||
"entityApiBaseUrl",
|
|
||||||
"GetUrlAndAnchors",
|
|
||||||
[{ id: id }])),
|
|
||||||
'Failed to retrieve url and anchors data for id ' + id);
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
getAnchors: function (rteContent) {
|
|
||||||
|
|
||||||
if (!rteContent || rteContent.length === 0) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
|
||||||
$http.post(
|
|
||||||
umbRequestHelper.getApiUrl(
|
|
||||||
"entityApiBaseUrl",
|
|
||||||
'GetAnchors'),
|
|
||||||
{
|
|
||||||
rteContent: rteContent
|
|
||||||
}),
|
|
||||||
'Failed to anchors data for rte content ' + rteContent);
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.entityResource#getByIds
|
* @name umbraco.resources.entityResource#getByIds
|
||||||
@@ -326,23 +292,14 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
* @returns {Promise} resourcePromise object containing the entity.
|
* @returns {Promise} resourcePromise object containing the entity.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
getAncestors: function (id, type, options) {
|
getAncestors: function (id, type) {
|
||||||
|
|
||||||
var args = [
|
|
||||||
{ id: id },
|
|
||||||
{ type: type }
|
|
||||||
];
|
|
||||||
if (options && options.dataTypeId) {
|
|
||||||
args.push({ dataTypeId: options.dataTypeId });
|
|
||||||
}
|
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"entityApiBaseUrl",
|
"entityApiBaseUrl",
|
||||||
"GetAncestors",
|
"GetAncestors",
|
||||||
args)),
|
[{id: id}, {type: type}])),
|
||||||
'Failed to retrieve ancestor data for id ' + id);
|
'Failed to retrieve ancestor data for id ' + id);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -358,19 +315,14 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
* @returns {Promise} resourcePromise object containing the entity.
|
* @returns {Promise} resourcePromise object containing the entity.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
getChildren: function (id, type, options) {
|
getChildren: function (id, type) {
|
||||||
|
|
||||||
var args = [{ id: id }, { type: type }];
|
|
||||||
if (options && options.dataTypeId) {
|
|
||||||
args.push({ dataTypeId: options.dataTypeId });
|
|
||||||
}
|
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"entityApiBaseUrl",
|
"entityApiBaseUrl",
|
||||||
"GetChildren",
|
"GetChildren",
|
||||||
args)),
|
[{ id: id }, { type: type }])),
|
||||||
'Failed to retrieve child data for id ' + id);
|
'Failed to retrieve child data for id ' + id);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -409,8 +361,7 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
pageNumber: 100,
|
pageNumber: 100,
|
||||||
filter: '',
|
filter: '',
|
||||||
orderDirection: "Ascending",
|
orderDirection: "Ascending",
|
||||||
orderBy: "SortOrder",
|
orderBy: "SortOrder"
|
||||||
dataTypeId: null
|
|
||||||
};
|
};
|
||||||
if (options === undefined) {
|
if (options === undefined) {
|
||||||
options = {};
|
options = {};
|
||||||
@@ -427,7 +378,6 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
options.orderDirection = "Descending";
|
options.orderDirection = "Descending";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
@@ -440,8 +390,7 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
pageSize: options.pageSize,
|
pageSize: options.pageSize,
|
||||||
orderBy: options.orderBy,
|
orderBy: options.orderBy,
|
||||||
orderDirection: options.orderDirection,
|
orderDirection: options.orderDirection,
|
||||||
filter: encodeURIComponent(options.filter),
|
filter: encodeURIComponent(options.filter)
|
||||||
dataTypeId: options.dataTypeId
|
|
||||||
}
|
}
|
||||||
)),
|
)),
|
||||||
'Failed to retrieve child data for id ' + parentId);
|
'Failed to retrieve child data for id ' + parentId);
|
||||||
@@ -482,8 +431,7 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
pageNumber: 1,
|
pageNumber: 1,
|
||||||
filter: '',
|
filter: '',
|
||||||
orderDirection: "Ascending",
|
orderDirection: "Ascending",
|
||||||
orderBy: "SortOrder",
|
orderBy: "SortOrder"
|
||||||
dataTypeId: null
|
|
||||||
};
|
};
|
||||||
if (options === undefined) {
|
if (options === undefined) {
|
||||||
options = {};
|
options = {};
|
||||||
@@ -512,14 +460,12 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
pageSize: options.pageSize,
|
pageSize: options.pageSize,
|
||||||
orderBy: options.orderBy,
|
orderBy: options.orderBy,
|
||||||
orderDirection: options.orderDirection,
|
orderDirection: options.orderDirection,
|
||||||
filter: encodeURIComponent(options.filter),
|
filter: encodeURIComponent(options.filter)
|
||||||
dataTypeId: options.dataTypeId
|
|
||||||
}
|
}
|
||||||
)),
|
)),
|
||||||
'Failed to retrieve child data for id ' + parentId);
|
'Failed to retrieve child data for id ' + parentId);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.entityResource#search
|
* @name umbraco.resources.entityResource#search
|
||||||
@@ -542,17 +488,13 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
* @returns {Promise} resourcePromise object containing the entity array.
|
* @returns {Promise} resourcePromise object containing the entity array.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
search: function (query, type, searchFrom, canceler, dataTypeId) {
|
search: function (query, type, searchFrom, canceler) {
|
||||||
|
|
||||||
var args = [{ query: query }, { type: type }];
|
var args = [{ query: query }, { type: type }];
|
||||||
if (searchFrom) {
|
if (searchFrom) {
|
||||||
args.push({ searchFrom: searchFrom });
|
args.push({ searchFrom: searchFrom });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dataTypeId) {
|
|
||||||
args.push({ dataTypeId: dataTypeId });
|
|
||||||
}
|
|
||||||
|
|
||||||
var httpConfig = {};
|
var httpConfig = {};
|
||||||
if (canceler) {
|
if (canceler) {
|
||||||
httpConfig["timeout"] = canceler;
|
httpConfig["timeout"] = canceler;
|
||||||
@@ -607,8 +549,6 @@ function entityResource($q, $http, umbRequestHelper) {
|
|||||||
'Failed to retrieve entity data for query ' + query);
|
'Failed to retrieve entity data for query ' + query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
/**
|
/**
|
||||||
* @ngdoc service
|
* @ngdoc service
|
||||||
* @name umbraco.resources.mediaResource
|
* @name umbraco.resources.mediaResource
|
||||||
* @description Loads in data for media
|
* @description Loads in data for media
|
||||||
**/
|
**/
|
||||||
function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
||||||
|
|
||||||
/** internal method process the saving of data and post processing the result */
|
/** internal method process the saving of data and post processing the result */
|
||||||
function saveMediaItem(content, action, files) {
|
function saveMediaItem(content, action, files) {
|
||||||
return umbRequestHelper.postSaveContent({
|
return umbRequestHelper.postSaveContent({
|
||||||
restApiUrl: umbRequestHelper.getApiUrl(
|
restApiUrl: umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"PostSave"),
|
"PostSave"),
|
||||||
content: content,
|
content: content,
|
||||||
action: action,
|
action: action,
|
||||||
files: files,
|
files: files,
|
||||||
@@ -24,35 +24,35 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
|||||||
|
|
||||||
getRecycleBin: function () {
|
getRecycleBin: function () {
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"GetRecycleBin")),
|
"GetRecycleBin")),
|
||||||
'Failed to retrieve data for media recycle bin');
|
'Failed to retrieve data for media recycle bin');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#sort
|
* @name umbraco.resources.mediaResource#sort
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Sorts all children below a given parent node id, based on a collection of node-ids
|
* Sorts all children below a given parent node id, based on a collection of node-ids
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* var ids = [123,34533,2334,23434];
|
* var ids = [123,34533,2334,23434];
|
||||||
* mediaResource.sort({ sortedIds: ids })
|
* mediaResource.sort({ sortedIds: ids })
|
||||||
* .then(function() {
|
* .then(function() {
|
||||||
* $scope.complete = true;
|
* $scope.complete = true;
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
* @param {Object} args arguments object
|
* @param {Object} args arguments object
|
||||||
* @param {Int} args.parentId the ID of the parent node
|
* @param {Int} args.parentId the ID of the parent node
|
||||||
* @param {Array} options.sortedIds array of node IDs as they should be sorted
|
* @param {Array} options.sortedIds array of node IDs as they should be sorted
|
||||||
* @returns {Promise} resourcePromise object.
|
* @returns {Promise} resourcePromise object.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
sort: function (args) {
|
sort: function (args) {
|
||||||
if (!args) {
|
if (!args) {
|
||||||
throw "args cannot be null";
|
throw "args cannot be null";
|
||||||
@@ -65,37 +65,37 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.post(umbRequestHelper.getApiUrl("mediaApiBaseUrl", "PostSort"),
|
$http.post(umbRequestHelper.getApiUrl("mediaApiBaseUrl", "PostSort"),
|
||||||
{
|
{
|
||||||
parentId: args.parentId,
|
parentId: args.parentId,
|
||||||
idSortOrder: args.sortedIds
|
idSortOrder: args.sortedIds
|
||||||
}),
|
}),
|
||||||
'Failed to sort media');
|
'Failed to sort media');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#move
|
* @name umbraco.resources.mediaResource#move
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Moves a node underneath a new parentId
|
* Moves a node underneath a new parentId
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.move({ parentId: 1244, id: 123 })
|
* mediaResource.move({ parentId: 1244, id: 123 })
|
||||||
* .then(function() {
|
* .then(function() {
|
||||||
* alert("node was moved");
|
* alert("node was moved");
|
||||||
* }, function(err){
|
* }, function(err){
|
||||||
* alert("node didnt move:" + err.data.Message);
|
* alert("node didnt move:" + err.data.Message);
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
* @param {Object} args arguments object
|
* @param {Object} args arguments object
|
||||||
* @param {Int} args.idd the ID of the node to move
|
* @param {Int} args.idd the ID of the node to move
|
||||||
* @param {Int} args.parentId the ID of the parent node to move to
|
* @param {Int} args.parentId the ID of the parent node to move to
|
||||||
* @returns {Promise} resourcePromise object.
|
* @returns {Promise} resourcePromise object.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
move: function (args) {
|
move: function (args) {
|
||||||
if (!args) {
|
if (!args) {
|
||||||
throw "args cannot be null";
|
throw "args cannot be null";
|
||||||
@@ -108,121 +108,121 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.post(umbRequestHelper.getApiUrl("mediaApiBaseUrl", "PostMove"),
|
$http.post(umbRequestHelper.getApiUrl("mediaApiBaseUrl", "PostMove"),
|
||||||
{
|
{
|
||||||
parentId: args.parentId,
|
parentId: args.parentId,
|
||||||
id: args.id
|
id: args.id
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
error: function(data){
|
error: function(data){
|
||||||
var errorMsg = 'Failed to move media';
|
var errorMsg = 'Failed to move media';
|
||||||
if (data.id !== undefined && data.parentId !== undefined) {
|
if (data.id !== undefined && data.parentId !== undefined) {
|
||||||
if (data.id === data.parentId) {
|
if (data.id === data.parentId) {
|
||||||
errorMsg = 'Media can\'t be moved into itself';
|
errorMsg = 'Media can\'t be moved into itself';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (data.notifications !== undefined) {
|
else if (data.notifications !== undefined) {
|
||||||
if (data.notifications.length > 0) {
|
if (data.notifications.length > 0) {
|
||||||
if (data.notifications[0].header.length > 0) {
|
if (data.notifications[0].header.length > 0) {
|
||||||
errorMsg = data.notifications[0].header;
|
errorMsg = data.notifications[0].header;
|
||||||
}
|
}
|
||||||
if (data.notifications[0].message.length > 0) {
|
if (data.notifications[0].message.length > 0) {
|
||||||
errorMsg = errorMsg + ": " + data.notifications[0].message;
|
errorMsg = errorMsg + ": " + data.notifications[0].message;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
errorMsg: errorMsg
|
errorMsg: errorMsg
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#getById
|
* @name umbraco.resources.mediaResource#getById
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Gets a media item with a given id
|
* Gets a media item with a given id
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.getById(1234)
|
* mediaResource.getById(1234)
|
||||||
* .then(function(media) {
|
* .then(function(media) {
|
||||||
* var myMedia = media;
|
* var myMedia = media;
|
||||||
* alert('its here!');
|
* alert('its here!');
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param {Int} id id of media item to return
|
* @param {Int} id id of media item to return
|
||||||
* @returns {Promise} resourcePromise object containing the media item.
|
* @returns {Promise} resourcePromise object containing the media item.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
getById: function (id) {
|
getById: function (id) {
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"GetById",
|
"GetById",
|
||||||
[{ id: id }])),
|
[{ id: id }])),
|
||||||
'Failed to retrieve data for media id ' + id);
|
'Failed to retrieve data for media id ' + id);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#deleteById
|
* @name umbraco.resources.mediaResource#deleteById
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Deletes a media item with a given id
|
* Deletes a media item with a given id
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.deleteById(1234)
|
* mediaResource.deleteById(1234)
|
||||||
* .then(function() {
|
* .then(function() {
|
||||||
* alert('its gone!');
|
* alert('its gone!');
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param {Int} id id of media item to delete
|
* @param {Int} id id of media item to delete
|
||||||
* @returns {Promise} resourcePromise object.
|
* @returns {Promise} resourcePromise object.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
deleteById: function (id) {
|
deleteById: function (id) {
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.post(
|
$http.post(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"DeleteById",
|
"DeleteById",
|
||||||
[{ id: id }])),
|
[{ id: id }])),
|
||||||
'Failed to delete item ' + id);
|
'Failed to delete item ' + id);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#getByIds
|
* @name umbraco.resources.mediaResource#getByIds
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Gets an array of media items, given a collection of ids
|
* Gets an array of media items, given a collection of ids
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.getByIds( [1234,2526,28262])
|
* mediaResource.getByIds( [1234,2526,28262])
|
||||||
* .then(function(mediaArray) {
|
* .then(function(mediaArray) {
|
||||||
* var myDoc = contentArray;
|
* var myDoc = contentArray;
|
||||||
* alert('they are here!');
|
* alert('they are here!');
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param {Array} ids ids of media items to return as an array
|
* @param {Array} ids ids of media items to return as an array
|
||||||
* @returns {Promise} resourcePromise object containing the media items array.
|
* @returns {Promise} resourcePromise object containing the media items array.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
getByIds: function (ids) {
|
getByIds: function (ids) {
|
||||||
|
|
||||||
var idQuery = "";
|
var idQuery = "";
|
||||||
@@ -231,96 +231,96 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"GetByIds",
|
"GetByIds",
|
||||||
idQuery)),
|
idQuery)),
|
||||||
'Failed to retrieve data for media ids ' + ids);
|
'Failed to retrieve data for media ids ' + ids);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#getScaffold
|
* @name umbraco.resources.mediaResource#getScaffold
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Returns a scaffold of an empty media item, given the id of the media item to place it underneath and the media type alias.
|
* Returns a scaffold of an empty media item, given the id of the media item to place it underneath and the media type alias.
|
||||||
*
|
*
|
||||||
* - Parent Id must be provided so umbraco knows where to store the media
|
* - Parent Id must be provided so umbraco knows where to store the media
|
||||||
* - Media Type alias must be provided so umbraco knows which properties to put on the media scaffold
|
* - Media Type alias must be provided so umbraco knows which properties to put on the media scaffold
|
||||||
*
|
*
|
||||||
* The scaffold is used to build editors for media that has not yet been populated with data.
|
* The scaffold is used to build editors for media that has not yet been populated with data.
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.getScaffold(1234, 'folder')
|
* mediaResource.getScaffold(1234, 'folder')
|
||||||
* .then(function(scaffold) {
|
* .then(function(scaffold) {
|
||||||
* var myDoc = scaffold;
|
* var myDoc = scaffold;
|
||||||
* myDoc.name = "My new media item";
|
* myDoc.name = "My new media item";
|
||||||
*
|
*
|
||||||
* mediaResource.save(myDoc, true)
|
* mediaResource.save(myDoc, true)
|
||||||
* .then(function(media){
|
* .then(function(media){
|
||||||
* alert("Retrieved, updated and saved again");
|
* alert("Retrieved, updated and saved again");
|
||||||
* });
|
* });
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param {Int} parentId id of media item to return
|
* @param {Int} parentId id of media item to return
|
||||||
* @param {String} alias mediatype alias to base the scaffold on
|
* @param {String} alias mediatype alias to base the scaffold on
|
||||||
* @returns {Promise} resourcePromise object containing the media scaffold.
|
* @returns {Promise} resourcePromise object containing the media scaffold.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
getScaffold: function (parentId, alias) {
|
getScaffold: function (parentId, alias) {
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"GetEmpty",
|
"GetEmpty",
|
||||||
[{ contentTypeAlias: alias }, { parentId: parentId }])),
|
[{ contentTypeAlias: alias }, { parentId: parentId }])),
|
||||||
'Failed to retrieve data for empty media item type ' + alias);
|
'Failed to retrieve data for empty media item type ' + alias);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
rootMedia: function () {
|
rootMedia: function () {
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"GetRootMedia")),
|
"GetRootMedia")),
|
||||||
'Failed to retrieve data for root media');
|
'Failed to retrieve data for root media');
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#getChildren
|
* @name umbraco.resources.mediaResource#getChildren
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Gets children of a media item with a given id
|
* Gets children of a media item with a given id
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.getChildren(1234, {pageSize: 10, pageNumber: 2})
|
* mediaResource.getChildren(1234, {pageSize: 10, pageNumber: 2})
|
||||||
* .then(function(contentArray) {
|
* .then(function(contentArray) {
|
||||||
* var children = contentArray;
|
* var children = contentArray;
|
||||||
* alert('they are here!');
|
* alert('they are here!');
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param {Int} parentid id of content item to return children of
|
* @param {Int} parentid id of content item to return children of
|
||||||
* @param {Object} options optional options object
|
* @param {Object} options optional options object
|
||||||
* @param {Int} options.pageSize if paging data, number of nodes per page, default = 0
|
* @param {Int} options.pageSize if paging data, number of nodes per page, default = 0
|
||||||
* @param {Int} options.pageNumber if paging data, current page index, default = 0
|
* @param {Int} options.pageNumber if paging data, current page index, default = 0
|
||||||
* @param {String} options.filter if provided, query will only return those with names matching the filter
|
* @param {String} options.filter if provided, query will only return those with names matching the filter
|
||||||
* @param {String} options.orderDirection can be `Ascending` or `Descending` - Default: `Ascending`
|
* @param {String} options.orderDirection can be `Ascending` or `Descending` - Default: `Ascending`
|
||||||
* @param {String} options.orderBy property to order items by, default: `SortOrder`
|
* @param {String} options.orderBy property to order items by, default: `SortOrder`
|
||||||
* @returns {Promise} resourcePromise object containing an array of content items.
|
* @returns {Promise} resourcePromise object containing an array of content items.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
getChildren: function (parentId, options) {
|
getChildren: function (parentId, options) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
@@ -361,110 +361,110 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"GetChildren",
|
"GetChildren",
|
||||||
[
|
[
|
||||||
{ id: parentId },
|
{ id: parentId },
|
||||||
{ pageNumber: options.pageNumber },
|
{ pageNumber: options.pageNumber },
|
||||||
{ pageSize: options.pageSize },
|
{ pageSize: options.pageSize },
|
||||||
{ orderBy: options.orderBy },
|
{ orderBy: options.orderBy },
|
||||||
{ orderDirection: options.orderDirection },
|
{ orderDirection: options.orderDirection },
|
||||||
{ orderBySystemField: toBool(options.orderBySystemField) },
|
{ orderBySystemField: toBool(options.orderBySystemField) },
|
||||||
{ filter: options.filter }
|
{ filter: options.filter }
|
||||||
])),
|
])),
|
||||||
'Failed to retrieve children for media item ' + parentId);
|
'Failed to retrieve children for media item ' + parentId);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#save
|
* @name umbraco.resources.mediaResource#save
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Saves changes made to a media item, if the media item is new, the isNew paramater must be passed to force creation
|
* Saves changes made to a media item, if the media item is new, the isNew paramater must be passed to force creation
|
||||||
* if the media item needs to have files attached, they must be provided as the files param and passed separately
|
* if the media item needs to have files attached, they must be provided as the files param and passed separately
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.getById(1234)
|
* mediaResource.getById(1234)
|
||||||
* .then(function(media) {
|
* .then(function(media) {
|
||||||
* media.name = "I want a new name!";
|
* media.name = "I want a new name!";
|
||||||
* mediaResource.save(media, false)
|
* mediaResource.save(media, false)
|
||||||
* .then(function(media){
|
* .then(function(media){
|
||||||
* alert("Retrieved, updated and saved again");
|
* alert("Retrieved, updated and saved again");
|
||||||
* });
|
* });
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param {Object} media The media item object with changes applied
|
* @param {Object} media The media item object with changes applied
|
||||||
* @param {Bool} isNew set to true to create a new item or to update an existing
|
* @param {Bool} isNew set to true to create a new item or to update an existing
|
||||||
* @param {Array} files collection of files for the media item
|
* @param {Array} files collection of files for the media item
|
||||||
* @returns {Promise} resourcePromise object containing the saved media item.
|
* @returns {Promise} resourcePromise object containing the saved media item.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
save: function (media, isNew, files) {
|
save: function (media, isNew, files) {
|
||||||
return saveMediaItem(media, "save" + (isNew ? "New" : ""), files);
|
return saveMediaItem(media, "save" + (isNew ? "New" : ""), files);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#addFolder
|
* @name umbraco.resources.mediaResource#addFolder
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Shorthand for adding a media item of the type "Folder" under a given parent ID
|
* Shorthand for adding a media item of the type "Folder" under a given parent ID
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.addFolder("My gallery", 1234)
|
* mediaResource.addFolder("My gallery", 1234)
|
||||||
* .then(function(folder) {
|
* .then(function(folder) {
|
||||||
* alert('New folder');
|
* alert('New folder');
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param {string} name Name of the folder to create
|
* @param {string} name Name of the folder to create
|
||||||
* @param {int} parentId Id of the media item to create the folder underneath
|
* @param {int} parentId Id of the media item to create the folder underneath
|
||||||
* @returns {Promise} resourcePromise object.
|
* @returns {Promise} resourcePromise object.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
addFolder: function (name, parentId) {
|
addFolder: function (name, parentId) {
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.post(umbRequestHelper
|
$http.post(umbRequestHelper
|
||||||
.getApiUrl("mediaApiBaseUrl", "PostAddFolder"),
|
.getApiUrl("mediaApiBaseUrl", "PostAddFolder"),
|
||||||
{
|
{
|
||||||
name: name,
|
name: name,
|
||||||
parentId: parentId
|
parentId: parentId
|
||||||
}),
|
}),
|
||||||
'Failed to add folder');
|
'Failed to add folder');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#getChildFolders
|
* @name umbraco.resources.mediaResource#getChildFolders
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Retrieves all media children with types used as folders.
|
* Retrieves all media children with types used as folders.
|
||||||
* Uses the convention of looking for media items with mediaTypes ending in
|
* Uses the convention of looking for media items with mediaTypes ending in
|
||||||
* *Folder so will match "Folder", "bannerFolder", "secureFolder" etc,
|
* *Folder so will match "Folder", "bannerFolder", "secureFolder" etc,
|
||||||
*
|
*
|
||||||
* NOTE: This will return a max of 500 folders, if more is required it needs to be paged
|
* NOTE: This will return a max of 500 folders, if more is required it needs to be paged
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.getChildFolders(1234)
|
* mediaResource.getChildFolders(1234)
|
||||||
* .then(function(data) {
|
* .then(function(data) {
|
||||||
* alert('folders');
|
* alert('folders');
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param {int} parentId Id of the media item to query for child folders
|
* @param {int} parentId Id of the media item to query for child folders
|
||||||
* @returns {Promise} resourcePromise object.
|
* @returns {Promise} resourcePromise object.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
getChildFolders: function (parentId) {
|
getChildFolders: function (parentId) {
|
||||||
if (!parentId) {
|
if (!parentId) {
|
||||||
parentId = -1;
|
parentId = -1;
|
||||||
@@ -472,67 +472,67 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
|||||||
|
|
||||||
//NOTE: This will return a max of 500 folders, if more is required it needs to be paged
|
//NOTE: This will return a max of 500 folders, if more is required it needs to be paged
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"GetChildFolders",
|
"GetChildFolders",
|
||||||
{
|
{
|
||||||
id: parentId
|
id: parentId
|
||||||
})),
|
})),
|
||||||
'Failed to retrieve child folders for media item ' + parentId);
|
'Failed to retrieve child folders for media item ' + parentId);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#emptyRecycleBin
|
* @name umbraco.resources.mediaResource#emptyRecycleBin
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Empties the media recycle bin
|
* Empties the media recycle bin
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.emptyRecycleBin()
|
* mediaResource.emptyRecycleBin()
|
||||||
* .then(function() {
|
* .then(function() {
|
||||||
* alert('its empty!');
|
* alert('its empty!');
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @returns {Promise} resourcePromise object.
|
* @returns {Promise} resourcePromise object.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
emptyRecycleBin: function () {
|
emptyRecycleBin: function () {
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.post(
|
$http.post(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"EmptyRecycleBin")),
|
"EmptyRecycleBin")),
|
||||||
'Failed to empty the recycle bin');
|
'Failed to empty the recycle bin');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
* @name umbraco.resources.mediaResource#search
|
* @name umbraco.resources.mediaResource#search
|
||||||
* @methodOf umbraco.resources.mediaResource
|
* @methodOf umbraco.resources.mediaResource
|
||||||
*
|
*
|
||||||
* @description
|
* @description
|
||||||
* Paginated search for media items starting on the supplied nodeId
|
* Paginated search for media items starting on the supplied nodeId
|
||||||
*
|
*
|
||||||
* ##usage
|
* ##usage
|
||||||
* <pre>
|
* <pre>
|
||||||
* mediaResource.search("my search", 1, 100, -1)
|
* mediaResource.search("my search", 1, 100, -1)
|
||||||
* .then(function(searchResult) {
|
* .then(function(searchResult) {
|
||||||
* alert('it's here!');
|
* alert('it's here!');
|
||||||
* });
|
* });
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param {string} query The search query
|
* @param {string} query The search query
|
||||||
* @param {int} pageNumber The page number
|
* @param {int} pageNumber The page number
|
||||||
* @param {int} pageSize The number of media items on a page
|
* @param {int} pageSize The number of media items on a page
|
||||||
* @param {int} searchFrom NodeId to search from (-1 for root)
|
* @param {int} searchFrom NodeId to search from (-1 for root)
|
||||||
* @returns {Promise} resourcePromise object.
|
* @returns {Promise} resourcePromise object.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
search: function (query, pageNumber, pageSize, searchFrom) {
|
search: function (query, pageNumber, pageSize, searchFrom) {
|
||||||
|
|
||||||
var args = [
|
var args = [
|
||||||
@@ -543,12 +543,12 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
|||||||
];
|
];
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.get(
|
$http.get(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"mediaApiBaseUrl",
|
"mediaApiBaseUrl",
|
||||||
"Search",
|
"Search",
|
||||||
args)),
|
args)),
|
||||||
'Failed to retrieve media items for search: ' + query);
|
'Failed to retrieve media items for search: ' + query);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ function relationResource($q, $http, umbRequestHelper) {
|
|||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"relationApiBaseUrl",
|
"relationApiBaseUrl",
|
||||||
"GetByChildId",
|
"GetByChildId",
|
||||||
{ childId: id, relationTypeAlias: alias })),
|
[{ childId: id, relationTypeAlias: alias }])),
|
||||||
"Failed to get relation by child ID " + id + " and type of " + alias);
|
"Failed to get relation by child ID " + id + " and type of " + alias);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* @name umbraco.resources.templateResource
|
* @name umbraco.resources.templateResource
|
||||||
* @description Loads in data for templates
|
* @description Loads in data for templates
|
||||||
**/
|
**/
|
||||||
function templateResource($q, $http, umbDataFormatter, umbRequestHelper, localizationService) {
|
function templateResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
||||||
@@ -152,16 +152,13 @@ function templateResource($q, $http, umbDataFormatter, umbRequestHelper, localiz
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
deleteById: function(id) {
|
deleteById: function(id) {
|
||||||
|
|
||||||
var promise = localizationService.localize("template_deleteByIdFailed", [id]);
|
|
||||||
|
|
||||||
return umbRequestHelper.resourcePromise(
|
return umbRequestHelper.resourcePromise(
|
||||||
$http.post(
|
$http.post(
|
||||||
umbRequestHelper.getApiUrl(
|
umbRequestHelper.getApiUrl(
|
||||||
"templateApiBaseUrl",
|
"templateApiBaseUrl",
|
||||||
"DeleteById",
|
"DeleteById",
|
||||||
[{ id: id }])),
|
[{ id: id }])),
|
||||||
promise);
|
"Failed to delete item " + id);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -44,28 +44,21 @@ angular.module('umbraco.security.interceptor')
|
|||||||
return promise;
|
return promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (originalResponse.status === 401) {
|
//A 401 means that the user is not logged in
|
||||||
|
if (originalResponse.status === 401 && !originalResponse.config.url.endsWith("umbraco/backoffice/UmbracoApi/Authentication/GetCurrentUser")) {
|
||||||
|
|
||||||
//A 401 means that the user is not logged in
|
var userService = $injector.get('userService'); // see above
|
||||||
|
|
||||||
//avoid an infinite loop
|
//Associate the user name with the retry to ensure we retry for the right user
|
||||||
var umbRequestHelper = $injector.get('umbRequestHelper');
|
promise = userService.getCurrentUser()
|
||||||
var getCurrentUserPath = umbRequestHelper.getApiUrl("authenticationApiBaseUrl", "GetCurrentUser");
|
.then(function (user) {
|
||||||
if (!originalResponse.config.url.endsWith(getCurrentUserPath)) {
|
var userName = user ? user.name : null;
|
||||||
|
//The request bounced because it was not authorized - add a new request to the retry queue
|
||||||
var userService = $injector.get('userService'); // see above
|
return queue.pushRetryFn('unauthorized-server', userName, function retryRequest() {
|
||||||
|
// We must use $injector to get the $http service to prevent circular dependency
|
||||||
//Associate the user name with the retry to ensure we retry for the right user
|
return $injector.get('$http')(originalResponse.config);
|
||||||
promise = userService.getCurrentUser()
|
});
|
||||||
.then(function (user) {
|
});
|
||||||
var userName = user ? user.name : null;
|
|
||||||
//The request bounced because it was not authorized - add a new request to the retry queue
|
|
||||||
return queue.pushRetryFn('unauthorized-server', userName, function retryRequest() {
|
|
||||||
// We must use $injector to get the $http service to prevent circular dependency
|
|
||||||
return $injector.get('$http')(originalResponse.config);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (originalResponse.status === 404) {
|
else if (originalResponse.status === 404) {
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user