U4-8361 - renaming

This commit is contained in:
Stephan
2016-06-12 13:07:00 +02:00
parent 36fbb9df86
commit a7759c6175
9 changed files with 112 additions and 69 deletions

View File

@@ -0,0 +1,18 @@
using System;
using System.Runtime.Serialization;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
public interface IRedirectUrl : IAggregateRoot, IRememberBeingDirty
{
[DataMember]
int ContentId { get; set; }
[DataMember]
DateTime CreateDateUtc { get; set; }
[DataMember]
string Url { get; set; }
}
}

View File

@@ -4,18 +4,18 @@ using Umbraco.Core.Persistence.DatabaseAnnotations;
namespace Umbraco.Core.Models.Rdbms
{
[TableName("umbracoContentUrlRule")]
[TableName("umbracoRedirectUrl")]
[PrimaryKey("id")]
[ExplicitColumns]
class ContentUrlRuleDto
class RedirectUrlDto
{
public ContentUrlRuleDto()
public RedirectUrlDto()
{
CreateDateUtc = DateTime.UtcNow;
}
[Column("id")]
[PrimaryKeyColumn(IdentitySeed = 1, Name = "PK_umbracoContentUrlRule")]
[PrimaryKeyColumn(IdentitySeed = 1, Name = "PK_umbracoRedirectUrl")]
public int Id { get; set; }
[Column("contentId")]
@@ -29,7 +29,7 @@ namespace Umbraco.Core.Models.Rdbms
[Column("url")]
[NullSetting(NullSetting = NullSettings.NotNull)]
[Index(IndexTypes.UniqueNonClustered, Name = "IX_umbracoContentUrlRule", ForColumns = "url, createDateUtc")]
[Index(IndexTypes.UniqueNonClustered, Name = "IX_umbracoRedirectUrl", ForColumns = "url, createDateUtc")]
public string Url { get; set; }
}
}

View File

@@ -1,16 +1,18 @@
using System;
using System.Runtime.Serialization;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
public class ContentUrlRule
[Serializable]
[DataContract(IsReference = true)]
public class RedirectUrl : Entity, IRedirectUrl
{
public ContentUrlRule()
public RedirectUrl()
{
CreateDateUtc = DateTime.UtcNow;
}
public int Id { get; internal set; }
public int ContentId { get; set; }
public DateTime CreateDateUtc { get; set; }

View File

@@ -6,9 +6,9 @@ using Umbraco.Core.Persistence.SqlSyntax;
namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenFiveZero
{
[Migration("7.5.0", 100, GlobalSettings.UmbracoMigrationName)]
public class CreateContentUrlRuleTable : MigrationBase
public class AddRedirectUrlTable : MigrationBase
{
public CreateContentUrlRuleTable(ISqlSyntaxProvider sqlSyntax, ILogger logger)
public AddRedirectUrlTable(ISqlSyntaxProvider sqlSyntax, ILogger logger)
: base(sqlSyntax, logger)
{ }
@@ -16,17 +16,17 @@ namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenFiveZer
{
// don't exeucte if the table is already there
var tables = SqlSyntax.GetTablesInSchema(Context.Database).ToArray();
if (tables.InvariantContains("umbracoContentUrlRule")) return;
if (tables.InvariantContains("umbracoRedirectUrl")) return;
Create.Table("umbracoContentUrlRule")
.WithColumn("id").AsInt32().Identity().PrimaryKey("PK_umbracoContentUrlRule")
Create.Table("umbracoRedirectUrl")
.WithColumn("id").AsInt32().Identity().PrimaryKey("PK_umbracoRedirectUrl")
.WithColumn("contentId").AsInt32().NotNullable()
.WithColumn("createDateUtc").AsDateTime().NotNullable()
.WithColumn("url").AsString(2048).NotNullable();
Create.PrimaryKey("PK_umbracoContentUrlRule").OnTable("umbracoContentUrlRule").Columns(new[] { "id" });
Create.PrimaryKey("PK_umbracoRedirectUrl").OnTable("umbracoRedirectUrl").Columns(new[] { "id" });
Create.Index("IX_umbracoContenUrlRule").OnTable("umbracoContentUrlRule")
Create.Index("IX_umbracoRedirectUrl").OnTable("umbracoRedirectUrl")
.OnColumn("url")
.Ascending()
.OnColumn("createDateUtc")

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Umbraco.Core.Models;
namespace Umbraco.Core.Persistence.Repositories
{
interface IRedirectUrlRepository : IRepositoryQueryable<int, IRedirectUrl>
{
}
}

View File

@@ -1,25 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Umbraco.Core.Models;
namespace Umbraco.Core.Services
{
public interface IContentUrlRuleService
{
void Save(ContentUrlRule rule);
void Delete(int ruleId);
void DeleteContentRules(int contentId);
ContentUrlRule GetMostRecentRule(string url);
IEnumerable<ContentUrlRule> GetRules(int contentId);
IEnumerable<ContentUrlRule> GetAllRules(long pageIndex, int pageSize, out long total);
IEnumerable<ContentUrlRule> GetAllRules(int rootContentId, long pageIndex, int pageSize, out long total);
}
}

View File

@@ -0,0 +1,24 @@
using System.Collections.Generic;
using Umbraco.Core.Models;
namespace Umbraco.Core.Services
{
public interface IRedirectUrlService : IService
{
void Save(RedirectUrl redirectUrl);
void Delete(int id);
void DeleteContentRules(int contentId);
void DeleteAll();
RedirectUrl GetMostRecentRule(string url);
IEnumerable<RedirectUrl> GetRules(int contentId);
IEnumerable<RedirectUrl> GetAllRules(long pageIndex, int pageSize, out long total);
IEnumerable<RedirectUrl> GetAllRules(int rootContentId, long pageIndex, int pageSize, out long total);
}
}

View File

@@ -9,13 +9,13 @@ using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
{
class ContentUrlRuleService : RepositoryService, IContentUrlRuleService
class RedirectUrlService : RepositoryService, IRedirectUrlService
{
public ContentUrlRuleService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IEventMessagesFactory eventMessagesFactory)
public RedirectUrlService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IEventMessagesFactory eventMessagesFactory)
: base(provider, repositoryFactory, logger, eventMessagesFactory)
{ }
public void Save(ContentUrlRule rule)
public void Save(RedirectUrl redirectUrl)
{
// check if the url already exists
// the url actually is a primary key?
@@ -23,24 +23,24 @@ namespace Umbraco.Core.Services
using (var uow = UowProvider.GetUnitOfWork())
{
var dto = new ContentUrlRuleDto
var dto = new RedirectUrlDto
{
Id = rule.Id,
ContentId = rule.ContentId,
CreateDateUtc = rule.CreateDateUtc,
Url = rule.Url
Id = redirectUrl.Id,
ContentId = redirectUrl.ContentId,
CreateDateUtc = redirectUrl.CreateDateUtc,
Url = redirectUrl.Url
};
uow.Database.InsertOrUpdate(dto);
uow.Commit();
rule.Id = dto.Id;
redirectUrl.Id = dto.Id;
}
}
public void Delete(int ruleId)
public void Delete(int id)
{
using (var uow = UowProvider.GetUnitOfWork())
{
uow.Database.Execute("DELETE FROM umbracoContentUrlRule WHERE id=@id", new { id = ruleId });
uow.Database.Execute("DELETE FROM umbracoContentUrlRule WHERE id=@id", new { id = id });
uow.Commit();
}
}
@@ -54,14 +54,23 @@ namespace Umbraco.Core.Services
}
}
public ContentUrlRule GetMostRecentRule(string url)
public void DeleteAll()
{
using (var uow = UowProvider.GetUnitOfWork())
{
var ruleDtos = uow.Database.Fetch<ContentUrlRuleDto>("SELECT * FROM umbracoContentUrlRule WHERE url=@url ORDER BY createDateUtc DESC;",
uow.Database.Execute("DELETE FROM umbracoContentUrlRule;");
uow.Commit();
}
}
public RedirectUrl GetMostRecentRule(string url)
{
using (var uow = UowProvider.GetUnitOfWork())
{
var ruleDtos = uow.Database.Fetch<RedirectUrlDto>("SELECT * FROM umbracoContentUrlRule WHERE url=@url ORDER BY createDateUtc DESC;",
new { url });
var ruleDto = ruleDtos.FirstOrDefault();
var rule = ruleDto == null ? null : new ContentUrlRule
var rule = ruleDto == null ? null : new RedirectUrl
{
Id = ruleDto.Id,
ContentId = ruleDto.ContentId,
@@ -73,13 +82,13 @@ namespace Umbraco.Core.Services
}
}
public IEnumerable<ContentUrlRule> GetRules(int contentId)
public IEnumerable<RedirectUrl> GetRules(int contentId)
{
using (var uow = UowProvider.GetUnitOfWork())
{
var ruleDtos = uow.Database.Fetch<ContentUrlRuleDto>("SELECT * FROM umbracoContentUrlRule WHERE contentId=@id ORDER BY createDateUtc DESC;",
var ruleDtos = uow.Database.Fetch<RedirectUrlDto>("SELECT * FROM umbracoContentUrlRule WHERE contentId=@id ORDER BY createDateUtc DESC;",
new { id = contentId });
var rules = ruleDtos.Select(x=> new ContentUrlRule
var rules = ruleDtos.Select(x=> new RedirectUrl
{
Id = x.Id,
ContentId = x.ContentId,
@@ -91,12 +100,12 @@ namespace Umbraco.Core.Services
}
}
public IEnumerable<ContentUrlRule> GetAllRules(long pageIndex, int pageSize, out long total)
public IEnumerable<RedirectUrl> GetAllRules(long pageIndex, int pageSize, out long total)
{
using (var uow = UowProvider.GetUnitOfWork())
{
var ruleDtos = uow.Database.Fetch<ContentUrlRuleDto>("SELECT * FROM umbracoContentUrlRule ORDER BY createDateUtc DESC;");
var rules = ruleDtos.Select(x => new ContentUrlRule
var ruleDtos = uow.Database.Fetch<RedirectUrlDto>("SELECT * FROM umbracoContentUrlRule ORDER BY createDateUtc DESC;");
var rules = ruleDtos.Select(x => new RedirectUrl
{
Id = x.Id,
ContentId = x.ContentId,
@@ -109,17 +118,17 @@ namespace Umbraco.Core.Services
}
}
public IEnumerable<ContentUrlRule> GetAllRules(int rootContentId, long pageIndex, int pageSize, out long total)
public IEnumerable<RedirectUrl> GetAllRules(int rootContentId, long pageIndex, int pageSize, out long total)
{
using (var uow = UowProvider.GetUnitOfWork())
{
var path = "%," + rootContentId + ",%";
var ruleDtos = uow.Database.Fetch<ContentUrlRuleDto>(@"SELECT * FROM umbracoContentUrlRule
var ruleDtos = uow.Database.Fetch<RedirectUrlDto>(@"SELECT * FROM umbracoContentUrlRule
JOIN umbracoNode ON umbracoNode.id=umbracoContentUrlRule.contentId
WHERE umbracoNode.path LIKE @path
ORDER BY createDateUtc DESC;", new { path });
var rules = ruleDtos.Select(x => new ContentUrlRule
var rules = ruleDtos.Select(x => new RedirectUrl
{
Id = x.Id,
ContentId = x.ContentId,

View File

@@ -373,6 +373,7 @@
<Compile Include="Models\Identity\IIdentityUserLogin.cs" />
<Compile Include="Models\IMigrationEntry.cs" />
<Compile Include="Models\IPublishedContentWithKey.cs" />
<Compile Include="Models\IRedirectUrl.cs" />
<Compile Include="Models\IServerRegistration.cs" />
<Compile Include="Models\Mapping\MappingExpressionExtensions.cs" />
<Compile Include="Models\MigrationEntry.cs" />
@@ -396,7 +397,7 @@
<Compile Include="Media\Exif\ExifTag.cs" />
<Compile Include="Media\Exif\ExifTagFactory.cs" />
<Compile Include="Models\Rdbms\AccessRuleDto.cs" />
<Compile Include="Models\Rdbms\ContentUrlRuleDto.cs" />
<Compile Include="Models\Rdbms\RedirectUrlDto.cs" />
<Compile Include="Models\Rdbms\DocumentPublishedReadOnlyDto.cs" />
<Compile Include="Models\Rdbms\ExternalLoginDto.cs" />
<Compile Include="Models\Rdbms\MigrationDto.cs" />
@@ -418,7 +419,7 @@
<Compile Include="Persistence\Mappers\MigrationEntryMapper.cs" />
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionFourOneZero\AddPreviewXmlTable.cs" />
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenFiveZero\EnsureServersLockObject.cs" />
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenFiveZero\CreateContentUrlRuleTable.cs" />
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenFiveZero\AddRedirectUrlTable.cs" />
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenFourZero\FixListViewMediaSortOrder.cs" />
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenFourZero\AddDataDecimalColumn.cs" />
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenFourZero\AddUmbracoDeployTables.cs" />
@@ -471,6 +472,7 @@
<Compile Include="Persistence\Repositories\Interfaces\IExternalLoginRepository.cs" />
<Compile Include="Persistence\Repositories\Interfaces\IMigrationEntryRepository.cs" />
<Compile Include="Persistence\Repositories\Interfaces\IPublicAccessRepository.cs" />
<Compile Include="Persistence\Repositories\Interfaces\IRedirectUrlRepository.cs" />
<Compile Include="Persistence\Repositories\Interfaces\IServerRegistrationRepository.cs" />
<Compile Include="Persistence\Repositories\Interfaces\IDeleteMediaFilesRepository.cs" />
<Compile Include="Persistence\Repositories\Interfaces\ITaskRepository.cs" />
@@ -510,12 +512,12 @@
<Compile Include="Persistence\Migrations\Upgrades\TargetVersionSevenThreeZero\MigrateStylesheetDataToFile.cs" />
<Compile Include="Services\AuditService.cs" />
<Compile Include="Services\ContentTypeServiceExtensions.cs" />
<Compile Include="Models\ContentUrlRule.cs" />
<Compile Include="Services\ContentUrlRuleService.cs" />
<Compile Include="Models\RedirectUrl.cs" />
<Compile Include="Services\RedirectUrlService.cs" />
<Compile Include="Services\DomainService.cs" />
<Compile Include="Services\ExternalLoginService.cs" />
<Compile Include="Services\IAuditService.cs" />
<Compile Include="Services\IContentUrlRuleService.cs" />
<Compile Include="Services\IRedirectUrlService.cs" />
<Compile Include="Services\IDomainService.cs" />
<Compile Include="Services\IExternalLoginService.cs" />
<Compile Include="Services\IMigrationEntryService.cs" />