U4-4847 Refactor ContentService (#1266)
* U4-4748 - refactor Content-, Media- and MemberTypeRepository * Cleanup Attempt * Cleanup OperationStatus * U4-4748 - refactor Content-, Media- and MemberTypeService * U4-4748 - cleanup locking * U4-4748 - refactor Content-, Media- and MemberRepository * U4-4748 - refactor ContentService (in progress) * U4-4748 - all unit of work must be completed * U4-4748 - refactor locks, fix tests * U4-4748 - deal with fixmes * U4-4748 - lock table migration * Update UmbracoVersion * Fix AuthorizeUpgrade * U4-4748 - cleanup+bugfix lock objects * U4-4748 - bugfix * updates a string interpolation
This commit is contained in:
committed by
Shannon Deminick
parent
12f4873c90
commit
ddf38407d8
@@ -50,9 +50,11 @@ namespace Umbraco.Core.Services
|
||||
|
||||
if (types.Any() == false)
|
||||
{
|
||||
throw new EntityNotFoundException("No member types could be resolved");
|
||||
throw new EntityNotFoundException("No member types could be resolved"); // causes rollback
|
||||
}
|
||||
|
||||
uow.Complete();
|
||||
|
||||
if (types.InvariantContains("writer"))
|
||||
{
|
||||
return types.First(x => x.InvariantEquals("writer"));
|
||||
@@ -78,7 +80,9 @@ namespace Umbraco.Core.Services
|
||||
using (var uow = UowProvider.CreateUnitOfWork())
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
return repository.Exists(username);
|
||||
var exists = repository.Exists(username);
|
||||
uow.Complete();
|
||||
return exists;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,7 +140,7 @@ namespace Umbraco.Core.Services
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
var loginExists = uow.Database.ExecuteScalar<int>("SELECT COUNT(id) FROM umbracoUser WHERE userLogin = @Login", new { Login = username }) != 0;
|
||||
if (loginExists)
|
||||
throw new ArgumentException("Login already exists");
|
||||
throw new ArgumentException("Login already exists"); // causes rollback
|
||||
|
||||
user = new User(userType)
|
||||
{
|
||||
@@ -177,8 +181,8 @@ namespace Umbraco.Core.Services
|
||||
using (var uow = UowProvider.CreateUnitOfWork())
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
var user = repository.Get((int)id);
|
||||
|
||||
var user = repository.Get(id);
|
||||
uow.Complete();
|
||||
return user;
|
||||
}
|
||||
}
|
||||
@@ -211,7 +215,7 @@ namespace Umbraco.Core.Services
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
var query = repository.Query.Where(x => x.Email.Equals(email));
|
||||
var user = repository.GetByQuery(query).FirstOrDefault();
|
||||
|
||||
uow.Complete();
|
||||
return user;
|
||||
}
|
||||
}
|
||||
@@ -228,6 +232,7 @@ namespace Umbraco.Core.Services
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
var query = repository.Query.Where(x => x.Username.Equals(username));
|
||||
var user = repository.GetByQuery(query).FirstOrDefault();
|
||||
uow.Complete();
|
||||
return user;
|
||||
}
|
||||
}
|
||||
@@ -322,9 +327,9 @@ namespace Umbraco.Core.Services
|
||||
using (var uow = UowProvider.CreateUnitOfWork())
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
repository.AddOrUpdate(entity);
|
||||
try
|
||||
{
|
||||
repository.AddOrUpdate(entity);
|
||||
uow.Complete();
|
||||
}
|
||||
catch (DbException ex)
|
||||
@@ -407,7 +412,9 @@ namespace Umbraco.Core.Services
|
||||
throw new ArgumentOutOfRangeException("matchType");
|
||||
}
|
||||
|
||||
return repository.GetPagedResultsByQuery(query, pageIndex, pageSize, out totalRecords, dto => dto.Email);
|
||||
var users = repository.GetPagedResultsByQuery(query, pageIndex, pageSize, out totalRecords, dto => dto.Email);
|
||||
uow.Complete();
|
||||
return users;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -448,7 +455,9 @@ namespace Umbraco.Core.Services
|
||||
throw new ArgumentOutOfRangeException("matchType");
|
||||
}
|
||||
|
||||
return repository.GetPagedResultsByQuery(query, pageIndex, pageSize, out totalRecords, dto => dto.Username);
|
||||
var users = repository.GetPagedResultsByQuery(query, pageIndex, pageSize, out totalRecords, dto => dto.Username);
|
||||
uow.Complete();
|
||||
return users;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -473,7 +482,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
case MemberCountType.All:
|
||||
query = repository.Query;
|
||||
return repository.Count(query);
|
||||
break;
|
||||
case MemberCountType.Online:
|
||||
throw new NotImplementedException();
|
||||
//var fromDate = DateTime.Now.AddMinutes(-Membership.UserIsOnlineTimeWindow);
|
||||
@@ -484,18 +493,18 @@ namespace Umbraco.Core.Services
|
||||
// ((Member)x).DateTimePropertyValue > fromDate);
|
||||
//return repository.GetCountByQuery(query);
|
||||
case MemberCountType.LockedOut:
|
||||
query =
|
||||
repository.Query.Where(
|
||||
x => x.IsLockedOut);
|
||||
return repository.GetCountByQuery(query);
|
||||
query = repository.Query.Where(x => x.IsLockedOut);
|
||||
break;
|
||||
case MemberCountType.Approved:
|
||||
query =
|
||||
repository.Query.Where(
|
||||
x => x.IsApproved);
|
||||
return repository.GetCountByQuery(query);
|
||||
query = repository.Query.Where(x => x.IsApproved);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException("countType");
|
||||
}
|
||||
|
||||
var count = repository.GetCountByQuery(query);
|
||||
uow.Complete();
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -511,7 +520,9 @@ namespace Umbraco.Core.Services
|
||||
using (var uow = UowProvider.CreateUnitOfWork())
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
return repository.GetPagedResultsByQuery(null, pageIndex, pageSize, out totalRecords, member => member.Username);
|
||||
var users = repository.GetPagedResultsByQuery(null, pageIndex, pageSize, out totalRecords, member => member.Username);
|
||||
uow.Complete();
|
||||
return users;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -551,7 +562,9 @@ namespace Umbraco.Core.Services
|
||||
using (var uow = UowProvider.CreateUnitOfWork())
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
return repository.Get(id);
|
||||
var user = repository.Get(id);
|
||||
uow.Complete();
|
||||
return user;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,6 +581,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
repository.ReplaceUserPermissions(userId, permissions, entityIds);
|
||||
uow.Complete();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -583,6 +597,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserRepository>();
|
||||
repository.AssignUserPermission(userId, permission, entityIds);
|
||||
uow.Complete();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -596,7 +611,9 @@ namespace Umbraco.Core.Services
|
||||
using (var uow = UowProvider.CreateUnitOfWork())
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserTypeRepository>();
|
||||
return repository.GetAll(ids);
|
||||
var types = repository.GetAll(ids);
|
||||
uow.Complete();
|
||||
return types;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -611,8 +628,9 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserTypeRepository>();
|
||||
var query = repository.QueryFactory.Create<IUserType>().Where(x => x.Alias == alias);
|
||||
var contents = repository.GetByQuery(query);
|
||||
return contents.SingleOrDefault();
|
||||
var type = repository.GetByQuery(query).SingleOrDefault();
|
||||
uow.Complete();
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -626,7 +644,9 @@ namespace Umbraco.Core.Services
|
||||
using (var uow = UowProvider.CreateUnitOfWork())
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserTypeRepository>();
|
||||
return repository.Get(id);
|
||||
var type = repository.Get(id);
|
||||
uow.Complete();
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -641,8 +661,9 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
var repository = uow.CreateRepository<IUserTypeRepository>();
|
||||
var query = repository.QueryFactory.Create<IUserType>().Where(x => x.Name == name);
|
||||
var contents = repository.GetByQuery(query);
|
||||
return contents.SingleOrDefault();
|
||||
var type = repository.GetByQuery(query).SingleOrDefault();
|
||||
uow.Complete();
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -763,23 +784,16 @@ namespace Umbraco.Core.Services
|
||||
if (id == -1 && user.DefaultPermissions.Any() == false)
|
||||
{
|
||||
// exception to everything. If default cruds is empty and we're on root node; allow browse of root node
|
||||
result.Add(
|
||||
new EntityPermission(
|
||||
user.Id,
|
||||
id,
|
||||
user.DefaultPermissions.ToArray()));
|
||||
result.Add(new EntityPermission(user.Id, id, user.DefaultPermissions.ToArray()));
|
||||
}
|
||||
else
|
||||
{
|
||||
//use the user's user type permissions
|
||||
result.Add(
|
||||
new EntityPermission(
|
||||
user.Id,
|
||||
id,
|
||||
user.DefaultPermissions.ToArray()));
|
||||
result.Add(new EntityPermission(user.Id, id, user.DefaultPermissions.ToArray()));
|
||||
}
|
||||
}
|
||||
|
||||
uow.Complete();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user