From a7759c6175ed05ccb19dfd024a184073164a9217 Mon Sep 17 00:00:00 2001 From: Stephan Date: Sun, 12 Jun 2016 13:07:00 +0200 Subject: [PATCH] U4-8361 - renaming --- src/Umbraco.Core/Models/IRedirectUrl.cs | 18 ++++++ ...ContentUrlRuleDto.cs => RedirectUrlDto.cs} | 10 ++-- .../{ContentUrlRule.cs => RedirectUrl.cs} | 10 ++-- ...UrlRuleTable.cs => AddRedirectUrlTable.cs} | 14 ++--- .../Interfaces/IRedirectUrlRepository.cs | 13 +++++ .../Services/IContentUrlRuleService.cs | 25 --------- .../Services/IRedirectUrlService.cs | 24 ++++++++ ...rlRuleService.cs => RedirectUrlService.cs} | 55 +++++++++++-------- src/Umbraco.Core/Umbraco.Core.csproj | 12 ++-- 9 files changed, 112 insertions(+), 69 deletions(-) create mode 100644 src/Umbraco.Core/Models/IRedirectUrl.cs rename src/Umbraco.Core/Models/Rdbms/{ContentUrlRuleDto.cs => RedirectUrlDto.cs} (78%) rename src/Umbraco.Core/Models/{ContentUrlRule.cs => RedirectUrl.cs} (55%) rename src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFiveZero/{CreateContentUrlRuleTable.cs => AddRedirectUrlTable.cs} (66%) create mode 100644 src/Umbraco.Core/Persistence/Repositories/Interfaces/IRedirectUrlRepository.cs delete mode 100644 src/Umbraco.Core/Services/IContentUrlRuleService.cs create mode 100644 src/Umbraco.Core/Services/IRedirectUrlService.cs rename src/Umbraco.Core/Services/{ContentUrlRuleService.cs => RedirectUrlService.cs} (61%) diff --git a/src/Umbraco.Core/Models/IRedirectUrl.cs b/src/Umbraco.Core/Models/IRedirectUrl.cs new file mode 100644 index 0000000000..4f15b1e082 --- /dev/null +++ b/src/Umbraco.Core/Models/IRedirectUrl.cs @@ -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; } + } +} diff --git a/src/Umbraco.Core/Models/Rdbms/ContentUrlRuleDto.cs b/src/Umbraco.Core/Models/Rdbms/RedirectUrlDto.cs similarity index 78% rename from src/Umbraco.Core/Models/Rdbms/ContentUrlRuleDto.cs rename to src/Umbraco.Core/Models/Rdbms/RedirectUrlDto.cs index 49f14dedf3..6ada1dca74 100644 --- a/src/Umbraco.Core/Models/Rdbms/ContentUrlRuleDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/RedirectUrlDto.cs @@ -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; } } } diff --git a/src/Umbraco.Core/Models/ContentUrlRule.cs b/src/Umbraco.Core/Models/RedirectUrl.cs similarity index 55% rename from src/Umbraco.Core/Models/ContentUrlRule.cs rename to src/Umbraco.Core/Models/RedirectUrl.cs index d8a23d431e..28c7d8635a 100644 --- a/src/Umbraco.Core/Models/ContentUrlRule.cs +++ b/src/Umbraco.Core/Models/RedirectUrl.cs @@ -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; } diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFiveZero/CreateContentUrlRuleTable.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFiveZero/AddRedirectUrlTable.cs similarity index 66% rename from src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFiveZero/CreateContentUrlRuleTable.cs rename to src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFiveZero/AddRedirectUrlTable.cs index 8706fb747a..43c2da780b 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFiveZero/CreateContentUrlRuleTable.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFiveZero/AddRedirectUrlTable.cs @@ -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") diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IRedirectUrlRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IRedirectUrlRepository.cs new file mode 100644 index 0000000000..bebed2b336 --- /dev/null +++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IRedirectUrlRepository.cs @@ -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 + { + } +} diff --git a/src/Umbraco.Core/Services/IContentUrlRuleService.cs b/src/Umbraco.Core/Services/IContentUrlRuleService.cs deleted file mode 100644 index 4d43e90aba..0000000000 --- a/src/Umbraco.Core/Services/IContentUrlRuleService.cs +++ /dev/null @@ -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 GetRules(int contentId); - - IEnumerable GetAllRules(long pageIndex, int pageSize, out long total); - - IEnumerable GetAllRules(int rootContentId, long pageIndex, int pageSize, out long total); - } -} diff --git a/src/Umbraco.Core/Services/IRedirectUrlService.cs b/src/Umbraco.Core/Services/IRedirectUrlService.cs new file mode 100644 index 0000000000..88d010b8e0 --- /dev/null +++ b/src/Umbraco.Core/Services/IRedirectUrlService.cs @@ -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 GetRules(int contentId); + + IEnumerable GetAllRules(long pageIndex, int pageSize, out long total); + + IEnumerable GetAllRules(int rootContentId, long pageIndex, int pageSize, out long total); + } +} diff --git a/src/Umbraco.Core/Services/ContentUrlRuleService.cs b/src/Umbraco.Core/Services/RedirectUrlService.cs similarity index 61% rename from src/Umbraco.Core/Services/ContentUrlRuleService.cs rename to src/Umbraco.Core/Services/RedirectUrlService.cs index cff6c080f4..f2496a9e89 100644 --- a/src/Umbraco.Core/Services/ContentUrlRuleService.cs +++ b/src/Umbraco.Core/Services/RedirectUrlService.cs @@ -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("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("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 GetRules(int contentId) + public IEnumerable GetRules(int contentId) { using (var uow = UowProvider.GetUnitOfWork()) { - var ruleDtos = uow.Database.Fetch("SELECT * FROM umbracoContentUrlRule WHERE contentId=@id ORDER BY createDateUtc DESC;", + var ruleDtos = uow.Database.Fetch("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 GetAllRules(long pageIndex, int pageSize, out long total) + public IEnumerable GetAllRules(long pageIndex, int pageSize, out long total) { using (var uow = UowProvider.GetUnitOfWork()) { - var ruleDtos = uow.Database.Fetch("SELECT * FROM umbracoContentUrlRule ORDER BY createDateUtc DESC;"); - var rules = ruleDtos.Select(x => new ContentUrlRule + var ruleDtos = uow.Database.Fetch("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 GetAllRules(int rootContentId, long pageIndex, int pageSize, out long total) + public IEnumerable GetAllRules(int rootContentId, long pageIndex, int pageSize, out long total) { using (var uow = UowProvider.GetUnitOfWork()) { var path = "%," + rootContentId + ",%"; - var ruleDtos = uow.Database.Fetch(@"SELECT * FROM umbracoContentUrlRule + var ruleDtos = uow.Database.Fetch(@"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, diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index ff86e2f574..7af77f359a 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -373,6 +373,7 @@ + @@ -396,7 +397,7 @@ - + @@ -418,7 +419,7 @@ - + @@ -471,6 +472,7 @@ + @@ -510,12 +512,12 @@ - - + + - +