diff --git a/src/Umbraco.Core/Models/Rdbms/TaskDto.cs b/src/Umbraco.Core/Models/Rdbms/TaskDto.cs
index 4c38197d67..75e4d25cb7 100644
--- a/src/Umbraco.Core/Models/Rdbms/TaskDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/TaskDto.cs
@@ -41,5 +41,8 @@ namespace Umbraco.Core.Models.Rdbms
[NullSetting(NullSetting = NullSettings.Null)]
[Length(500)]
public string Comment { get; set; }
+
+ [ResultColumn]
+ public TaskTypeDto TaskTypeDto { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Models/Rdbms/TaskTypeDto.cs b/src/Umbraco.Core/Models/Rdbms/TaskTypeDto.cs
index 0e09d30d92..2ff61953ce 100644
--- a/src/Umbraco.Core/Models/Rdbms/TaskTypeDto.cs
+++ b/src/Umbraco.Core/Models/Rdbms/TaskTypeDto.cs
@@ -9,7 +9,7 @@ namespace Umbraco.Core.Models.Rdbms
internal class TaskTypeDto
{
[Column("id")]
- [PrimaryKeyColumn]
+ [PrimaryKeyColumn(IdentitySeed = 2)]
public byte Id { get; set; }
[Column("alias")]
diff --git a/src/Umbraco.Core/Persistence/Factories/TaskFactory.cs b/src/Umbraco.Core/Persistence/Factories/TaskFactory.cs
new file mode 100644
index 0000000000..599eae12cb
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Factories/TaskFactory.cs
@@ -0,0 +1,50 @@
+using AutoMapper;
+using Umbraco.Core.Models;
+using Umbraco.Core.Models.Mapping;
+using Umbraco.Core.Models.Rdbms;
+
+namespace Umbraco.Core.Persistence.Factories
+{
+ ///
+ /// Creates the model mappings for Tasks
+ ///
+ internal class TaskFactory
+ {
+
+
+ public Task BuildEntity(TaskDto dto)
+ {
+ var entity = new Task(new TaskType(dto.TaskTypeDto.Alias) { Id = dto.TaskTypeDto.Id })
+ {
+ Closed = dto.Closed,
+ AssigneeUserId = dto.UserId,
+ Comment = dto.Comment,
+ CreateDate = dto.DateTime,
+ EntityId = dto.NodeId,
+ Id = dto.Id,
+ OwnerUserId = dto.ParentUserId,
+ };
+ //on initial construction we don't want to have dirty properties tracked
+ // http://issues.umbraco.org/issue/U4-1946
+ entity.ResetDirtyProperties(false);
+ return entity;
+ }
+
+ public TaskDto BuildDto(Task entity)
+ {
+ var dto = new TaskDto
+ {
+ Closed = entity.Closed,
+ Comment = entity.Comment,
+ DateTime = entity.CreateDate,
+ Id = entity.Id,
+ NodeId = entity.EntityId,
+ ParentUserId = entity.OwnerUserId,
+ TaskTypeId = (byte)entity.TaskType.Id,
+ UserId = entity.AssigneeUserId
+ };
+
+ return dto;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Persistence/Relators/MacroPropertyRelator.cs b/src/Umbraco.Core/Persistence/Relators/MacroPropertyRelator.cs
index fb563fa25c..2f457edfd8 100644
--- a/src/Umbraco.Core/Persistence/Relators/MacroPropertyRelator.cs
+++ b/src/Umbraco.Core/Persistence/Relators/MacroPropertyRelator.cs
@@ -3,6 +3,48 @@ using Umbraco.Core.Models.Rdbms;
namespace Umbraco.Core.Persistence.Relators
{
+ //internal class TaskUserRelator
+ //{
+ // internal TaskDto Current;
+
+ // internal TaskDto Map(TaskDto a, UserDto 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 TaskDto as the current one we're processing
+ // if (Current != null && Current.Id == a.Id)
+ // {
+ // // Yes, set the user
+ // Current.MacroPropertyDtos.Add(p);
+
+ // // Return null to indicate we're not done with this Macro yet
+ // return null;
+ // }
+
+ // // This is a different Macro to the current one, or this is the
+ // // first time through and we don't have one yet
+
+ // // Save the current Macro
+ // var prev = Current;
+
+ // // Setup the new current Macro
+ // Current = a;
+ // Current.MacroPropertyDtos = new List();
+ // //this can be null since we are doing a left join
+ // if (p.Alias != null)
+ // {
+ // Current.MacroPropertyDtos.Add(p);
+ // }
+
+ // // Return the now populated previous Macro (or null if first time through)
+ // return prev;
+ // }
+ //}
+
internal class MacroPropertyRelator
{
internal MacroDto Current;
diff --git a/src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs b/src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs
index 5145cf808d..53ffda9364 100644
--- a/src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs
@@ -11,8 +11,8 @@ namespace Umbraco.Core.Persistence.Repositories
{
internal class AuditRepository : PetaPocoRepositoryBase, IAuditRepository
{
- public AuditRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntaxProvider)
- : base(work, cache, logger, sqlSyntaxProvider)
+ public AuditRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax)
+ : base(work, cache, logger, sqlSyntax)
{
}
@@ -68,9 +68,9 @@ namespace Umbraco.Core.Persistence.Repositories
protected override Guid NodeObjectTypeId
{
get { throw new NotImplementedException(); }
- }
+ }
#endregion
-
+
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
index 5a09d95c49..77228039f9 100644
--- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
@@ -170,7 +170,7 @@ namespace Umbraco.Core.Persistence.Repositories
.InnerJoin()
.On(left => left.NodeId, right => right.NodeId);
- var deleteSql = SqlSyntaxProvider.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
+ var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
Database.Execute(deleteSql);
}
else
@@ -186,7 +186,7 @@ namespace Umbraco.Core.Persistence.Repositories
.Where(dto => dto.Published)
.Where(dto => dto.ContentTypeId == id1);
- var deleteSql = SqlSyntaxProvider.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
+ var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
Database.Execute(deleteSql);
}
}
@@ -346,7 +346,7 @@ namespace Umbraco.Core.Persistence.Repositories
//Assign the same permissions to it as the parent node
// http://issues.umbraco.org/issue/U4-2161
- var permissionsRepo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntaxProvider);
+ var permissionsRepo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntax);
var parentPermissions = permissionsRepo.GetPermissionsForEntity(entity.ParentId).ToArray();
//if there are parent permissions then assign them, otherwise leave null and permissions will become the
// user's default permissions.
@@ -614,7 +614,7 @@ namespace Umbraco.Core.Persistence.Repositories
public void ReplaceContentPermissions(EntityPermissionSet permissionSet)
{
- var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntaxProvider);
+ var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntax);
repo.ReplaceEntityPermissions(permissionSet);
}
@@ -641,13 +641,13 @@ namespace Umbraco.Core.Persistence.Repositories
///
public void AssignEntityPermission(IContent entity, char permission, IEnumerable userIds)
{
- var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntaxProvider);
+ var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntax);
repo.AssignEntityPermission(entity, permission, userIds);
}
public IEnumerable GetPermissionsForEntity(int entityId)
{
- var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntaxProvider);
+ var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntax);
return repo.GetPermissionsForEntity(entityId);
}
@@ -709,7 +709,7 @@ namespace Umbraco.Core.Persistence.Repositories
if (filter.IsNullOrWhiteSpace() == false)
{
- sbWhere.Append(" AND (cmsDocument." + SqlSyntaxProvider.GetQuotedColumnName("text") + " LIKE @" + args.Count + ")");
+ sbWhere.Append(" AND (cmsDocument." + SqlSyntax.GetQuotedColumnName("text") + " LIKE @" + args.Count + ")");
args.Add("%" + filter + "%");
}
diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
index 250c3f4da4..4e3acfa885 100644
--- a/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
@@ -28,8 +28,8 @@ namespace Umbraco.Core.Persistence.Repositories
where TEntity : class, IContentTypeComposition
{
- protected ContentTypeBaseRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntaxProvider)
- : base(work, cache, logger, sqlSyntaxProvider)
+ protected ContentTypeBaseRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax)
+ : base(work, cache, logger, sqlSyntax)
{
}
@@ -70,7 +70,7 @@ namespace Umbraco.Core.Persistence.Repositories
//Cannot add a duplicate content type type
var exists = Database.ExecuteScalar(@"SELECT COUNT(*) FROM cmsContentType
INNER JOIN umbracoNode ON cmsContentType.nodeId = umbracoNode.id
-WHERE cmsContentType." + SqlSyntaxProvider.GetQuotedColumnName("alias") + @"= @alias
+WHERE cmsContentType." + SqlSyntax.GetQuotedColumnName("alias") + @"= @alias
AND umbracoNode.nodeObjectType = @objectType",
new { alias = entity.Alias, objectType = NodeObjectTypeId });
if (exists > 0)
@@ -184,7 +184,7 @@ AND umbracoNode.nodeObjectType = @objectType",
//Cannot update to a duplicate alias
var exists = Database.ExecuteScalar(@"SELECT COUNT(*) FROM cmsContentType
INNER JOIN umbracoNode ON cmsContentType.nodeId = umbracoNode.id
-WHERE cmsContentType." + SqlSyntaxProvider.GetQuotedColumnName("alias") + @"= @alias
+WHERE cmsContentType." + SqlSyntax.GetQuotedColumnName("alias") + @"= @alias
AND umbracoNode.nodeObjectType = @objectType
AND umbracoNode.id <> @id",
new { id = dto.NodeId, alias = entity.Alias, objectType = NodeObjectTypeId });
diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
index 8218f67cf7..40679af854 100644
--- a/src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
@@ -32,7 +32,7 @@ namespace Umbraco.Core.Persistence.Repositories
protected override IContentType PerformGet(int id)
{
var contentTypes = ContentTypeQueryMapper.GetContentTypes(
- new[] {id}, Database, SqlSyntaxProvider, this, _templateRepository);
+ new[] {id}, Database, SqlSyntax, this, _templateRepository);
var contentType = contentTypes.SingleOrDefault();
return contentType;
@@ -42,13 +42,13 @@ namespace Umbraco.Core.Persistence.Repositories
{
if (ids.Any())
{
- return ContentTypeQueryMapper.GetContentTypes(ids, Database, SqlSyntaxProvider, this, _templateRepository);
+ return ContentTypeQueryMapper.GetContentTypes(ids, Database, SqlSyntax, this, _templateRepository);
}
else
{
var sql = new Sql().Select("id").From().Where(dto => dto.NodeObjectType == NodeObjectTypeId);
var allIds = Database.Fetch(sql).ToArray();
- return ContentTypeQueryMapper.GetContentTypes(allIds, Database, SqlSyntaxProvider, this, _templateRepository);
+ return ContentTypeQueryMapper.GetContentTypes(allIds, Database, SqlSyntax, this, _templateRepository);
}
}
diff --git a/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs b/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs
index fba2e9f459..d2f4b3bebe 100644
--- a/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs
@@ -150,7 +150,7 @@ namespace Umbraco.Core.Persistence.Repositories
//Cannot add a duplicate data type
var exists = Database.ExecuteScalar(@"SELECT COUNT(*) FROM cmsDataType
INNER JOIN umbracoNode ON cmsDataType.nodeId = umbracoNode.id
-WHERE umbracoNode." + SqlSyntaxProvider.GetQuotedColumnName("text") + "= @name", new {name = entity.Name});
+WHERE umbracoNode." + SqlSyntax.GetQuotedColumnName("text") + "= @name", new {name = entity.Name});
if (exists > 0)
{
throw new DuplicateNameException("A data type with the name " + entity.Name + " already exists");
@@ -195,7 +195,7 @@ WHERE umbracoNode." + SqlSyntaxProvider.GetQuotedColumnName("text") + "= @name",
//Cannot change to a duplicate alias
var exists = Database.ExecuteScalar(@"SELECT COUNT(*) FROM cmsDataType
INNER JOIN umbracoNode ON cmsDataType.nodeId = umbracoNode.id
-WHERE umbracoNode." + SqlSyntaxProvider.GetQuotedColumnName("text") + @"= @name
+WHERE umbracoNode." + SqlSyntax.GetQuotedColumnName("text") + @"= @name
AND umbracoNode.id <> @id",
new { id = entity.Id, name = entity.Name });
if (exists > 0)
diff --git a/src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs b/src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs
index 241deaf05a..4c70d339b6 100644
--- a/src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs
@@ -21,8 +21,8 @@ namespace Umbraco.Core.Persistence.Repositories
{
private readonly ILanguageRepository _languageRepository;
- public DictionaryRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider syntaxProvider, ILanguageRepository languageRepository)
- : base(work, cache, logger, syntaxProvider)
+ public DictionaryRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider syntax, ILanguageRepository languageRepository)
+ : base(work, cache, logger, syntax)
{
_languageRepository = languageRepository;
}
@@ -224,13 +224,13 @@ namespace Umbraco.Core.Persistence.Repositories
public IDictionaryItem Get(Guid uniqueId)
{
- var uniqueIdRepo = new DictionaryByUniqueIdRepository(this, UnitOfWork, RepositoryCache, Logger, SqlSyntaxProvider);
+ var uniqueIdRepo = new DictionaryByUniqueIdRepository(this, UnitOfWork, RepositoryCache, Logger, SqlSyntax);
return uniqueIdRepo.Get(uniqueId);
}
public IDictionaryItem Get(string key)
{
- var keyRepo = new DictionaryByKeyRepository(this, UnitOfWork, RepositoryCache, Logger, SqlSyntaxProvider);
+ var keyRepo = new DictionaryByKeyRepository(this, UnitOfWork, RepositoryCache, Logger, SqlSyntax);
return keyRepo.Get(key);
}
@@ -256,7 +256,7 @@ namespace Umbraco.Core.Persistence.Repositories
protected override string GetBaseWhereClause()
{
- return "cmsDictionary." + SqlSyntaxProvider.GetQuotedColumnName("id") + " = @Id";
+ return "cmsDictionary." + SqlSyntax.GetQuotedColumnName("id") + " = @Id";
}
protected override IDictionaryItem ConvertToEntity(DictionaryDto dto)
@@ -271,7 +271,7 @@ namespace Umbraco.Core.Persistence.Repositories
protected override string GetWhereInClauseForGetAll()
{
- return "cmsDictionary." + SqlSyntaxProvider.GetQuotedColumnName("id") + " in (@ids)";
+ return "cmsDictionary." + SqlSyntax.GetQuotedColumnName("id") + " in (@ids)";
}
}
@@ -297,7 +297,7 @@ namespace Umbraco.Core.Persistence.Repositories
protected override string GetBaseWhereClause()
{
- return "cmsDictionary." + SqlSyntaxProvider.GetQuotedColumnName("key") + " = @Id";
+ return "cmsDictionary." + SqlSyntax.GetQuotedColumnName("key") + " = @Id";
}
protected override IDictionaryItem ConvertToEntity(DictionaryDto dto)
@@ -312,7 +312,7 @@ namespace Umbraco.Core.Persistence.Repositories
protected override string GetWhereInClauseForGetAll()
{
- return "cmsDictionary." + SqlSyntaxProvider.GetQuotedColumnName("key") + " in (@ids)";
+ return "cmsDictionary." + SqlSyntax.GetQuotedColumnName("key") + " in (@ids)";
}
}
}
diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IAuditRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IAuditRepository.cs
index d4359e3709..fe571a49da 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IAuditRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IAuditRepository.cs
@@ -1,3 +1,4 @@
+using System.Collections;
using Umbraco.Core.Auditing;
using Umbraco.Core.Models;
diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/ITaskRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/ITaskRepository.cs
new file mode 100644
index 0000000000..d112cc402a
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/ITaskRepository.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using Umbraco.Core.Models;
+
+namespace Umbraco.Core.Persistence.Repositories
+{
+ public interface ITaskRepository : IRepositoryQueryable
+ {
+ IEnumerable GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
+ IEnumerable GetTasks(int? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
+
+ //IEnumerable GetTasksForItem(int id);
+ //IEnumerable GetTasksForItem(Guid uniqueId);
+ //IEnumerable GetTasksByType(int typeId);
+ //IEnumerable GetTasksByType(string typeAlias);
+
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs b/src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs
index 3b2e17e5bc..898dae9497 100644
--- a/src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs
@@ -150,13 +150,13 @@ namespace Umbraco.Core.Persistence.Repositories
public ILanguage GetByCultureName(string cultureName)
{
- var cultureNameRepo = new LanguageByCultureNameRepository(this, UnitOfWork, RepositoryCache, Logger, SqlSyntaxProvider);
+ var cultureNameRepo = new LanguageByCultureNameRepository(this, UnitOfWork, RepositoryCache, Logger, SqlSyntax);
return cultureNameRepo.Get(cultureName);
}
public ILanguage GetByIsoCode(string isoCode)
{
- var isoRepo = new LanguageByIsoCodeRepository(this, UnitOfWork, RepositoryCache, Logger, SqlSyntaxProvider);
+ var isoRepo = new LanguageByIsoCodeRepository(this, UnitOfWork, RepositoryCache, Logger, SqlSyntax);
return isoRepo.Get(isoCode);
}
diff --git a/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
index 426a2055eb..e5334bfac2 100644
--- a/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
@@ -179,7 +179,7 @@ namespace Umbraco.Core.Persistence.Repositories
.On(left => left.NodeId, right => right.NodeId)
.Where(dto => dto.NodeObjectType == mediaObjectType);
- var deleteSql = SqlSyntaxProvider.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
+ var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
Database.Execute(deleteSql);
}
else
@@ -198,7 +198,7 @@ namespace Umbraco.Core.Persistence.Repositories
.Where(dto => dto.NodeObjectType == mediaObjectType)
.Where(dto => dto.ContentTypeId == id1);
- var deleteSql = SqlSyntaxProvider.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
+ var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
Database.Execute(deleteSql);
}
}
@@ -456,7 +456,7 @@ namespace Umbraco.Core.Persistence.Repositories
Func> filterCallback = null;
if (filter.IsNullOrWhiteSpace() == false)
{
- sbWhere.Append("AND (umbracoNode." + SqlSyntaxProvider.GetQuotedColumnName("text") + " LIKE @" + args.Count + ")");
+ sbWhere.Append("AND (umbracoNode." + SqlSyntax.GetQuotedColumnName("text") + " LIKE @" + args.Count + ")");
args.Add("%" + filter + "%");
filterCallback = () => new Tuple(sbWhere.ToString().Trim(), args.ToArray());
}
diff --git a/src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
index 3b98c43079..cc51fd6e7c 100644
--- a/src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
@@ -60,13 +60,13 @@ namespace Umbraco.Core.Persistence.Repositories
{
if (ids.Any())
{
- return ContentTypeQueryMapper.GetMediaTypes(ids, Database, SqlSyntaxProvider, this);
+ return ContentTypeQueryMapper.GetMediaTypes(ids, Database, SqlSyntax, this);
}
else
{
var sql = new Sql().Select("id").From().Where(dto => dto.NodeObjectType == NodeObjectTypeId);
var allIds = Database.Fetch(sql).ToArray();
- return ContentTypeQueryMapper.GetMediaTypes(allIds, Database, SqlSyntaxProvider, this);
+ return ContentTypeQueryMapper.GetMediaTypes(allIds, Database, SqlSyntax, this);
}
}
diff --git a/src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
index 6008cc1d07..264409ddf4 100644
--- a/src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
@@ -283,7 +283,7 @@ namespace Umbraco.Core.Persistence.Repositories
.Select("*")
.From()
.Where(dto => dto.NodeObjectType == NodeObjectTypeId)
- .Where("umbracoNode." + SqlSyntaxProvider.GetQuotedColumnName("text") + " in (@names)", new { names = roleNames });
+ .Where("umbracoNode." + SqlSyntax.GetQuotedColumnName("text") + " in (@names)", new { names = roleNames });
var existingRoles = Database.Fetch(existingSql).Select(x => x.Text);
var missingRoles = roleNames.Except(existingRoles);
var missingGroups = missingRoles.Select(x => new MemberGroup {Name = x}).ToArray();
@@ -306,9 +306,9 @@ namespace Umbraco.Core.Persistence.Repositories
var assignedSql = new Sql();
assignedSql.Select(string.Format(
"{0},{1},{2}",
- SqlSyntaxProvider.GetQuotedColumnName("text"),
- SqlSyntaxProvider.GetQuotedColumnName("Member"),
- SqlSyntaxProvider.GetQuotedColumnName("MemberGroup")))
+ SqlSyntax.GetQuotedColumnName("text"),
+ SqlSyntax.GetQuotedColumnName("Member"),
+ SqlSyntax.GetQuotedColumnName("MemberGroup")))
.From()
.InnerJoin()
.On(dto => dto.NodeId, dto => dto.MemberGroup)
@@ -350,7 +350,7 @@ namespace Umbraco.Core.Persistence.Repositories
.Select("*")
.From()
.Where(dto => dto.NodeObjectType == NodeObjectTypeId)
- .Where("umbracoNode." + SqlSyntaxProvider.GetQuotedColumnName("text") + " in (@names)", new { names = roleNames });
+ .Where("umbracoNode." + SqlSyntax.GetQuotedColumnName("text") + " in (@names)", new { names = roleNames });
var existingRolesIds = Database.Fetch(existingSql).Select(x => x.NodeId).ToArray();
Database.Execute("DELETE FROM cmsMember2MemberGroup WHERE Member IN (@memberIds) AND MemberGroup IN (@memberGroups)",
diff --git a/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
index 92d1758bae..8c08bf38c2 100644
--- a/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
@@ -424,7 +424,7 @@ namespace Umbraco.Core.Persistence.Repositories
.On(left => left.NodeId, right => right.NodeId)
.Where(dto => dto.NodeObjectType == memberObjectType);
- var deleteSql = SqlSyntaxProvider.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
+ var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
Database.Execute(deleteSql);
}
else
@@ -443,7 +443,7 @@ namespace Umbraco.Core.Persistence.Repositories
.Where(dto => dto.NodeObjectType == memberObjectType)
.Where(dto => dto.ContentTypeId == id1);
- var deleteSql = SqlSyntaxProvider.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
+ var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
Database.Execute(deleteSql);
}
}
@@ -650,7 +650,7 @@ namespace Umbraco.Core.Persistence.Repositories
Func> filterCallback = null;
if (filter.IsNullOrWhiteSpace() == false)
{
- sbWhere.Append("AND ((umbracoNode. " + SqlSyntaxProvider.GetQuotedColumnName("text") + " LIKE @" + args.Count + ") " +
+ sbWhere.Append("AND ((umbracoNode. " + SqlSyntax.GetQuotedColumnName("text") + " LIKE @" + args.Count + ") " +
"OR (cmsMember.LoginName LIKE @0" + args.Count + "))");
args.Add("%" + filter + "%");
filterCallback = () => new Tuple(sbWhere.ToString().Trim(), args.ToArray());
diff --git a/src/Umbraco.Core/Persistence/Repositories/PetaPocoRepositoryBase.cs b/src/Umbraco.Core/Persistence/Repositories/PetaPocoRepositoryBase.cs
index 463630ab98..872b7f1d14 100644
--- a/src/Umbraco.Core/Persistence/Repositories/PetaPocoRepositoryBase.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/PetaPocoRepositoryBase.cs
@@ -17,13 +17,13 @@ namespace Umbraco.Core.Persistence.Repositories
internal abstract class PetaPocoRepositoryBase : RepositoryBase
where TEntity : class, IAggregateRoot
{
- public ISqlSyntaxProvider SqlSyntaxProvider { get; private set; }
+ public ISqlSyntaxProvider SqlSyntax { get; private set; }
- protected PetaPocoRepositoryBase(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntaxProvider)
+ protected PetaPocoRepositoryBase(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax)
: base(work, cache, logger)
{
- if (sqlSyntaxProvider == null) throw new ArgumentNullException("sqlSyntaxProvider");
- SqlSyntaxProvider = sqlSyntaxProvider;
+ if (sqlSyntax == null) throw new ArgumentNullException("sqlSyntax");
+ SqlSyntax = sqlSyntax;
}
///
diff --git a/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs
index 0f0ed659e4..14e32d6f9c 100644
--- a/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs
@@ -165,7 +165,7 @@ namespace Umbraco.Core.Persistence.Repositories
public IEnumerable GetTaggedEntitiesByTagGroup(TaggableObjectTypes objectType, string tagGroup)
{
var sql = new Sql()
- .Select("cmsTagRelationship.nodeId, cmsPropertyType.Alias, cmsPropertyType.id as propertyTypeId, cmsTags.tag, cmsTags.id as tagId, cmsTags." + SqlSyntaxProvider.GetQuotedColumnName("group"))
+ .Select("cmsTagRelationship.nodeId, cmsPropertyType.Alias, cmsPropertyType.id as propertyTypeId, cmsTags.tag, cmsTags.id as tagId, cmsTags." + SqlSyntax.GetQuotedColumnName("group"))
.From()
.InnerJoin()
.On(left => left.TagId, right => right.Id)
@@ -191,7 +191,7 @@ namespace Umbraco.Core.Persistence.Repositories
public IEnumerable GetTaggedEntitiesByTag(TaggableObjectTypes objectType, string tag, string tagGroup = null)
{
var sql = new Sql()
- .Select("cmsTagRelationship.nodeId, cmsPropertyType.Alias, cmsPropertyType.id as propertyTypeId, cmsTags.tag, cmsTags.id as tagId, cmsTags." + SqlSyntaxProvider.GetQuotedColumnName("group"))
+ .Select("cmsTagRelationship.nodeId, cmsPropertyType.Alias, cmsPropertyType.id as propertyTypeId, cmsTags.tag, cmsTags.id as tagId, cmsTags." + SqlSyntax.GetQuotedColumnName("group"))
.From()
.InnerJoin()
.On(left => left.TagId, right => right.Id)
@@ -298,7 +298,7 @@ namespace Umbraco.Core.Persistence.Repositories
if (withGrouping)
{
- sql = sql.Select("cmsTags.Id, cmsTags.Tag, cmsTags." + SqlSyntaxProvider.GetQuotedColumnName("Group") + @", Count(*) NodeCount");
+ sql = sql.Select("cmsTags.Id, cmsTags.Tag, cmsTags." + SqlSyntax.GetQuotedColumnName("Group") + @", Count(*) NodeCount");
}
else
{
@@ -328,7 +328,7 @@ namespace Umbraco.Core.Persistence.Repositories
private Sql ApplyGroupByToTagsQuery(Sql sql)
{
- return sql.GroupBy(new string[] { "cmsTags.Id", "cmsTags.Tag", "cmsTags." + SqlSyntaxProvider.GetQuotedColumnName("Group") + @"" });
+ return sql.GroupBy(new string[] { "cmsTags.Id", "cmsTags.Tag", "cmsTags." + SqlSyntax.GetQuotedColumnName("Group") + @"" });
}
private IEnumerable ExecuteTagsQuery(Sql sql)
@@ -385,16 +385,16 @@ namespace Umbraco.Core.Persistence.Repositories
//adds any tags found in the collection that aren't in cmsTag
var insertTagsSql = string.Concat("insert into cmsTags (Tag,",
- SqlSyntaxProvider.GetQuotedColumnName("Group"),
+ SqlSyntax.GetQuotedColumnName("Group"),
") ",
" select TagSet.Tag, TagSet.",
- SqlSyntaxProvider.GetQuotedColumnName("Group"),
+ SqlSyntax.GetQuotedColumnName("Group"),
" from ",
tagSetSql,
" left outer join cmsTags on (TagSet.Tag = cmsTags.Tag and TagSet.",
- SqlSyntaxProvider.GetQuotedColumnName("Group"),
+ SqlSyntax.GetQuotedColumnName("Group"),
" = cmsTags.",
- SqlSyntaxProvider.GetQuotedColumnName("Group"),
+ SqlSyntax.GetQuotedColumnName("Group"),
")",
" where cmsTags.Id is null ");
//insert the tags that don't exist
@@ -413,9 +413,9 @@ namespace Umbraco.Core.Persistence.Repositories
"select NewTags.Id from ",
tagSetSql,
" inner join cmsTags as NewTags on (TagSet.Tag = NewTags.Tag and TagSet.",
- SqlSyntaxProvider.GetQuotedColumnName("Group"),
+ SqlSyntax.GetQuotedColumnName("Group"),
" = TagSet.",
- SqlSyntaxProvider.GetQuotedColumnName("Group"),
+ SqlSyntax.GetQuotedColumnName("Group"),
") ",
") as NewTagsSet ",
"left outer join cmsTagRelationship ",
@@ -451,7 +451,7 @@ namespace Umbraco.Core.Persistence.Repositories
" AND tagId IN ",
"(SELECT id FROM cmsTags INNER JOIN ",
tagSetSql,
- " ON (TagSet.Tag = cmsTags.Tag and TagSet." + SqlSyntaxProvider.GetQuotedColumnName("Group") + @" = cmsTags." + SqlSyntaxProvider.GetQuotedColumnName("Group") + @"))");
+ " ON (TagSet.Tag = cmsTags.Tag and TagSet." + SqlSyntax.GetQuotedColumnName("Group") + @" = cmsTags." + SqlSyntax.GetQuotedColumnName("Group") + @"))");
Database.Execute(deleteSql);
}
@@ -503,7 +503,7 @@ namespace Umbraco.Core.Persistence.Repositories
var array = tagsToInsert
.Select(tag =>
- string.Format("select '{0}' as Tag, '{1}' as " + SqlSyntaxProvider.GetQuotedColumnName("Group") + @"",
+ string.Format("select '{0}' as Tag, '{1}' as " + SqlSyntax.GetQuotedColumnName("Group") + @"",
PetaPocoExtensions.EscapeAtSymbols(tag.Text.Replace("'", "''")), tag.Group))
.ToArray();
return "(" + string.Join(" union ", array).Replace(" ", " ") + ") as TagSet";
diff --git a/src/Umbraco.Core/Persistence/Repositories/TaskRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TaskRepository.cs
new file mode 100644
index 0000000000..6c801cc2a8
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Repositories/TaskRepository.cs
@@ -0,0 +1,184 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using AutoMapper;
+using Umbraco.Core.Logging;
+using Umbraco.Core.Models;
+using Umbraco.Core.Models.EntityBase;
+using Umbraco.Core.Models.Rdbms;
+using Umbraco.Core.Persistence.Factories;
+using Umbraco.Core.Persistence.Querying;
+using Umbraco.Core.Persistence.SqlSyntax;
+using Umbraco.Core.Persistence.UnitOfWork;
+
+namespace Umbraco.Core.Persistence.Repositories
+{
+ internal class TaskRepository : PetaPocoRepositoryBase, ITaskRepository
+ {
+ public TaskRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax)
+ : base(work, cache, logger, sqlSyntax)
+ {
+ }
+
+ protected override Task PerformGet(int id)
+ {
+ var sql = GetBaseQuery(false);
+ sql.Where(GetBaseWhereClause(), new { Id = id });
+
+ var taskDto = Database.Fetch(sql).FirstOrDefault();
+ if (taskDto == null)
+ return null;
+
+ var factory = new TaskFactory();
+ var entity = factory.BuildEntity(taskDto);
+ return entity;
+ }
+
+ protected override IEnumerable PerformGetAll(params int[] ids)
+ {
+ var sql = GetBaseQuery(false);
+
+ if (ids.Any())
+ {
+ sql.Where("cmsTask.id IN (@ids)", new {ids = ids});
+ }
+
+ var factory = new TaskFactory();
+ var dtos = Database.Fetch(sql);
+ return dtos.Select(factory.BuildEntity);
+ }
+
+ protected override IEnumerable PerformGetByQuery(IQuery query)
+ {
+ var sqlClause = GetBaseQuery(false);
+ var translator = new SqlTranslator(sqlClause, query);
+ var sql = translator.Translate();
+
+ var factory = new TaskFactory();
+ var dtos = Database.Fetch(sql);
+ return dtos.Select(factory.BuildEntity);
+ }
+
+ protected override Sql GetBaseQuery(bool isCount)
+ {
+ var sql = new Sql();
+ if (isCount)
+ {
+ sql.Select("COUNT(*)").From(SqlSyntax);
+ }
+ else
+ {
+ return GetBaseQuery();
+ }
+ return sql;
+ }
+
+ private Sql GetBaseQuery()
+ {
+ var sql = new Sql();
+ sql.Select("cmsTask.closed,cmsTask.id,cmsTask.taskTypeId,cmsTask.nodeId,cmsTask.parentUserId,cmsTask.userId,cmsTask." + SqlSyntax.GetQuotedColumnName("DateTime") + ",cmsTask.Comment,cmsTaskType.id, cmsTaskType.alias")
+ .From(SqlSyntax)
+ .InnerJoin(SqlSyntax)
+ .On(SqlSyntax, left => left.TaskTypeId, right => right.Id)
+ .InnerJoin(SqlSyntax)
+ .On(SqlSyntax, left => left.NodeId, right => right.NodeId);
+ return sql;
+ }
+
+ protected override string GetBaseWhereClause()
+ {
+ return "cmsTask.id = @Id";
+ }
+
+ protected override IEnumerable GetDeleteClauses()
+ {
+ var list = new List
+ {
+ "DELETE FROM cmsTask WHERE id = @Id"
+ };
+ return list;
+ }
+
+ protected override Guid NodeObjectTypeId
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ protected override void PersistNewItem(Task entity)
+ {
+ entity.AddingEntity();
+
+
+
+ //ensure the task type exists
+ var taskType = Database.SingleOrDefault("Where alias = @alias", new {alias = entity.TaskType.Alias});
+ if (taskType == null)
+ {
+ var taskTypeId = Convert.ToInt32(Database.Insert(new TaskTypeDto {Alias = entity.TaskType.Alias}));
+ entity.TaskType.Id = taskTypeId;
+ }
+
+ var factory = new TaskFactory();
+ var dto = factory.BuildDto(entity);
+
+ var id = Convert.ToInt32(Database.Insert(dto));
+ entity.Id = id;
+
+ entity.ResetDirtyProperties();
+ }
+
+ protected override void PersistUpdatedItem(Task entity)
+ {
+ throw new NotImplementedException();
+ }
+
+ public IEnumerable GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
+ {
+ var sql = GetGetTasksQuery(assignedUser, ownerUser, taskTypeAlias, includeClosed);
+ if (itemId.HasValue)
+ {
+ sql.Where(dto => dto.UniqueId == itemId.Value);
+ }
+
+ var dtos = Database.Fetch(sql);
+ var entities = Mapper.Map>(dtos);
+ return entities;
+ }
+
+ public IEnumerable GetTasks(int? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
+ {
+ var sql = GetGetTasksQuery(assignedUser, ownerUser, taskTypeAlias, includeClosed);
+ if (itemId.HasValue)
+ {
+ sql.Where(dto => dto.NodeId == itemId.Value);
+ }
+
+ var dtos = Database.Fetch(sql);
+ var entities = Mapper.Map>(dtos);
+ return entities;
+ }
+
+ private Sql GetGetTasksQuery(int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
+ {
+ var sql = GetBaseQuery(false);
+
+ if (includeClosed == false)
+ {
+ sql.Where(dto => dto.Closed == false);
+ }
+ if (taskTypeAlias.IsNullOrWhiteSpace() == false)
+ {
+ sql.Where("cmsTaskType.alias = @alias", new { alias = taskTypeAlias });
+ }
+ if (ownerUser.HasValue)
+ {
+ sql.Where(dto => dto.UserId == ownerUser.Value);
+ }
+ if (assignedUser.HasValue)
+ {
+ sql.Where(dto => dto.ParentUserId == assignedUser.Value);
+ }
+ return sql;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
index cafb93224a..e56771fc7d 100644
--- a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
@@ -121,7 +121,7 @@ namespace Umbraco.Core.Persistence.Repositories
"DELETE FROM umbracoUser2NodePermission WHERE userId = @Id",
"DELETE FROM umbracoUser2NodeNotify WHERE userId = @Id",
"DELETE FROM umbracoUserLogins WHERE userID = @Id",
- "DELETE FROM umbracoUser2app WHERE " + SqlSyntaxProvider.GetQuotedColumnName("user") + "=@Id",
+ "DELETE FROM umbracoUser2app WHERE " + SqlSyntax.GetQuotedColumnName("user") + "=@Id",
"DELETE FROM umbracoUser WHERE id = @Id"
};
return list;
@@ -198,7 +198,7 @@ namespace Umbraco.Core.Persistence.Repositories
foreach (var section in user.RemovedSections)
{
//we need to manually delete thsi record because it has a composite key
- Database.Delete("WHERE app=@Section AND " + SqlSyntaxProvider.GetQuotedColumnName("user") + "=@UserId",
+ Database.Delete("WHERE app=@Section AND " + SqlSyntax.GetQuotedColumnName("user") + "=@UserId",
new { Section = section, UserId = (int)user.Id });
}
@@ -215,7 +215,7 @@ namespace Umbraco.Core.Persistence.Repositories
else
{
//we need to manually update this record because it has a composite key
- Database.Update("SET app=@Section WHERE app=@Section AND " + SqlSyntaxProvider.GetQuotedColumnName("user") + "=@UserId",
+ Database.Update("SET app=@Section WHERE app=@Section AND " + SqlSyntax.GetQuotedColumnName("user") + "=@UserId",
new { Section = sectionDto.AppAlias, UserId = sectionDto.UserId });
}
}
@@ -270,7 +270,7 @@ namespace Umbraco.Core.Persistence.Repositories
var sql = GetBaseQuery(false);
var innerSql = GetBaseQuery("umbracoUser.id");
- innerSql.Where("umbracoUser2app.app = " + SqlSyntaxProvider.GetQuotedValue(sectionAlias));
+ innerSql.Where("umbracoUser2app.app = " + SqlSyntax.GetQuotedValue(sectionAlias));
sql.Where(string.Format("umbracoUser.id IN ({0})", innerSql.SQL));
return ConvertFromDtos(Database.Fetch(new UserSectionRelator().Map, sql));
@@ -344,7 +344,7 @@ namespace Umbraco.Core.Persistence.Repositories
///
public IEnumerable GetUserPermissionsForEntities(int userId, params int[] entityIds)
{
- var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntaxProvider);
+ var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntax);
return repo.GetUserPermissionsForEntities(userId, entityIds);
}
@@ -356,7 +356,7 @@ namespace Umbraco.Core.Persistence.Repositories
///
public void ReplaceUserPermissions(int userId, IEnumerable permissions, params int[] entityIds)
{
- var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntaxProvider);
+ var repo = new PermissionRepository(UnitOfWork, _cacheHelper, SqlSyntax);
repo.ReplaceUserPermissions(userId, permissions, entityIds);
}
diff --git a/src/Umbraco.Core/Persistence/RepositoryFactory.cs b/src/Umbraco.Core/Persistence/RepositoryFactory.cs
index d7b5fb2dbe..fa39f013ca 100644
--- a/src/Umbraco.Core/Persistence/RepositoryFactory.cs
+++ b/src/Umbraco.Core/Persistence/RepositoryFactory.cs
@@ -64,6 +64,11 @@ namespace Umbraco.Core.Persistence
#endregion
+ public virtual ITaskRepository CreateTaskRepository(IDatabaseUnitOfWork uow)
+ {
+ return new TaskRepository(uow, _cacheHelper, _logger, _sqlSyntax);
+ }
+
public virtual IAuditRepository CreateAuditRepository(IDatabaseUnitOfWork uow)
{
return new AuditRepository(uow, _cacheHelper, _logger, _sqlSyntax);
diff --git a/src/Umbraco.Core/Services/AuditService.cs b/src/Umbraco.Core/Services/AuditService.cs
index ee2b6e19e4..032516421c 100644
--- a/src/Umbraco.Core/Services/AuditService.cs
+++ b/src/Umbraco.Core/Services/AuditService.cs
@@ -1,27 +1,22 @@
using System;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
{
- public sealed class AuditService : IAuditService
+ public sealed class AuditService : RepositoryService, IAuditService
{
- private readonly RepositoryFactory _repositoryFactory;
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
-
- public AuditService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
+ public AuditService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger)
+ : base(provider, repositoryFactory, logger)
{
- if (provider == null) throw new ArgumentNullException("provider");
- if (repositoryFactory == null) throw new ArgumentNullException("repositoryFactory");
- _uowProvider = provider;
- _repositoryFactory = repositoryFactory;
}
public void Add(AuditType type, string comment, int userId, int objectId)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repo = _repositoryFactory.CreateAuditRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repo = RepositoryFactory.CreateAuditRepository(uow))
{
repo.AddOrUpdate(new AuditItem(objectId, comment, type, userId));
uow.Commit();
diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs
index 43199dbf86..e5a99cf038 100644
--- a/src/Umbraco.Core/Services/ContentService.cs
+++ b/src/Umbraco.Core/Services/ContentService.cs
@@ -25,12 +25,10 @@ namespace Umbraco.Core.Services
///
/// Represents the Content Service, which is an easy access to operations involving
///
- public class ContentService : IContentService
+ public class ContentService : RepositoryService, IContentService
{
- private readonly ILogger _logger;
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
+
private readonly IPublishingStrategy _publishingStrategy;
- private readonly RepositoryFactory _repositoryFactory;
private readonly EntityXmlSerializer _entitySerializer = new EntityXmlSerializer();
private readonly IDataTypeService _dataTypeService;
private readonly IUserService _userService;
@@ -41,57 +39,48 @@ namespace Umbraco.Core.Services
[Obsolete("Use the constructors that specify all dependencies instead")]
public ContentService()
- : this(LoggerResolver.Current.Logger, new RepositoryFactory(ApplicationContext.Current.ApplicationCache, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()))
+ : this(new RepositoryFactory(ApplicationContext.Current.ApplicationCache, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()))
{ }
[Obsolete("Use the constructors that specify all dependencies instead")]
- public ContentService(ILogger logger, RepositoryFactory repositoryFactory)
- : this(logger, new PetaPocoUnitOfWorkProvider(LoggerResolver.Current.Logger), repositoryFactory, new PublishingStrategy())
+ public ContentService(RepositoryFactory repositoryFactory)
+ : this(new PetaPocoUnitOfWorkProvider(LoggerResolver.Current.Logger), repositoryFactory, new PublishingStrategy())
{ }
[Obsolete("Use the constructors that specify all dependencies instead")]
- public ContentService(ILogger logger, IDatabaseUnitOfWorkProvider provider)
- : this(logger, provider, new RepositoryFactory(ApplicationContext.Current.ApplicationCache, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()), new PublishingStrategy())
+ public ContentService(IDatabaseUnitOfWorkProvider provider)
+ : this(provider, new RepositoryFactory(ApplicationContext.Current.ApplicationCache, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()), new PublishingStrategy())
{ }
[Obsolete("Use the constructors that specify all dependencies instead")]
- public ContentService(ILogger logger, IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
- : this(logger, provider, repositoryFactory, new PublishingStrategy())
+ public ContentService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
+ : this(provider, repositoryFactory, new PublishingStrategy())
{ }
[Obsolete("Use the constructors that specify all dependencies instead")]
- public ContentService(ILogger logger, IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, IPublishingStrategy publishingStrategy)
+ public ContentService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, IPublishingStrategy publishingStrategy)
+ : base(provider, repositoryFactory, LoggerResolver.Current.Logger)
{
- if (logger == null) throw new ArgumentNullException("logger");
- if (provider == null) throw new ArgumentNullException("provider");
- if (repositoryFactory == null) throw new ArgumentNullException("repositoryFactory");
if (publishingStrategy == null) throw new ArgumentNullException("publishingStrategy");
- _logger = logger;
- _uowProvider = provider;
- _publishingStrategy = publishingStrategy;
- _repositoryFactory = repositoryFactory;
- _dataTypeService = new DataTypeService(provider, repositoryFactory);
- _userService = new UserService(provider, repositoryFactory);
+ _dataTypeService = new DataTypeService(UowProvider, RepositoryFactory);
+ _userService = new UserService(UowProvider, RepositoryFactory);
}
- public ContentService(ILogger logger, IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, IPublishingStrategy publishingStrategy, IDataTypeService dataTypeService, IUserService userService)
+ public ContentService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IPublishingStrategy publishingStrategy, IDataTypeService dataTypeService, IUserService userService)
+ : base(provider, repositoryFactory, logger)
{
- if (logger == null) throw new ArgumentNullException("logger");
- if (provider == null) throw new ArgumentNullException("provider");
- if (repositoryFactory == null) throw new ArgumentNullException("repositoryFactory");
if (publishingStrategy == null) throw new ArgumentNullException("publishingStrategy");
- _logger = logger;
- _uowProvider = provider;
+ if (dataTypeService == null) throw new ArgumentNullException("dataTypeService");
+ if (userService == null) throw new ArgumentNullException("userService");
_publishingStrategy = publishingStrategy;
- _repositoryFactory = repositoryFactory;
_dataTypeService = dataTypeService;
_userService = userService;
}
public int CountPublished(string contentTypeAlias = null)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
return repository.CountPublished();
}
@@ -99,8 +88,8 @@ namespace Umbraco.Core.Services
public int Count(string contentTypeAlias = null)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
return repository.Count(contentTypeAlias);
}
@@ -108,8 +97,8 @@ namespace Umbraco.Core.Services
public int CountChildren(int parentId, string contentTypeAlias = null)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
return repository.CountChildren(parentId, contentTypeAlias);
}
@@ -117,8 +106,8 @@ namespace Umbraco.Core.Services
public int CountDescendants(int parentId, string contentTypeAlias = null)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
return repository.CountDescendants(parentId, contentTypeAlias);
}
@@ -131,8 +120,8 @@ namespace Umbraco.Core.Services
///
public void ReplaceContentPermissions(EntityPermissionSet permissionSet)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
repository.ReplaceContentPermissions(permissionSet);
}
@@ -146,8 +135,8 @@ namespace Umbraco.Core.Services
///
public void AssignContentPermission(IContent entity, char permission, IEnumerable userIds)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
repository.AssignEntityPermission(entity, permission, userIds);
}
@@ -160,8 +149,8 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetPermissionsForEntity(IContent content)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
return repository.GetPermissionsForEntity(content.Id);
}
@@ -197,8 +186,8 @@ namespace Umbraco.Core.Services
Created.RaiseEvent(new NewEventArgs(content, false, contentTypeAlias, parentId), this);
- var uow = _uowProvider.GetUnitOfWork();
- using (var auditRepo = _repositoryFactory.CreateAuditRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var auditRepo = RepositoryFactory.CreateAuditRepository(uow))
{
auditRepo.AddOrUpdate(new AuditItem(content.Id, string.Format("Content '{0}' was created", name), AuditType.New, content.CreatorId));
uow.Commit();
@@ -274,8 +263,8 @@ namespace Umbraco.Core.Services
return content;
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
content.CreatorId = userId;
content.WriterId = userId;
@@ -326,8 +315,8 @@ namespace Umbraco.Core.Services
return content;
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
content.CreatorId = userId;
content.WriterId = userId;
@@ -353,7 +342,7 @@ namespace Umbraco.Core.Services
///
public IContent GetById(int id)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -366,7 +355,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetByIds(IEnumerable ids)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids.ToArray());
}
@@ -379,7 +368,7 @@ namespace Umbraco.Core.Services
///
public IContent GetById(Guid key)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Key == key);
var contents = repository.GetByQuery(query);
@@ -394,7 +383,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetContentOfContentType(int id)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ContentTypeId == id);
var contents = repository.GetByQuery(query);
@@ -405,7 +394,7 @@ namespace Umbraco.Core.Services
internal IEnumerable GetPublishedContentOfContentType(int id)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ContentTypeId == id);
var contents = repository.GetByPublishedVersion(query);
@@ -421,7 +410,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetByLevel(int level)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Level == level && !x.Path.StartsWith(Constants.System.RecycleBinContent.ToInvariantString()));
var contents = repository.GetByQuery(query);
@@ -437,7 +426,7 @@ namespace Umbraco.Core.Services
/// An item
public IContent GetByVersion(Guid versionId)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetByVersion(versionId);
}
@@ -451,7 +440,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetVersions(int id)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var versions = repository.GetAllVersions(id);
return versions;
@@ -480,7 +469,7 @@ namespace Umbraco.Core.Services
if (ids.Any() == false)
return new List();
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -493,7 +482,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetChildren(int id)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == id);
var contents = repository.GetByQuery(query).OrderBy(x => x.SortOrder);
@@ -518,7 +507,7 @@ namespace Umbraco.Core.Services
{
Mandate.ParameterCondition(pageIndex >= 0, "pageSize");
Mandate.ParameterCondition(pageSize > 0, "pageSize");
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder;
@@ -548,7 +537,7 @@ namespace Umbraco.Core.Services
{
Mandate.ParameterCondition(pageIndex >= 0, "pageSize");
Mandate.ParameterCondition(pageSize > 0, "pageSize");
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder;
@@ -571,7 +560,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetChildrenByName(int parentId, string name)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == parentId && x.Name.Contains(name));
var contents = repository.GetByQuery(query);
@@ -602,7 +591,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetDescendants(IContent content)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var pathMatch = content.Path + ",";
var query = Query.Builder.Where(x => x.Path.StartsWith(pathMatch) && x.Id != content.Id);
@@ -653,7 +642,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetRootContent()
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == Constants.System.Root);
var contents = repository.GetByQuery(query);
@@ -668,7 +657,7 @@ namespace Umbraco.Core.Services
///
internal IEnumerable GetAllPublished()
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Trashed == false);
return repository.GetByPublishedVersion(query);
@@ -681,7 +670,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetContentForExpiration()
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Published == true && x.ExpireDate <= DateTime.Now);
var contents = repository.GetByQuery(query);
@@ -696,7 +685,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetContentForRelease()
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Published == false && x.ReleaseDate <= DateTime.Now);
var contents = repository.GetByQuery(query);
@@ -711,7 +700,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetContentInRecycleBin()
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Path.Contains(Constants.System.RecycleBinContent.ToInvariantString()));
var contents = repository.GetByQuery(query);
@@ -732,7 +721,7 @@ namespace Umbraco.Core.Services
internal int CountChildren(int id)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == id);
var count = repository.Count(query);
@@ -747,7 +736,7 @@ namespace Umbraco.Core.Services
/// True if the content has any published version otherwise False
public bool HasPublishedVersion(int id)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Published == true && x.Id == id && x.Trashed == false);
int count = repository.Count(query);
@@ -791,7 +780,7 @@ namespace Umbraco.Core.Services
}
catch (Exception ex)
{
- _logger.Error("An error occurred executing RePublishAll", ex);
+ Logger.Error("An error occurred executing RePublishAll", ex);
return false;
}
}
@@ -811,7 +800,7 @@ namespace Umbraco.Core.Services
}
catch (Exception ex)
{
- _logger.Error("An error occurred executing RePublishAll", ex);
+ Logger.Error("An error occurred executing RePublishAll", ex);
}
}
@@ -824,7 +813,7 @@ namespace Umbraco.Core.Services
public bool Publish(IContent content, int userId = 0)
{
var result = SaveAndPublishDo(content, userId);
- _logger.Info("Call was made to ContentService.Publish, use PublishWithStatus instead since that method will provide more detailed information on the outcome");
+ Logger.Info("Call was made to ContentService.Publish, use PublishWithStatus instead since that method will provide more detailed information on the outcome");
return result.Success;
}
@@ -941,8 +930,8 @@ namespace Umbraco.Core.Services
{
var containsNew = asArray.Any(x => x.HasIdentity == false);
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
if (containsNew)
{
@@ -990,9 +979,9 @@ namespace Umbraco.Core.Services
{
using (new WriteLock(Locker))
{
- using (var uow = _uowProvider.GetUnitOfWork())
+ using (var uow = UowProvider.GetUnitOfWork())
{
- var repository = _repositoryFactory.CreateContentRepository(uow);
+ var repository = RepositoryFactory.CreateContentRepository(uow);
//NOTE What about content that has the contenttype as part of its composition?
var query = Query.Builder.Where(x => x.ContentTypeId == contentTypeId);
var contents = repository.GetByQuery(query).ToArray();
@@ -1053,8 +1042,8 @@ namespace Umbraco.Core.Services
Delete(child, userId);
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
repository.Delete(content);
uow.Commit();
@@ -1082,8 +1071,8 @@ namespace Umbraco.Core.Services
if (DeletingVersions.IsRaisedEventCancelled(new DeleteRevisionsEventArgs(id, dateToRetain: versionDate), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
repository.DeleteVersions(id, versionDate);
uow.Commit();
@@ -1115,8 +1104,8 @@ namespace Umbraco.Core.Services
DeleteVersions(id, content.UpdateDate, userId);
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
repository.DeleteVersion(versionId);
uow.Commit();
@@ -1165,8 +1154,8 @@ namespace Umbraco.Core.Services
UnPublish(descendant, userId);
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
content.WriterId = userId;
content.ChangeTrashedState(true);
@@ -1244,7 +1233,7 @@ namespace Umbraco.Core.Services
bool success;
var nodeObjectType = new Guid(Constants.ObjectTypes.Document);
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
//Create a dictionary of ids -> dictionary of property aliases + values
entities = repository.GetEntitiesInRecycleBin()
@@ -1295,8 +1284,8 @@ namespace Umbraco.Core.Services
if (Copying.IsRaisedEventCancelled(new CopyEventArgs(content, copy, parentId), this))
return null;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
// Update the create author and last edit author
copy.CreatorId = userId;
@@ -1381,8 +1370,8 @@ namespace Umbraco.Core.Services
if (RollingBack.IsRaisedEventCancelled(new RollbackEventArgs(content), this))
return content;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
content.WriterId = userId;
content.CreatorId = userId;
@@ -1427,8 +1416,8 @@ namespace Umbraco.Core.Services
var asArray = items.ToArray();
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
int i = 0;
foreach (var content in asArray)
@@ -1489,13 +1478,13 @@ namespace Umbraco.Core.Services
///
public void RebuildXmlStructures(params int[] contentTypeIds)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
repository.RebuildXmlStructures(
content => _entitySerializer.Serialize(this, _dataTypeService, _userService, content),
contentTypeIds: contentTypeIds.Length == 0 ? null : contentTypeIds);
-
+
uow.Commit();
}
@@ -1512,7 +1501,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
internal IEnumerable GetPublishedDescendants(IContent content)
{
- using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Id != content.Id && x.Path.StartsWith(content.Path) && x.Trashed == false);
var contents = repository.GetByPublishedVersion(query);
@@ -1527,8 +1516,8 @@ namespace Umbraco.Core.Services
private void Audit(AuditType type, string message, int userId, int objectId)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var auditRepo = _repositoryFactory.CreateAuditRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var auditRepo = RepositoryFactory.CreateAuditRepository(uow))
{
auditRepo.AddOrUpdate(new AuditItem(objectId, message, type, userId));
uow.Commit();
@@ -1580,7 +1569,7 @@ namespace Umbraco.Core.Services
//TODO: This shouldn't be here! This needs to be part of the repository logic but in order to fix this we need to
// change how this method calls "Save" as it needs to save using an internal method
- using (var uow = _uowProvider.GetUnitOfWork())
+ using (var uow = UowProvider.GetUnitOfWork())
{
var xml = _entitySerializer.Serialize(this, _dataTypeService, _userService, content);
@@ -1634,7 +1623,7 @@ namespace Umbraco.Core.Services
//Check if parent is published (although not if its a root node) - if parent isn't published this Content cannot be published
if (content.ParentId != Constants.System.Root && content.ParentId != Constants.System.RecycleBinContent && IsPublishable(content) == false)
{
- _logger.Info(
+ Logger.Info(
string.Format(
"Content '{0}' with Id '{1}' could not be published because its parent or one of its ancestors is not published.",
content.Name, content.Id));
@@ -1645,7 +1634,7 @@ namespace Umbraco.Core.Services
//Content contains invalid property values and can therefore not be published - fire event?
if (!content.IsValid())
{
- _logger.Info(
+ Logger.Info(
string.Format("Content '{0}' with Id '{1}' could not be published because of invalid properties.",
content.Name, content.Id));
result.Add(
@@ -1670,8 +1659,8 @@ namespace Umbraco.Core.Services
//Publish and then update the database with new status
var publishedOutcome = internalStrategy.PublishWithChildrenInternal(list, userId, includeUnpublished).ToArray();
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
//NOTE The Publish with subpages-dialog was used more as a republish-type-thing, so we'll have to include PublishStatusType.SuccessAlreadyPublished
//in the updated-list, so the Published event is triggered with the expected set of pages and the xml is updated.
@@ -1712,8 +1701,8 @@ namespace Umbraco.Core.Services
var unpublished = _publishingStrategy.UnPublish(content, userId);
if (unpublished)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
content.WriterId = userId;
repository.AddOrUpdate(content);
@@ -1777,8 +1766,8 @@ namespace Umbraco.Core.Services
//we are successfully published if our publishStatus is still Successful
bool published = publishStatus.StatusType == PublishStatusType.Success;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
//Since this is the Save and Publish method, the content should be saved even though the publish fails or isn't allowed
if (content.HasIdentity == false)
@@ -1841,8 +1830,8 @@ namespace Umbraco.Core.Services
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentRepository(uow))
{
if (content.HasIdentity == false)
{
@@ -1908,7 +1897,7 @@ namespace Umbraco.Core.Services
//Check if parent is published (although not if its a root node) - if parent isn't published this Content cannot be published
if (content.ParentId != Constants.System.Root && content.ParentId != Constants.System.RecycleBinContent && IsPublishable(content) == false)
{
- _logger.Info(
+ Logger.Info(
string.Format(
"Content '{0}' with Id '{1}' could not be published because its parent is not published.",
content.Name, content.Id));
@@ -1923,7 +1912,7 @@ namespace Umbraco.Core.Services
//Content contains invalid property values and can therefore not be published - fire event?
if (content.IsValid() == false)
{
- _logger.Info(
+ Logger.Info(
string.Format(
"Content '{0}' with Id '{1}' could not be published because of invalid properties.",
content.Name, content.Id));
@@ -1935,7 +1924,7 @@ namespace Umbraco.Core.Services
private IContentType FindContentTypeByAlias(string contentTypeAlias)
{
- using (var repository = _repositoryFactory.CreateContentTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Alias == contentTypeAlias);
var types = repository.GetByQuery(query);
diff --git a/src/Umbraco.Core/Services/ContentTypeService.cs b/src/Umbraco.Core/Services/ContentTypeService.cs
index 539eab8987..9bff23a99b 100644
--- a/src/Umbraco.Core/Services/ContentTypeService.cs
+++ b/src/Umbraco.Core/Services/ContentTypeService.cs
@@ -25,46 +25,49 @@ namespace Umbraco.Core.Services
///
public class ContentTypeService : ContentTypeServiceBase, IContentTypeService
{
- private readonly RepositoryFactory _repositoryFactory;
private readonly IContentService _contentService;
private readonly IMediaService _mediaService;
- private readonly ILogger _logger;
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
+
//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.
private static readonly ReaderWriterLockSlim Locker = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
[Obsolete("Use the constructors that specify all dependencies instead")]
- public ContentTypeService(ILogger logger, IContentService contentService, IMediaService mediaService)
- : this(logger, new PetaPocoUnitOfWorkProvider(logger), new RepositoryFactory(), contentService, mediaService)
+ public ContentTypeService(IContentService contentService, IMediaService mediaService)
+ : this(new PetaPocoUnitOfWorkProvider(LoggerResolver.Current.Logger), new RepositoryFactory(), contentService, mediaService)
{}
[Obsolete("Use the constructors that specify all dependencies instead")]
- public ContentTypeService(ILogger logger, RepositoryFactory repositoryFactory, IContentService contentService, IMediaService mediaService)
- : this(logger, new PetaPocoUnitOfWorkProvider(), repositoryFactory, contentService, mediaService)
+ public ContentTypeService( RepositoryFactory repositoryFactory, IContentService contentService, IMediaService mediaService)
+ : this(new PetaPocoUnitOfWorkProvider(), repositoryFactory, contentService, mediaService)
{ }
- public ContentTypeService(ILogger logger, IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, IContentService contentService, IMediaService mediaService)
+ [Obsolete("Use the constructors that specify all dependencies instead")]
+ public ContentTypeService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, IContentService contentService, IMediaService mediaService)
+ : base(provider, repositoryFactory, LoggerResolver.Current.Logger)
{
- if (logger == null) throw new ArgumentNullException("logger");
- if (provider == null) throw new ArgumentNullException("provider");
- if (repositoryFactory == null) throw new ArgumentNullException("repositoryFactory");
if (contentService == null) throw new ArgumentNullException("contentService");
if (mediaService == null) throw new ArgumentNullException("mediaService");
- _logger = logger;
- _uowProvider = provider;
- _repositoryFactory = repositoryFactory;
_contentService = contentService;
_mediaService = mediaService;
}
+ public ContentTypeService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IContentService contentService, IMediaService mediaService)
+ : base(provider, repositoryFactory, logger)
+ {
+ if (contentService == null) throw new ArgumentNullException("contentService");
+ if (mediaService == null) throw new ArgumentNullException("mediaService");
+ _contentService = contentService;
+ _mediaService = mediaService;
+ }
+
///
/// Gets all property type aliases.
///
///
public IEnumerable GetAllPropertyTypeAliases()
{
- using (var repository = _repositoryFactory.CreateContentTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAllPropertyTypeAliases();
}
@@ -160,7 +163,7 @@ namespace Umbraco.Core.Services
///
public IContentType GetContentType(int id)
{
- using (var repository = _repositoryFactory.CreateContentTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -173,7 +176,7 @@ namespace Umbraco.Core.Services
///
public IContentType GetContentType(string alias)
{
- using (var repository = _repositoryFactory.CreateContentTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Alias == alias);
var contentTypes = repository.GetByQuery(query);
@@ -189,7 +192,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetAllContentTypes(params int[] ids)
{
- using (var repository = _repositoryFactory.CreateContentTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -202,7 +205,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetContentTypeChildren(int id)
{
- using (var repository = _repositoryFactory.CreateContentTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == id);
var contentTypes = repository.GetByQuery(query);
@@ -217,7 +220,7 @@ namespace Umbraco.Core.Services
/////
//internal IEnumerable GetDescendantContentTypeIds(int contentTypeId)
//{
- // using (var uow = _uowProvider.GetUnitOfWork())
+ // using (var uow = UowProvider.GetUnitOfWork())
// {
// //method to return the child content type ids for the id specified
// Func getChildIds =
@@ -237,7 +240,7 @@ namespace Umbraco.Core.Services
/// True if the content type has any children otherwise False
public bool HasChildren(int id)
{
- using (var repository = _repositoryFactory.CreateContentTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == id);
int count = repository.Count(query);
@@ -365,8 +368,8 @@ namespace Umbraco.Core.Services
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(uow))
{
ValidateLocked(contentType); // throws if invalid
contentType.CreatorId = userId;
@@ -395,8 +398,8 @@ namespace Umbraco.Core.Services
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(uow))
{
// all-or-nothing, validate them all first
foreach (var contentType in asArray)
@@ -434,8 +437,8 @@ namespace Umbraco.Core.Services
{
_contentService.DeleteContentOfType(contentType.Id);
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(uow))
{
repository.Delete(contentType);
uow.Commit();
@@ -469,8 +472,8 @@ namespace Umbraco.Core.Services
_contentService.DeleteContentOfType(contentType.Id);
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateContentTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateContentTypeRepository(uow))
{
foreach (var contentType in asArray)
{
@@ -493,7 +496,7 @@ namespace Umbraco.Core.Services
///
public IMediaType GetMediaType(int id)
{
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -506,7 +509,7 @@ namespace Umbraco.Core.Services
///
public IMediaType GetMediaType(string alias)
{
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Alias == alias);
var contentTypes = repository.GetByQuery(query);
@@ -522,7 +525,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetAllMediaTypes(params int[] ids)
{
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -535,7 +538,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetMediaTypeChildren(int id)
{
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == id);
var contentTypes = repository.GetByQuery(query);
@@ -550,7 +553,7 @@ namespace Umbraco.Core.Services
/// True if the media type has any children otherwise False
public bool MediaTypeHasChildren(int id)
{
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == id);
int count = repository.Count(query);
@@ -570,8 +573,8 @@ namespace Umbraco.Core.Services
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(uow))
{
ValidateLocked(mediaType); // throws if invalid
mediaType.CreatorId = userId;
@@ -601,8 +604,8 @@ namespace Umbraco.Core.Services
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(uow))
{
// all-or-nothing, validate them all first
foreach (var mediaType in asArray)
@@ -640,8 +643,8 @@ namespace Umbraco.Core.Services
{
_mediaService.DeleteMediaOfType(mediaType.Id, userId);
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(uow))
{
repository.Delete(mediaType);
@@ -673,8 +676,8 @@ namespace Umbraco.Core.Services
_mediaService.DeleteMediaOfType(mediaType.Id);
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(uow))
{
foreach (var mediaType in asArray)
{
@@ -746,8 +749,8 @@ namespace Umbraco.Core.Services
private void Audit(AuditType type, string message, int userId, int objectId)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var auditRepo = _repositoryFactory.CreateAuditRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var auditRepo = RepositoryFactory.CreateAuditRepository(uow))
{
auditRepo.AddOrUpdate(new AuditItem(objectId, message, type, userId));
uow.Commit();
diff --git a/src/Umbraco.Core/Services/ContentTypeServiceBase.cs b/src/Umbraco.Core/Services/ContentTypeServiceBase.cs
index b5115d61c2..d5ebaabdb6 100644
--- a/src/Umbraco.Core/Services/ContentTypeServiceBase.cs
+++ b/src/Umbraco.Core/Services/ContentTypeServiceBase.cs
@@ -1,12 +1,20 @@
using System.Collections.Generic;
using System.Linq;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.EntityBase;
+using Umbraco.Core.Persistence;
+using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
{
- public class ContentTypeServiceBase
+ public class ContentTypeServiceBase : RepositoryService
{
+ public ContentTypeServiceBase(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger)
+ : base(provider, repositoryFactory, logger)
+ {
+ }
+
///
/// This is called after an content type is saved and is used to update the content xml structures in the database
/// if they are required to be updated.
diff --git a/src/Umbraco.Core/Services/DataTypeService.cs b/src/Umbraco.Core/Services/DataTypeService.cs
index e6f5005197..a30945e5c2 100644
--- a/src/Umbraco.Core/Services/DataTypeService.cs
+++ b/src/Umbraco.Core/Services/DataTypeService.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Threading;
using Umbraco.Core.Auditing;
using Umbraco.Core.Events;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence;
@@ -17,10 +18,8 @@ namespace Umbraco.Core.Services
///
/// Represents the DataType Service, which is an easy access to operations involving
///
- public class DataTypeService : IDataTypeService
+ public class DataTypeService : RepositoryService, IDataTypeService
{
- private readonly RepositoryFactory _repositoryFactory;
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
[Obsolete("Use the constructors that specify all dependencies instead")]
public DataTypeService()
@@ -39,10 +38,15 @@ namespace Umbraco.Core.Services
{
}
+ [Obsolete("Use the constructors that specify all dependencies instead")]
public DataTypeService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
+ : this(provider, repositoryFactory, LoggerResolver.Current.Logger)
+ {
+ }
+
+ public DataTypeService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger)
+ : base(provider, repositoryFactory, logger)
{
- _repositoryFactory = repositoryFactory;
- _uowProvider = provider;
}
///
@@ -52,7 +56,7 @@ namespace Umbraco.Core.Services
///
public IDataTypeDefinition GetDataTypeDefinitionByName(string name)
{
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetByQuery(new Query().Where(x => x.Name == name)).FirstOrDefault();
}
@@ -65,7 +69,7 @@ namespace Umbraco.Core.Services
///
public IDataTypeDefinition GetDataTypeDefinitionById(int id)
{
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -78,7 +82,7 @@ namespace Umbraco.Core.Services
///
public IDataTypeDefinition GetDataTypeDefinitionById(Guid id)
{
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Key == id);
var definitions = repository.GetByQuery(query);
@@ -106,7 +110,7 @@ namespace Umbraco.Core.Services
/// Collection of objects with a matching contorl id
public IEnumerable GetDataTypeDefinitionByPropertyEditorAlias(string propertyEditorAlias)
{
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.PropertyEditorAlias == propertyEditorAlias);
var definitions = repository.GetByQuery(query);
@@ -122,7 +126,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetAllDataTypeDefinitions(params int[] ids)
{
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -135,7 +139,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of string values
public IEnumerable GetPreValuesByDataTypeId(int id)
{
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
{
var collection = repository.GetPreValuesCollectionByDataTypeId(id);
//now convert the collection to a string list
@@ -153,7 +157,7 @@ namespace Umbraco.Core.Services
///
public PreValueCollection GetPreValuesCollectionByDataTypeId(int id)
{
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetPreValuesCollectionByDataTypeId(id);
}
@@ -166,7 +170,7 @@ namespace Umbraco.Core.Services
/// PreValue as a string
public string GetPreValueAsString(int id)
{
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetPreValueAsString(id);
}
@@ -182,8 +186,8 @@ namespace Umbraco.Core.Services
if (Saving.IsRaisedEventCancelled(new SaveEventArgs(dataTypeDefinition), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(uow))
{
dataTypeDefinition.CreatorId = userId;
repository.AddOrUpdate(dataTypeDefinition);
@@ -219,8 +223,8 @@ namespace Umbraco.Core.Services
return;
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(uow))
{
foreach (var dataTypeDefinition in dataTypeDefinitions)
{
@@ -246,7 +250,7 @@ namespace Umbraco.Core.Services
{
//TODO: Should we raise an event here since we are really saving values for the data type?
- using (var uow = _uowProvider.GetUnitOfWork())
+ using (var uow = UowProvider.GetUnitOfWork())
{
using (var transaction = uow.Database.GetTransaction())
{
@@ -303,8 +307,8 @@ namespace Umbraco.Core.Services
{
//TODO: Should we raise an event here since we are really saving values for the data type?
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(uow))
{
repository.AddOrUpdatePreValues(dataTypeDefinition, values);
uow.Commit();
@@ -322,8 +326,8 @@ namespace Umbraco.Core.Services
if (Saving.IsRaisedEventCancelled(new SaveEventArgs(dataTypeDefinition), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(uow))
{
dataTypeDefinition.CreatorId = userId;
@@ -356,8 +360,8 @@ namespace Umbraco.Core.Services
if (Deleting.IsRaisedEventCancelled(new DeleteEventArgs(dataTypeDefinition), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateDataTypeDefinitionRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(uow))
{
repository.Delete(dataTypeDefinition);
@@ -392,8 +396,8 @@ namespace Umbraco.Core.Services
private void Audit(AuditType type, string message, int userId, int objectId)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var auditRepo = _repositoryFactory.CreateAuditRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var auditRepo = RepositoryFactory.CreateAuditRepository(uow))
{
auditRepo.AddOrUpdate(new AuditItem(objectId, message, type, userId));
uow.Commit();
diff --git a/src/Umbraco.Core/Services/EntityService.cs b/src/Umbraco.Core/Services/EntityService.cs
index 0b3e4a924f..2bdd73288e 100644
--- a/src/Umbraco.Core/Services/EntityService.cs
+++ b/src/Umbraco.Core/Services/EntityService.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using Umbraco.Core.CodeAnnotations;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Models.Rdbms;
@@ -10,40 +11,36 @@ using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
{
- public class EntityService : IService, IEntityService
+ public class EntityService : RepositoryService, IEntityService
{
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
- private readonly RepositoryFactory _repositoryFactory;
- private readonly IContentService _contentService;
- private readonly IContentTypeService _contentTypeService;
- private readonly IMediaService _mediaService;
- private readonly IMemberService _memberService;
- private readonly IMemberTypeService _memberTypeService;
- private readonly IDataTypeService _dataTypeService;
private readonly Dictionary>> _supportedObjectTypes;
+ [Obsolete("Use the constructors that specify all dependencies instead")]
public EntityService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory,
IContentService contentService, IContentTypeService contentTypeService, IMediaService mediaService, IDataTypeService dataTypeService,
IMemberService memberService, IMemberTypeService memberTypeService)
+ : this(provider, repositoryFactory, LoggerResolver.Current.Logger, contentService, contentTypeService, mediaService,
+ dataTypeService, memberService, memberTypeService)
{
- _uowProvider = provider;
- _repositoryFactory = repositoryFactory;
- _contentService = contentService;
- _contentTypeService = contentTypeService;
- _mediaService = mediaService;
- _dataTypeService = dataTypeService;
- _memberService = memberService;
- _memberTypeService = memberTypeService;
+
+ }
+
+ public EntityService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger,
+ IContentService contentService, IContentTypeService contentTypeService, IMediaService mediaService, IDataTypeService dataTypeService,
+ IMemberService memberService, IMemberTypeService memberTypeService)
+ : base(provider, repositoryFactory, logger)
+ {
+ IContentTypeService contentTypeService1 = contentTypeService;
_supportedObjectTypes = new Dictionary>>
{
- {typeof (IDataTypeDefinition).FullName, new Tuple>(UmbracoObjectTypes.DataType, _dataTypeService.GetDataTypeDefinitionById)},
- {typeof (IContent).FullName, new Tuple>(UmbracoObjectTypes.Document, _contentService.GetById)},
- {typeof (IContentType).FullName, new Tuple>(UmbracoObjectTypes.DocumentType, _contentTypeService.GetContentType)},
- {typeof (IMedia).FullName, new Tuple>(UmbracoObjectTypes.Media, _mediaService.GetById)},
- {typeof (IMediaType).FullName, new Tuple>(UmbracoObjectTypes.MediaType, _contentTypeService.GetMediaType)},
- {typeof (IMember).FullName, new Tuple>(UmbracoObjectTypes.Member, _memberService.GetById)},
- {typeof (IMemberType).FullName, new Tuple>(UmbracoObjectTypes.MemberType, _memberTypeService.Get)}
+ {typeof (IDataTypeDefinition).FullName, new Tuple>(UmbracoObjectTypes.DataType, dataTypeService.GetDataTypeDefinitionById)},
+ {typeof (IContent).FullName, new Tuple>(UmbracoObjectTypes.Document, contentService.GetById)},
+ {typeof (IContentType).FullName, new Tuple>(UmbracoObjectTypes.DocumentType, contentTypeService1.GetContentType)},
+ {typeof (IMedia).FullName, new Tuple>(UmbracoObjectTypes.Media, mediaService.GetById)},
+ {typeof (IMediaType).FullName, new Tuple>(UmbracoObjectTypes.MediaType, contentTypeService1.GetMediaType)},
+ {typeof (IMember).FullName, new Tuple>(UmbracoObjectTypes.Member, memberService.GetById)},
+ {typeof (IMemberType).FullName, new Tuple>(UmbracoObjectTypes.MemberType, memberTypeService.Get)}
};
}
@@ -51,7 +48,7 @@ namespace Umbraco.Core.Services
{
if (loadBaseType)
{
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetByKey(key);
}
@@ -81,7 +78,7 @@ namespace Umbraco.Core.Services
{
if (loadBaseType)
{
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -100,7 +97,7 @@ namespace Umbraco.Core.Services
if (loadBaseType)
{
var objectTypeId = umbracoObjectType.GetGuid();
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetByKey(key, objectTypeId);
}
@@ -131,7 +128,7 @@ namespace Umbraco.Core.Services
if (loadBaseType)
{
var objectTypeId = umbracoObjectType.GetGuid();
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id, objectTypeId);
}
@@ -163,7 +160,7 @@ namespace Umbraco.Core.Services
{
if (loadBaseType)
{
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -187,7 +184,7 @@ namespace Umbraco.Core.Services
/// An
public virtual IUmbracoEntity GetParent(int id)
{
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
var entity = repository.Get(id);
if (entity.ParentId == -1 || entity.ParentId == -20 || entity.ParentId == -21)
@@ -205,7 +202,7 @@ namespace Umbraco.Core.Services
/// An
public virtual IUmbracoEntity GetParent(int id, UmbracoObjectTypes umbracoObjectType)
{
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
var entity = repository.Get(id);
if (entity.ParentId == -1 || entity.ParentId == -20 || entity.ParentId == -21)
@@ -223,7 +220,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public virtual IEnumerable GetChildren(int parentId)
{
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == parentId);
var contents = repository.GetByQuery(query);
@@ -241,7 +238,7 @@ namespace Umbraco.Core.Services
public virtual IEnumerable GetChildren(int parentId, UmbracoObjectTypes umbracoObjectType)
{
var objectTypeId = umbracoObjectType.GetGuid();
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == parentId);
var contents = repository.GetByQuery(query, objectTypeId);
@@ -257,7 +254,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public virtual IEnumerable GetDescendents(int id)
{
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
var entity = repository.Get(id);
var pathMatch = entity.Path + ",";
@@ -277,7 +274,7 @@ namespace Umbraco.Core.Services
public virtual IEnumerable GetDescendents(int id, UmbracoObjectTypes umbracoObjectType)
{
var objectTypeId = umbracoObjectType.GetGuid();
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
var entity = repository.Get(id);
var query = Query.Builder.Where(x => x.Path.StartsWith(entity.Path) && x.Id != id);
@@ -295,7 +292,7 @@ namespace Umbraco.Core.Services
public virtual IEnumerable GetRootEntities(UmbracoObjectTypes umbracoObjectType)
{
var objectTypeId = umbracoObjectType.GetGuid();
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == -1);
var entities = repository.GetByQuery(query, objectTypeId);
@@ -339,7 +336,7 @@ namespace Umbraco.Core.Services
});
var objectTypeId = umbracoObjectType.GetGuid();
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(objectTypeId, ids);
}
@@ -356,7 +353,7 @@ namespace Umbraco.Core.Services
});
var objectTypeId = umbracoObjectType.GetGuid();
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(objectTypeId, keys);
}
@@ -379,7 +376,7 @@ namespace Umbraco.Core.Services
("The passed in type is not supported");
});
- using (var repository = _repositoryFactory.CreateEntityRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(objectTypeId, ids);
}
@@ -392,7 +389,7 @@ namespace Umbraco.Core.Services
///
public virtual UmbracoObjectTypes GetObjectType(int id)
{
- using (var uow = _uowProvider.GetUnitOfWork())
+ using (var uow = UowProvider.GetUnitOfWork())
{
var sql = new Sql().Select("nodeObjectType").From().Where(x => x.NodeId == id);
var nodeObjectTypeId = uow.Database.ExecuteScalar(sql);
@@ -408,7 +405,7 @@ namespace Umbraco.Core.Services
///
public virtual UmbracoObjectTypes GetObjectType(Guid key)
{
- using (var uow = _uowProvider.GetUnitOfWork())
+ using (var uow = UowProvider.GetUnitOfWork())
{
var sql = new Sql().Select("nodeObjectType").From().Where(x => x.UniqueId == key);
var nodeObjectTypeId = uow.Database.ExecuteScalar(sql);
diff --git a/src/Umbraco.Core/Services/ITaskService.cs b/src/Umbraco.Core/Services/ITaskService.cs
new file mode 100644
index 0000000000..e59929d095
--- /dev/null
+++ b/src/Umbraco.Core/Services/ITaskService.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using Umbraco.Core.Models;
+
+namespace Umbraco.Core.Services
+{
+ public interface ITaskService
+ {
+ IEnumerable GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
+ IEnumerable GetTasks(int? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
+ }
+}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Services/LocalizationService.cs b/src/Umbraco.Core/Services/LocalizationService.cs
index f5c489c89f..bd695b65e5 100644
--- a/src/Umbraco.Core/Services/LocalizationService.cs
+++ b/src/Umbraco.Core/Services/LocalizationService.cs
@@ -16,33 +16,30 @@ namespace Umbraco.Core.Services
///
/// Represents the Localization Service, which is an easy access to operations involving and
///
- public class LocalizationService : ILocalizationService
+ public class LocalizationService : RepositoryService, ILocalizationService
{
- private readonly RepositoryFactory _repositoryFactory;
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
private static readonly Guid RootParentId = new Guid(Constants.Conventions.Localization.DictionaryItemRootId);
[Obsolete("Use the constructors that specify all dependencies instead")]
public LocalizationService()
: this(new RepositoryFactory(ApplicationContext.Current.ApplicationCache, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()))
- {}
+ { }
[Obsolete("Use the constructors that specify all dependencies instead")]
public LocalizationService(RepositoryFactory repositoryFactory)
- : this(new PetaPocoUnitOfWorkProvider(LoggerResolver.Current.Logger), repositoryFactory)
+ : this(new PetaPocoUnitOfWorkProvider(LoggerResolver.Current.Logger), repositoryFactory, LoggerResolver.Current.Logger)
{
}
[Obsolete("Use the constructors that specify all dependencies instead")]
public LocalizationService(IDatabaseUnitOfWorkProvider provider)
- : this(provider, new RepositoryFactory(ApplicationContext.Current.ApplicationCache, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()))
+ : this(provider, new RepositoryFactory(ApplicationContext.Current.ApplicationCache, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()), LoggerResolver.Current.Logger)
{
}
- public LocalizationService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
+ public LocalizationService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger)
+ : base(provider, repositoryFactory, logger)
{
- _repositoryFactory = repositoryFactory;
- _uowProvider = provider;
}
///
@@ -83,8 +80,8 @@ namespace Umbraco.Core.Services
///
public IDictionaryItem CreateDictionaryItemWithIdentity(string key, Guid? parentId, string defaultValue = null)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateDictionaryRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateDictionaryRepository(uow))
{
//validate the parent
if (parentId.HasValue && parentId.Value != Guid.Empty)
@@ -127,7 +124,7 @@ namespace Umbraco.Core.Services
///
public IDictionaryItem GetDictionaryItemById(int id)
{
- using (var repository = _repositoryFactory.CreateDictionaryRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDictionaryRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -140,7 +137,7 @@ namespace Umbraco.Core.Services
///
public IDictionaryItem GetDictionaryItemById(Guid id)
{
- using (var repository = _repositoryFactory.CreateDictionaryRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDictionaryRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
//var query = Query.Builder.Where(x => x.Key == id);
@@ -157,7 +154,7 @@ namespace Umbraco.Core.Services
///
public IDictionaryItem GetDictionaryItemByKey(string key)
{
- using (var repository = _repositoryFactory.CreateDictionaryRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDictionaryRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(key);
//var query = Query.Builder.Where(x => x.ItemKey == key);
@@ -174,7 +171,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetDictionaryItemChildren(Guid parentId)
{
- using (var repository = _repositoryFactory.CreateDictionaryRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDictionaryRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == parentId);
var items = repository.GetByQuery(query);
@@ -189,7 +186,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetRootDictionaryItems()
{
- using (var repository = _repositoryFactory.CreateDictionaryRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDictionaryRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == RootParentId);
var items = repository.GetByQuery(query);
@@ -205,7 +202,7 @@ namespace Umbraco.Core.Services
/// True if a exists, otherwise false
public bool DictionaryItemExists(string key)
{
- using (var repository = _repositoryFactory.CreateDictionaryRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateDictionaryRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(key) != null;
//var query = Query.Builder.Where(x => x.ItemKey == key);
@@ -222,19 +219,19 @@ namespace Umbraco.Core.Services
/// Optional id of the user saving the dictionary item
public void Save(IDictionaryItem dictionaryItem, int userId = 0)
{
- if (SavingDictionaryItem.IsRaisedEventCancelled(new SaveEventArgs(dictionaryItem), this))
- return;
-
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateDictionaryRepository(uow))
- {
- repository.AddOrUpdate(dictionaryItem);
- uow.Commit();
- }
+ if (SavingDictionaryItem.IsRaisedEventCancelled(new SaveEventArgs(dictionaryItem), this))
+ return;
+
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateDictionaryRepository(uow))
+ {
+ repository.AddOrUpdate(dictionaryItem);
+ uow.Commit();
+ }
SavedDictionaryItem.RaiseEvent(new SaveEventArgs(dictionaryItem, false), this);
- Audit(AuditType.Save, "Save DictionaryItem performed by user", userId, dictionaryItem.Id);
+ Audit(AuditType.Save, "Save DictionaryItem performed by user", userId, dictionaryItem.Id);
}
///
@@ -245,20 +242,20 @@ namespace Umbraco.Core.Services
/// Optional id of the user deleting the dictionary item
public void Delete(IDictionaryItem dictionaryItem, int userId = 0)
{
- if (DeletingDictionaryItem.IsRaisedEventCancelled(new DeleteEventArgs(dictionaryItem), this))
- return;
-
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateDictionaryRepository(uow))
- {
- //NOTE: The recursive delete is done in the repository
- repository.Delete(dictionaryItem);
- uow.Commit();
- }
+ if (DeletingDictionaryItem.IsRaisedEventCancelled(new DeleteEventArgs(dictionaryItem), this))
+ return;
+
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateDictionaryRepository(uow))
+ {
+ //NOTE: The recursive delete is done in the repository
+ repository.Delete(dictionaryItem);
+ uow.Commit();
+ }
DeletedDictionaryItem.RaiseEvent(new DeleteEventArgs(dictionaryItem, false), this);
- Audit(AuditType.Delete, "Delete DictionaryItem performed by user", userId, dictionaryItem.Id);
+ Audit(AuditType.Delete, "Delete DictionaryItem performed by user", userId, dictionaryItem.Id);
}
///
@@ -268,7 +265,7 @@ namespace Umbraco.Core.Services
///
public ILanguage GetLanguageById(int id)
{
- using (var repository = _repositoryFactory.CreateLanguageRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateLanguageRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -281,7 +278,7 @@ namespace Umbraco.Core.Services
///
public ILanguage GetLanguageByCultureCode(string cultureName)
{
- using (var repository = _repositoryFactory.CreateLanguageRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateLanguageRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetByCultureName(cultureName);
//var query = Query.Builder.Where(x => x.CultureName == cultureName);
@@ -298,7 +295,7 @@ namespace Umbraco.Core.Services
///
public ILanguage GetLanguageByIsoCode(string isoCode)
{
- using (var repository = _repositoryFactory.CreateLanguageRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateLanguageRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetByIsoCode(isoCode);
//var query = Query.Builder.Where(x => x.IsoCode == isoCode);
@@ -314,7 +311,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetAllLanguages()
{
- using (var repository = _repositoryFactory.CreateLanguageRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateLanguageRepository(UowProvider.GetUnitOfWork()))
{
var languages = repository.GetAll();
return languages;
@@ -328,19 +325,19 @@ namespace Umbraco.Core.Services
/// Optional id of the user saving the language
public void Save(ILanguage language, int userId = 0)
{
- if (SavingLanguage.IsRaisedEventCancelled(new SaveEventArgs(language), this))
- return;
-
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateLanguageRepository(uow))
- {
- repository.AddOrUpdate(language);
- uow.Commit();
- }
+ if (SavingLanguage.IsRaisedEventCancelled(new SaveEventArgs(language), this))
+ return;
+
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateLanguageRepository(uow))
+ {
+ repository.AddOrUpdate(language);
+ uow.Commit();
+ }
SavedLanguage.RaiseEvent(new SaveEventArgs(language, false), this);
- Audit(AuditType.Save, "Save Language performed by user", userId, language.Id);
+ Audit(AuditType.Save, "Save Language performed by user", userId, language.Id);
}
///
@@ -350,26 +347,26 @@ namespace Umbraco.Core.Services
/// Optional id of the user deleting the language
public void Delete(ILanguage language, int userId = 0)
{
- if (DeletingLanguage.IsRaisedEventCancelled(new DeleteEventArgs(language), this))
- return;
-
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateLanguageRepository(uow))
- {
- //NOTE: There isn't any constraints in the db, so possible references aren't deleted
- repository.Delete(language);
- uow.Commit();
- }
+ if (DeletingLanguage.IsRaisedEventCancelled(new DeleteEventArgs(language), this))
+ return;
+
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateLanguageRepository(uow))
+ {
+ //NOTE: There isn't any constraints in the db, so possible references aren't deleted
+ repository.Delete(language);
+ uow.Commit();
+ }
DeletedLanguage.RaiseEvent(new DeleteEventArgs(language, false), this);
- Audit(AuditType.Delete, "Delete Language performed by user", userId, language.Id);
+ Audit(AuditType.Delete, "Delete Language performed by user", userId, language.Id);
}
private void Audit(AuditType type, string message, int userId, int objectId)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var auditRepo = _repositoryFactory.CreateAuditRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var auditRepo = RepositoryFactory.CreateAuditRepository(uow))
{
auditRepo.AddOrUpdate(new AuditItem(objectId, message, type, userId));
uow.Commit();
@@ -377,45 +374,45 @@ namespace Umbraco.Core.Services
}
#region Event Handlers
- ///
- /// Occurs before Delete
- ///
- public static event TypedEventHandler> DeletingLanguage;
-
- ///
- /// Occurs after Delete
- ///
- public static event TypedEventHandler> DeletedLanguage;
-
- ///
+ ///
/// Occurs before Delete
///
- public static event TypedEventHandler> DeletingDictionaryItem;
+ public static event TypedEventHandler> DeletingLanguage;
///
/// Occurs after Delete
///
- public static event TypedEventHandler> DeletedDictionaryItem;
+ public static event TypedEventHandler> DeletedLanguage;
+
+ ///
+ /// Occurs before Delete
+ ///
+ public static event TypedEventHandler> DeletingDictionaryItem;
+
+ ///
+ /// Occurs after Delete
+ ///
+ public static event TypedEventHandler> DeletedDictionaryItem;
///
/// Occurs before Save
///
- public static event TypedEventHandler> SavingDictionaryItem;
+ public static event TypedEventHandler> SavingDictionaryItem;
///
/// Occurs after Save
///
- public static event TypedEventHandler> SavedDictionaryItem;
+ public static event TypedEventHandler> SavedDictionaryItem;
- ///
- /// Occurs before Save
- ///
- public static event TypedEventHandler> SavingLanguage;
+ ///
+ /// Occurs before Save
+ ///
+ public static event TypedEventHandler> SavingLanguage;
- ///
- /// Occurs after Save
- ///
- public static event TypedEventHandler> SavedLanguage;
+ ///
+ /// Occurs after Save
+ ///
+ public static event TypedEventHandler> SavedLanguage;
#endregion
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Services/MacroService.cs b/src/Umbraco.Core/Services/MacroService.cs
index edaa584b73..bfa201e718 100644
--- a/src/Umbraco.Core/Services/MacroService.cs
+++ b/src/Umbraco.Core/Services/MacroService.cs
@@ -5,6 +5,7 @@ using System.Text.RegularExpressions;
using Umbraco.Core.Auditing;
using Umbraco.Core.Events;
using Umbraco.Core.IO;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Querying;
@@ -16,10 +17,8 @@ namespace Umbraco.Core.Services
///
/// Represents the Macro Service, which is an easy access to operations involving
///
- public class MacroService : IMacroService
+ public class MacroService : RepositoryService, IMacroService
{
- private readonly RepositoryFactory _repositoryFactory;
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
[Obsolete("Use the constructors that specify all dependencies instead")]
public MacroService()
@@ -33,10 +32,15 @@ namespace Umbraco.Core.Services
{
}
+ [Obsolete("Use the constructors that specify all dependencies instead")]
public MacroService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
+ : this(provider, repositoryFactory, LoggerResolver.Current.Logger)
+ {
+ }
+
+ public MacroService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger)
+ : base(provider, repositoryFactory, logger)
{
- _uowProvider = provider;
- _repositoryFactory = repositoryFactory;
}
///
@@ -75,7 +79,7 @@ namespace Umbraco.Core.Services
/// An object
public IMacro GetByAlias(string alias)
{
- using (var repository = _repositoryFactory.CreateMacroRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMacroRepository(UowProvider.GetUnitOfWork()))
{
var q = new Query();
q.Where(macro => macro.Alias == alias);
@@ -90,7 +94,7 @@ namespace Umbraco.Core.Services
///// An enumerable list of objects
//public IEnumerable GetAll(params string[] aliases)
//{
- // using (var repository = _repositoryFactory.CreateMacroRepository(_uowProvider.GetUnitOfWork()))
+ // using (var repository = RepositoryFactory.CreateMacroRepository(UowProvider.GetUnitOfWork()))
// {
// if (aliases.Any())
// {
@@ -103,7 +107,7 @@ namespace Umbraco.Core.Services
public IEnumerable GetAll(params int[] ids)
{
- using (var repository = _repositoryFactory.CreateMacroRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMacroRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -111,7 +115,7 @@ namespace Umbraco.Core.Services
public IMacro GetById(int id)
{
- using (var repository = _repositoryFactory.CreateMacroRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMacroRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -137,8 +141,8 @@ namespace Umbraco.Core.Services
if (Deleting.IsRaisedEventCancelled(new DeleteEventArgs(macro), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMacroRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMacroRepository(uow))
{
repository.Delete(macro);
uow.Commit();
@@ -159,8 +163,8 @@ namespace Umbraco.Core.Services
if (Saving.IsRaisedEventCancelled(new SaveEventArgs(macro), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMacroRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMacroRepository(uow))
{
repository.AddOrUpdate(macro);
uow.Commit();
@@ -192,8 +196,8 @@ namespace Umbraco.Core.Services
private void Audit(AuditType type, string message, int userId, int objectId)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var auditRepo = _repositoryFactory.CreateAuditRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var auditRepo = RepositoryFactory.CreateAuditRepository(uow))
{
auditRepo.AddOrUpdate(new AuditItem(objectId, message, type, userId));
uow.Commit();
diff --git a/src/Umbraco.Core/Services/MediaService.cs b/src/Umbraco.Core/Services/MediaService.cs
index c0032c840c..2c4546479b 100644
--- a/src/Umbraco.Core/Services/MediaService.cs
+++ b/src/Umbraco.Core/Services/MediaService.cs
@@ -8,6 +8,7 @@ using System.Xml.Linq;
using Umbraco.Core.Auditing;
using Umbraco.Core.Configuration;
using Umbraco.Core.Events;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence;
@@ -23,10 +24,8 @@ namespace Umbraco.Core.Services
///
/// Represents the Media Service, which is an easy access to operations involving
///
- public class MediaService : IMediaService
+ public class MediaService : RepositoryService, IMediaService
{
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
- private readonly RepositoryFactory _repositoryFactory;
//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.
@@ -44,17 +43,23 @@ namespace Umbraco.Core.Services
[Obsolete("Use the constructors that specify all dependencies instead")]
public MediaService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
+ : base(provider, repositoryFactory, LoggerResolver.Current.Logger)
{
- _uowProvider = provider;
- _repositoryFactory = repositoryFactory;
_dataTypeService = new DataTypeService(provider, repositoryFactory);
_userService = new UserService(provider, repositoryFactory);
}
+ [Obsolete("Use the constructors that specify all dependencies instead")]
public MediaService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, IDataTypeService dataTypeService, IUserService userService)
+ : this(provider, repositoryFactory, LoggerResolver.Current.Logger, dataTypeService, userService)
{
- _uowProvider = provider;
- _repositoryFactory = repositoryFactory;
+ }
+
+ public MediaService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IDataTypeService dataTypeService, IUserService userService)
+ : base(provider, repositoryFactory, logger)
+ {
+ if (dataTypeService == null) throw new ArgumentNullException("dataTypeService");
+ if (userService == null) throw new ArgumentNullException("userService");
_dataTypeService = dataTypeService;
_userService = userService;
}
@@ -158,8 +163,8 @@ namespace Umbraco.Core.Services
return media;
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
media.CreatorId = userId;
repository.AddOrUpdate(media);
@@ -215,8 +220,8 @@ namespace Umbraco.Core.Services
return media;
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
media.CreatorId = userId;
repository.AddOrUpdate(media);
@@ -246,8 +251,8 @@ namespace Umbraco.Core.Services
///
public IMedia GetById(int id)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
return repository.Get(id);
}
@@ -255,8 +260,8 @@ namespace Umbraco.Core.Services
public int Count(string contentTypeAlias = null)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
return repository.Count(contentTypeAlias);
}
@@ -264,8 +269,8 @@ namespace Umbraco.Core.Services
public int CountChildren(int parentId, string contentTypeAlias = null)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
return repository.CountChildren(parentId, contentTypeAlias);
}
@@ -273,8 +278,8 @@ namespace Umbraco.Core.Services
public int CountDescendants(int parentId, string contentTypeAlias = null)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
return repository.CountDescendants(parentId, contentTypeAlias);
}
@@ -287,7 +292,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetByIds(IEnumerable ids)
{
- using (var repository = _repositoryFactory.CreateMediaRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids.ToArray());
}
@@ -300,7 +305,7 @@ namespace Umbraco.Core.Services
///
public IMedia GetById(Guid key)
{
- using (var repository = _repositoryFactory.CreateMediaRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Key == key);
var contents = repository.GetByQuery(query);
@@ -315,7 +320,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetByLevel(int level)
{
- using (var repository = _repositoryFactory.CreateMediaRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Level == level && !x.Path.StartsWith("-21"));
var contents = repository.GetByQuery(query);
@@ -331,7 +336,7 @@ namespace Umbraco.Core.Services
/// An item
public IMedia GetByVersion(Guid versionId)
{
- using (var repository = _repositoryFactory.CreateMediaRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetByVersion(versionId);
}
@@ -344,7 +349,7 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetVersions(int id)
{
- using (var repository = _repositoryFactory.CreateMediaRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
{
var versions = repository.GetAllVersions(id);
return versions;
@@ -373,7 +378,7 @@ namespace Umbraco.Core.Services
if (ids.Any() == false)
return new List();
- using (var repository = _repositoryFactory.CreateMediaRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -386,8 +391,8 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetChildren(int id)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
var query = Query.Builder.Where(x => x.ParentId == id);
var medias = repository.GetByQuery(query);
@@ -412,7 +417,7 @@ namespace Umbraco.Core.Services
{
Mandate.ParameterCondition(pageIndex >= 0, "pageSize");
Mandate.ParameterCondition(pageSize > 0, "pageSize");
- using (var repository = _repositoryFactory.CreateMediaRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder;
//if the id is -1, then just get all
@@ -441,7 +446,7 @@ namespace Umbraco.Core.Services
{
Mandate.ParameterCondition(pageIndex >= 0, "pageSize");
Mandate.ParameterCondition(pageSize > 0, "pageSize");
- using (var repository = _repositoryFactory.CreateMediaRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder;
@@ -478,8 +483,8 @@ namespace Umbraco.Core.Services
/// An Enumerable flat list of objects
public IEnumerable GetDescendants(IMedia media)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
var pathMatch = media.Path + ",";
var query = Query.Builder.Where(x => x.Path.StartsWith(pathMatch) && x.Id != media.Id);
@@ -520,8 +525,8 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetMediaOfMediaType(int id)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
var query = Query.Builder.Where(x => x.ContentTypeId == id);
var medias = repository.GetByQuery(query);
@@ -536,8 +541,8 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetRootMedia()
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
var query = Query.Builder.Where(x => x.ParentId == -1);
var medias = repository.GetByQuery(query);
@@ -552,8 +557,8 @@ namespace Umbraco.Core.Services
/// An Enumerable list of objects
public IEnumerable GetMediaInRecycleBin()
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
var query = Query.Builder.Where(x => x.Path.Contains("-21"));
var medias = repository.GetByQuery(query);
@@ -590,7 +595,7 @@ namespace Umbraco.Core.Services
var sql = createSql(umbracoFileValue);
- using (var uow = _uowProvider.GetUnitOfWork())
+ using (var uow = UowProvider.GetUnitOfWork())
{
var propertyDataDto = uow.Database.Fetch(sql).FirstOrDefault();
@@ -613,7 +618,7 @@ namespace Umbraco.Core.Services
/// True if the media has any children otherwise False
public bool HasChildren(int id)
{
- using (var repository = _repositoryFactory.CreateMediaRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ParentId == id);
int count = repository.Count(query);
@@ -711,8 +716,8 @@ namespace Umbraco.Core.Services
//Find Descendants, which will be moved to the recycle bin along with the parent/grandparent.
var descendants = GetDescendants(media).OrderBy(x => x.Level).ToList();
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
//TODO: This should be part of the repo!
@@ -754,8 +759,8 @@ namespace Umbraco.Core.Services
bool success;
var nodeObjectType = new Guid(Constants.ObjectTypes.Media);
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
//Create a dictionary of ids -> dictionary of property aliases + values
entities = repository.GetEntitiesInRecycleBin()
@@ -791,8 +796,8 @@ namespace Umbraco.Core.Services
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
//NOTE What about media that has the contenttype as part of its composition?
//The ContentType has to be removed from the composition somehow as it would otherwise break
@@ -848,8 +853,8 @@ namespace Umbraco.Core.Services
Delete(child, userId);
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
repository.Delete(media);
uow.Commit();
@@ -876,8 +881,8 @@ namespace Umbraco.Core.Services
if (DeletingVersions.IsRaisedEventCancelled(new DeleteRevisionsEventArgs(id, dateToRetain: versionDate), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
repository.DeleteVersions(id, versionDate);
uow.Commit();
@@ -907,8 +912,8 @@ namespace Umbraco.Core.Services
DeleteVersions(id, content.UpdateDate, userId);
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
repository.DeleteVersion(versionId);
uow.Commit();
@@ -933,8 +938,8 @@ namespace Umbraco.Core.Services
return;
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
media.CreatorId = userId;
repository.AddOrUpdate(media);
@@ -970,8 +975,8 @@ namespace Umbraco.Core.Services
return;
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
foreach (var media in asArray)
{
@@ -1013,8 +1018,8 @@ namespace Umbraco.Core.Services
return false;
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
int i = 0;
foreach (var media in asArray)
@@ -1060,8 +1065,8 @@ namespace Umbraco.Core.Services
///
public void RebuildXmlStructures(params int[] contentTypeIds)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaRepository(uow))
{
repository.RebuildXmlStructures(
media => _entitySerializer.Serialize(this, _dataTypeService, _userService, media),
@@ -1117,8 +1122,8 @@ namespace Umbraco.Core.Services
{
Mandate.ParameterNotNullOrEmpty(mediaTypeAlias, "mediaTypeAlias");
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMediaTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMediaTypeRepository(uow))
{
var query = Query.Builder.Where(x => x.Alias == mediaTypeAlias);
var mediaTypes = repository.GetByQuery(query);
@@ -1139,8 +1144,8 @@ namespace Umbraco.Core.Services
private void Audit(AuditType type, string message, int userId, int objectId)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var auditRepo = _repositoryFactory.CreateAuditRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var auditRepo = RepositoryFactory.CreateAuditRepository(uow))
{
auditRepo.AddOrUpdate(new AuditItem(objectId, message, type, userId));
uow.Commit();
diff --git a/src/Umbraco.Core/Services/MemberGroupService.cs b/src/Umbraco.Core/Services/MemberGroupService.cs
index dd223e69ba..0f75bec93e 100644
--- a/src/Umbraco.Core/Services/MemberGroupService.cs
+++ b/src/Umbraco.Core/Services/MemberGroupService.cs
@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using Umbraco.Core.Events;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Querying;
@@ -10,10 +11,8 @@ using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
{
- public class MemberGroupService : IMemberGroupService
+ public class MemberGroupService : RepositoryService, IMemberGroupService
{
- private readonly RepositoryFactory _repositoryFactory;
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
[Obsolete("Use the constructors that specify all dependencies instead")]
public MemberGroupService(RepositoryFactory repositoryFactory)
@@ -27,11 +26,15 @@ namespace Umbraco.Core.Services
{
}
+ [Obsolete("Use the constructors that specify all dependencies instead")]
public MemberGroupService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory)
- {
- _repositoryFactory = repositoryFactory;
- _uowProvider = provider;
+ : this(provider, repositoryFactory, LoggerResolver.Current.Logger)
+ {
+ }
+ public MemberGroupService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger)
+ : base(provider, repositoryFactory, logger)
+ {
//Proxy events!
MemberGroupRepository.SavedMemberGroup += MemberGroupRepository_SavedMemberGroup;
MemberGroupRepository.SavingMemberGroup += MemberGroupRepository_SavingMemberGroup;
@@ -54,7 +57,7 @@ namespace Umbraco.Core.Services
public IEnumerable GetAll()
{
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll();
}
@@ -62,7 +65,7 @@ namespace Umbraco.Core.Services
public IMemberGroup GetById(int id)
{
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -70,7 +73,7 @@ namespace Umbraco.Core.Services
public IMemberGroup GetByName(string name)
{
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetByName(name);
}
@@ -86,8 +89,8 @@ namespace Umbraco.Core.Services
}
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
repository.AddOrUpdate(memberGroup);
uow.Commit();
@@ -102,8 +105,8 @@ namespace Umbraco.Core.Services
if (Deleting.IsRaisedEventCancelled(new DeleteEventArgs(memberGroup), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
repository.Delete(memberGroup);
uow.Commit();
diff --git a/src/Umbraco.Core/Services/MemberService.cs b/src/Umbraco.Core/Services/MemberService.cs
index 28511f4cfa..2bb1643b71 100644
--- a/src/Umbraco.Core/Services/MemberService.cs
+++ b/src/Umbraco.Core/Services/MemberService.cs
@@ -6,6 +6,7 @@ using System.Xml.Linq;
using Umbraco.Core.Auditing;
using Umbraco.Core.Configuration;
using Umbraco.Core.Events;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Models.Rdbms;
@@ -22,11 +23,9 @@ namespace Umbraco.Core.Services
///
/// Represents the MemberService.
///
- public class MemberService : IMemberService
+ public class MemberService : RepositoryService, IMemberService
{
- private readonly RepositoryFactory _repositoryFactory;
private readonly IMemberGroupService _memberGroupService;
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
private readonly EntityXmlSerializer _entitySerializer = new EntityXmlSerializer();
private readonly IDataTypeService _dataTypeService;
private static readonly ReaderWriterLockSlim Locker = new ReaderWriterLockSlim();
@@ -45,31 +44,26 @@ namespace Umbraco.Core.Services
[Obsolete("Use the constructors that specify all dependencies instead")]
public MemberService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, IMemberGroupService memberGroupService)
+ : base(provider, repositoryFactory, LoggerResolver.Current.Logger)
{
- if (provider == null) throw new ArgumentNullException("provider");
- if (repositoryFactory == null) throw new ArgumentNullException("repositoryFactory");
if (memberGroupService == null) throw new ArgumentNullException("memberGroupService");
- _repositoryFactory = repositoryFactory;
_memberGroupService = memberGroupService;
- _uowProvider = provider;
_dataTypeService = new DataTypeService(provider, repositoryFactory);
}
[Obsolete("Use the constructors that specify all dependencies instead")]
public MemberService(IDatabaseUnitOfWorkProvider provider, IMemberGroupService memberGroupService, IDataTypeService dataTypeService)
- : this(provider, new RepositoryFactory(), memberGroupService, dataTypeService)
+ : this(provider, new RepositoryFactory(), LoggerResolver.Current.Logger, memberGroupService, dataTypeService)
{
}
- public MemberService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, IMemberGroupService memberGroupService, IDataTypeService dataTypeService)
+ public MemberService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IMemberGroupService memberGroupService, IDataTypeService dataTypeService)
+ : base(provider, repositoryFactory, logger)
{
- if (provider == null) throw new ArgumentNullException("provider");
- if (repositoryFactory == null) throw new ArgumentNullException("repositoryFactory");
if (memberGroupService == null) throw new ArgumentNullException("memberGroupService");
- _repositoryFactory = repositoryFactory;
+ if (dataTypeService == null) throw new ArgumentNullException("dataTypeService");
_memberGroupService = memberGroupService;
- _uowProvider = provider;
_dataTypeService = dataTypeService;
}
@@ -83,7 +77,7 @@ namespace Umbraco.Core.Services
/// Alias of the default MemberType
public string GetDefaultMemberType()
{
- using (var repository = _repositoryFactory.CreateMemberTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberTypeRepository(UowProvider.GetUnitOfWork()))
{
var types = repository.GetAll().Select(x => x.Alias).ToArray();
@@ -108,7 +102,7 @@ namespace Umbraco.Core.Services
/// True if the Member exists otherwise False
public bool Exists(string username)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
return repository.Exists(username);
}
@@ -154,7 +148,7 @@ namespace Umbraco.Core.Services
/// True if the Member exists otherwise False
public bool Exists(int id)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
return repository.Exists(id);
}
@@ -167,7 +161,7 @@ namespace Umbraco.Core.Services
///
public IMember GetById(int id)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -182,7 +176,7 @@ namespace Umbraco.Core.Services
///
public IMember GetByKey(Guid id)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Key == id);
var member = repository.GetByQuery(query).FirstOrDefault();
@@ -197,7 +191,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetMembersByMemberType(string memberTypeAlias)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.ContentTypeAlias == memberTypeAlias);
var members = repository.GetByQuery(query);
@@ -212,7 +206,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetMembersByMemberType(int memberTypeId)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
repository.Get(memberTypeId);
var query = Query.Builder.Where(x => x.ContentTypeId == memberTypeId);
@@ -228,7 +222,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetMembersByGroup(string memberGroupName)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetByMemberGroup(memberGroupName);
}
@@ -242,7 +236,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetAllMembers(params int[] ids)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -256,9 +250,9 @@ namespace Umbraco.Core.Services
{
using (new WriteLock(Locker))
{
- using (var uow = _uowProvider.GetUnitOfWork())
+ using (var uow = UowProvider.GetUnitOfWork())
{
- var repository = _repositoryFactory.CreateMemberRepository(uow);
+ var repository = RepositoryFactory.CreateMemberRepository(uow);
//TODO: What about content that has the contenttype as part of its composition?
var query = Query.Builder.Where(x => x.ContentTypeId == memberTypeId);
var members = repository.GetByQuery(query).ToArray();
@@ -286,8 +280,8 @@ namespace Umbraco.Core.Services
///
public IEnumerable FindMembersByDisplayName(string displayNameToMatch, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
var query = new Query();
@@ -327,8 +321,8 @@ namespace Umbraco.Core.Services
///
public IEnumerable FindByEmail(string emailStringToMatch, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
var query = new Query();
@@ -368,8 +362,8 @@ namespace Umbraco.Core.Services
///
public IEnumerable FindByUsername(string login, int pageIndex, int pageSize, out int totalRecords, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
var query = new Query();
@@ -407,7 +401,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetMembersByPropertyValue(string propertyTypeAlias, string value, StringPropertyMatchType matchType = StringPropertyMatchType.Exact)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
IQuery query;
@@ -463,7 +457,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetMembersByPropertyValue(string propertyTypeAlias, int value, ValuePropertyMatchType matchType = ValuePropertyMatchType.Exact)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
IQuery query;
@@ -521,7 +515,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetMembersByPropertyValue(string propertyTypeAlias, bool value)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
var query =
Query.Builder.Where(
@@ -543,7 +537,7 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetMembersByPropertyValue(string propertyTypeAlias, DateTime value, ValuePropertyMatchType matchType = ValuePropertyMatchType.Exact)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
IQuery query;
@@ -604,8 +598,8 @@ namespace Umbraco.Core.Services
/// True if publishing succeeded, otherwise False
public void RebuildXmlStructures(params int[] memberTypeIds)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
repository.RebuildXmlStructures(
member => _entitySerializer.Serialize(_dataTypeService, member),
@@ -631,7 +625,7 @@ namespace Umbraco.Core.Services
/// with number of Members for passed in type
public int GetCount(MemberCountType countType)
{
- using (var repository = _repositoryFactory.CreateMemberRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
{
IQuery query;
@@ -678,8 +672,8 @@ namespace Umbraco.Core.Services
///
public IEnumerable GetAll(int pageIndex, int pageSize, out int totalRecords)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
return repository.GetPagedResultsByQuery(null, pageIndex, pageSize, out totalRecords, "LoginName", Direction.Ascending);
}
@@ -688,8 +682,8 @@ namespace Umbraco.Core.Services
public IEnumerable GetAll(int pageIndex, int pageSize, out int totalRecords,
string orderBy, Direction orderDirection, string memberTypeAlias = null, string filter = "")
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
if (memberTypeAlias == null)
{
@@ -708,8 +702,8 @@ namespace Umbraco.Core.Services
/// with number of Members
public int Count(string memberTypeAlias = null)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
return repository.Count(memberTypeAlias);
}
@@ -835,8 +829,8 @@ namespace Umbraco.Core.Services
return member;
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
repository.AddOrUpdate(member);
//insert the xml
@@ -884,8 +878,8 @@ namespace Umbraco.Core.Services
///
public IMember GetByEmail(string email)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
var query = Query.Builder.Where(x => x.Email.Equals(email));
var member = repository.GetByQuery(query).FirstOrDefault();
@@ -905,8 +899,8 @@ namespace Umbraco.Core.Services
// a caching mechanism since this method is used by all the membership providers and could be
// called quite a bit when dealing with members.
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
var query = Query.Builder.Where(x => x.Username.Equals(username));
var member = repository.GetByQuery(query).FirstOrDefault();
@@ -924,8 +918,8 @@ namespace Umbraco.Core.Services
if (Deleting.IsRaisedEventCancelled(new DeleteEventArgs(member), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
repository.Delete(member);
uow.Commit();
@@ -950,8 +944,8 @@ namespace Umbraco.Core.Services
}
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
repository.AddOrUpdate(entity);
repository.AddOrUpdateContentXml(entity, m => _entitySerializer.Serialize(_dataTypeService, m));
@@ -985,8 +979,8 @@ namespace Umbraco.Core.Services
}
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
foreach (var member in asArray)
{
@@ -1014,8 +1008,8 @@ namespace Umbraco.Core.Services
public void AddRole(string roleName)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
repository.CreateIfNotExists(roleName);
}
@@ -1023,8 +1017,8 @@ namespace Umbraco.Core.Services
public IEnumerable GetAllRoles()
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
var result = repository.GetAll();
return result.Select(x => x.Name).Distinct();
@@ -1033,8 +1027,8 @@ namespace Umbraco.Core.Services
public IEnumerable GetAllRoles(int memberId)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
var result = repository.GetMemberGroupsForMember(memberId);
return result.Select(x => x.Name).Distinct();
@@ -1043,8 +1037,8 @@ namespace Umbraco.Core.Services
public IEnumerable GetAllRoles(string username)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
var result = repository.GetMemberGroupsForMember(username);
return result.Select(x => x.Name).Distinct();
@@ -1053,8 +1047,8 @@ namespace Umbraco.Core.Services
public IEnumerable GetMembersInRole(string roleName)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
return repository.GetByMemberGroup(roleName);
}
@@ -1062,8 +1056,8 @@ namespace Umbraco.Core.Services
public IEnumerable FindMembersInRole(string roleName, string usernameToMatch, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberRepository(uow))
{
return repository.FindMembersInRole(roleName, usernameToMatch, matchType);
}
@@ -1082,8 +1076,8 @@ namespace Umbraco.Core.Services
}
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
var qry = new Query().Where(g => g.Name == roleName);
var found = repository.GetByQuery(qry).ToArray();
@@ -1103,8 +1097,8 @@ namespace Umbraco.Core.Services
public void AssignRoles(string[] usernames, string[] roleNames)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
repository.AssignRoles(usernames, roleNames);
}
@@ -1117,8 +1111,8 @@ namespace Umbraco.Core.Services
public void DissociateRoles(string[] usernames, string[] roleNames)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
repository.DissociateRoles(usernames, roleNames);
}
@@ -1131,8 +1125,8 @@ namespace Umbraco.Core.Services
public void AssignRoles(int[] memberIds, string[] roleNames)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
repository.AssignRoles(memberIds, roleNames);
}
@@ -1145,8 +1139,8 @@ namespace Umbraco.Core.Services
public void DissociateRoles(int[] memberIds, string[] roleNames)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberGroupRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
{
repository.DissociateRoles(memberIds, roleNames);
}
@@ -1158,7 +1152,7 @@ namespace Umbraco.Core.Services
private IMemberType FindMemberTypeByAlias(string memberTypeAlias)
{
- using (var repository = _repositoryFactory.CreateMemberTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Alias == memberTypeAlias);
var types = repository.GetByQuery(query);
@@ -1180,8 +1174,8 @@ namespace Umbraco.Core.Services
private void Audit(AuditType type, string message, int userId, int objectId)
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var auditRepo = _repositoryFactory.CreateAuditRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var auditRepo = RepositoryFactory.CreateAuditRepository(uow))
{
auditRepo.AddOrUpdate(new AuditItem(objectId, message, type, userId));
uow.Commit();
diff --git a/src/Umbraco.Core/Services/MemberTypeService.cs b/src/Umbraco.Core/Services/MemberTypeService.cs
index dc49d89230..022b8721ef 100644
--- a/src/Umbraco.Core/Services/MemberTypeService.cs
+++ b/src/Umbraco.Core/Services/MemberTypeService.cs
@@ -4,6 +4,7 @@ using System.Linq;
using System.Threading;
using Umbraco.Core.Auditing;
using Umbraco.Core.Events;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Querying;
@@ -13,8 +14,6 @@ namespace Umbraco.Core.Services
{
public class MemberTypeService : ContentTypeServiceBase, IMemberTypeService
{
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
- private readonly RepositoryFactory _repositoryFactory;
private readonly IMemberService _memberService;
private static readonly ReaderWriterLockSlim Locker = new ReaderWriterLockSlim();
@@ -29,18 +28,22 @@ namespace Umbraco.Core.Services
: this(new PetaPocoUnitOfWorkProvider(), repositoryFactory, memberService)
{ }
+ [Obsolete("Use the constructors that specify all dependencies instead")]
public MemberTypeService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, IMemberService memberService)
+ : this(provider, repositoryFactory, LoggerResolver.Current.Logger, memberService)
{
- if (provider == null) throw new ArgumentNullException("provider");
- if (repositoryFactory == null) throw new ArgumentNullException("repositoryFactory");
- _uowProvider = provider;
- _repositoryFactory = repositoryFactory;
+ }
+
+ public MemberTypeService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IMemberService memberService)
+ : base(provider, repositoryFactory, logger)
+ {
+ if (memberService == null) throw new ArgumentNullException("memberService");
_memberService = memberService;
}
public IEnumerable GetAll(params int[] ids)
{
- using (var repository = _repositoryFactory.CreateMemberTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberTypeRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -53,7 +56,7 @@ namespace Umbraco.Core.Services
///
public IMemberType Get(int id)
{
- using (var repository = _repositoryFactory.CreateMemberTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberTypeRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -66,7 +69,7 @@ namespace Umbraco.Core.Services
///
public IMemberType Get(string alias)
{
- using (var repository = _repositoryFactory.CreateMemberTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateMemberTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = Query.Builder.Where(x => x.Alias == alias);
var contentTypes = repository.GetByQuery(query);
@@ -82,8 +85,8 @@ namespace Umbraco.Core.Services
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberTypeRepository(uow))
{
memberType.CreatorId = userId;
repository.AddOrUpdate(memberType);
@@ -105,8 +108,8 @@ namespace Umbraco.Core.Services
using (new WriteLock(Locker))
{
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberTypeRepository(uow))
{
foreach (var memberType in asArray)
{
@@ -132,8 +135,8 @@ namespace Umbraco.Core.Services
{
_memberService.DeleteMembersOfType(memberType.Id);
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberTypeRepository(uow))
{
repository.Delete(memberType);
uow.Commit();
@@ -157,8 +160,8 @@ namespace Umbraco.Core.Services
_memberService.DeleteMembersOfType(contentType.Id);
}
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateMemberTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateMemberTypeRepository(uow))
{
foreach (var memberType in asArray)
{
diff --git a/src/Umbraco.Core/Services/RelationService.cs b/src/Umbraco.Core/Services/RelationService.cs
index bd4a46c75e..becde9c416 100644
--- a/src/Umbraco.Core/Services/RelationService.cs
+++ b/src/Umbraco.Core/Services/RelationService.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using Umbraco.Core.Events;
+using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Persistence;
@@ -10,17 +11,20 @@ using Umbraco.Core.Persistence.UnitOfWork;
namespace Umbraco.Core.Services
{
- public class RelationService : IRelationService
+ public class RelationService : RepositoryService, IRelationService
{
- private readonly IDatabaseUnitOfWorkProvider _uowProvider;
- private readonly RepositoryFactory _repositoryFactory;
private readonly IEntityService _entityService;
- public RelationService(IDatabaseUnitOfWorkProvider uowProvider, RepositoryFactory repositoryFactory,
- IEntityService entityService)
+ [Obsolete("Use the constructors that specify all dependencies instead")]
+ public RelationService(IDatabaseUnitOfWorkProvider uowProvider, RepositoryFactory repositoryFactory, IEntityService entityService)
+ : this(uowProvider, repositoryFactory, LoggerResolver.Current.Logger, entityService)
{
- _uowProvider = uowProvider;
- _repositoryFactory = repositoryFactory;
+ }
+
+ public RelationService(IDatabaseUnitOfWorkProvider uowProvider, RepositoryFactory repositoryFactory, ILogger logger, IEntityService entityService)
+ : base(uowProvider, repositoryFactory, logger)
+ {
+ if (entityService == null) throw new ArgumentNullException("entityService");
_entityService = entityService;
}
@@ -31,7 +35,7 @@ namespace Umbraco.Core.Services
/// A object
public IRelation GetById(int id)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -44,7 +48,7 @@ namespace Umbraco.Core.Services
/// A object
public IRelationType GetRelationTypeById(int id)
{
- using (var repository = _repositoryFactory.CreateRelationTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationTypeRepository(UowProvider.GetUnitOfWork()))
{
return repository.Get(id);
}
@@ -57,7 +61,7 @@ namespace Umbraco.Core.Services
/// A object
public IRelationType GetRelationTypeByAlias(string alias)
{
- using (var repository = _repositoryFactory.CreateRelationTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.Alias == alias);
return repository.GetByQuery(query).FirstOrDefault();
@@ -71,7 +75,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetAllRelations(params int[] ids)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -94,7 +98,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetAllRelationsByRelationType(int relationTypeId)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.RelationTypeId == relationTypeId);
return repository.GetByQuery(query);
@@ -108,7 +112,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetAllRelationTypes(params int[] ids)
{
- using (var repository = _repositoryFactory.CreateRelationTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationTypeRepository(UowProvider.GetUnitOfWork()))
{
return repository.GetAll(ids);
}
@@ -121,7 +125,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetByParentId(int id)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.ParentId == id);
return repository.GetByQuery(query);
@@ -156,7 +160,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetByChildId(int id)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.ChildId == id);
return repository.GetByQuery(query);
@@ -192,7 +196,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetByParentOrChildId(int id)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.ChildId == id || x.ParentId == id);
return repository.GetByQuery(query);
@@ -207,7 +211,7 @@ namespace Umbraco.Core.Services
public IEnumerable GetByRelationTypeName(string relationTypeName)
{
List relationTypeIds = null;
- using (var repository = _repositoryFactory.CreateRelationTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.Name == relationTypeName);
var relationTypes = repository.GetByQuery(query);
@@ -231,7 +235,7 @@ namespace Umbraco.Core.Services
public IEnumerable GetByRelationTypeAlias(string relationTypeAlias)
{
List relationTypeIds = null;
- using (var repository = _repositoryFactory.CreateRelationTypeRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationTypeRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.Alias == relationTypeAlias);
var relationTypes = repository.GetByQuery(query);
@@ -254,7 +258,7 @@ namespace Umbraco.Core.Services
/// An enumerable list of objects
public IEnumerable GetByRelationTypeId(int relationTypeId)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.RelationTypeId == relationTypeId);
return repository.GetByQuery(query);
@@ -372,8 +376,8 @@ namespace Umbraco.Core.Services
if (SavingRelation.IsRaisedEventCancelled(new SaveEventArgs(relation), this))
return relation;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateRelationRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateRelationRepository(uow))
{
repository.AddOrUpdate(relation);
uow.Commit();
@@ -400,8 +404,8 @@ namespace Umbraco.Core.Services
if (SavingRelation.IsRaisedEventCancelled(new SaveEventArgs(relation), this))
return relation;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateRelationRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateRelationRepository(uow))
{
repository.AddOrUpdate(relation);
uow.Commit();
@@ -418,7 +422,7 @@ namespace Umbraco.Core.Services
/// Returns True if any relations exists for the given , otherwise False
public bool HasRelations(IRelationType relationType)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.RelationTypeId == relationType.Id);
return repository.GetByQuery(query).Any();
@@ -432,7 +436,7 @@ namespace Umbraco.Core.Services
/// Returns True if any relations exists with the given Id, otherwise False
public bool IsRelated(int id)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.ParentId == id || x.ChildId == id);
return repository.GetByQuery(query).Any();
@@ -447,7 +451,7 @@ namespace Umbraco.Core.Services
/// Returns True if any relations exists with the given Ids, otherwise False
public bool AreRelated(int parentId, int childId)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.ParentId == parentId && x.ChildId == childId);
return repository.GetByQuery(query).Any();
@@ -480,7 +484,7 @@ namespace Umbraco.Core.Services
/// Returns True if any relations exists with the given Ids and relation type, otherwise False
public bool AreRelated(int parentId, int childId, IRelationType relationType)
{
- using (var repository = _repositoryFactory.CreateRelationRepository(_uowProvider.GetUnitOfWork()))
+ using (var repository = RepositoryFactory.CreateRelationRepository(UowProvider.GetUnitOfWork()))
{
var query = new Query().Where(x => x.ParentId == parentId && x.ChildId == childId && x.RelationTypeId == relationType.Id);
return repository.GetByQuery(query).Any();
@@ -520,8 +524,8 @@ namespace Umbraco.Core.Services
if (SavingRelation.IsRaisedEventCancelled(new SaveEventArgs(relation), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateRelationRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateRelationRepository(uow))
{
repository.AddOrUpdate(relation);
uow.Commit();
@@ -539,8 +543,8 @@ namespace Umbraco.Core.Services
if (SavingRelationType.IsRaisedEventCancelled(new SaveEventArgs(relationType), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateRelationTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateRelationTypeRepository(uow))
{
repository.AddOrUpdate(relationType);
uow.Commit();
@@ -558,8 +562,8 @@ namespace Umbraco.Core.Services
if (DeletingRelation.IsRaisedEventCancelled(new DeleteEventArgs(relation), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateRelationRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateRelationRepository(uow))
{
repository.Delete(relation);
uow.Commit();
@@ -577,8 +581,8 @@ namespace Umbraco.Core.Services
if (DeletingRelationType.IsRaisedEventCancelled(new DeleteEventArgs(relationType), this))
return;
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateRelationTypeRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateRelationTypeRepository(uow))
{
repository.Delete(relationType);
uow.Commit();
@@ -594,8 +598,8 @@ namespace Umbraco.Core.Services
public void DeleteRelationsOfType(IRelationType relationType)
{
var relations = new List();
- var uow = _uowProvider.GetUnitOfWork();
- using (var repository = _repositoryFactory.CreateRelationRepository(uow))
+ var uow = UowProvider.GetUnitOfWork();
+ using (var repository = RepositoryFactory.CreateRelationRepository(uow))
{
var query = new Query().Where(x => x.RelationTypeId == relationType.Id);
relations.AddRange(repository.GetByQuery(query).ToList());
@@ -614,7 +618,7 @@ namespace Umbraco.Core.Services
private IEnumerable