Core is more or less building (i think)
This commit is contained in:
@@ -9,6 +9,8 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
{
|
||||
public interface IMediaRepository : IRepositoryVersionable<int, IMedia>, IRecycleBinRepository<IMedia>, IDeleteMediaFilesRepository
|
||||
{
|
||||
IMedia GetMediaByPath(string mediaPath);
|
||||
|
||||
/// <summary>
|
||||
/// Used to add/update published xml for the media item
|
||||
/// </summary>
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml.Linq;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Configuration.UmbracoSettings;
|
||||
@@ -247,6 +248,42 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
} while (processed < total);
|
||||
}
|
||||
|
||||
public IMedia GetMediaByPath(string mediaPath)
|
||||
{
|
||||
var umbracoFileValue = mediaPath;
|
||||
const string Pattern = ".*[_][0-9]+[x][0-9]+[.].*";
|
||||
var isResized = Regex.IsMatch(mediaPath, Pattern);
|
||||
|
||||
// If the image has been resized we strip the "_403x328" of the original "/media/1024/koala_403x328.jpg" url.
|
||||
if (isResized)
|
||||
{
|
||||
var underscoreIndex = mediaPath.LastIndexOf('_');
|
||||
var dotIndex = mediaPath.LastIndexOf('.');
|
||||
umbracoFileValue = string.Concat(mediaPath.Substring(0, underscoreIndex), mediaPath.Substring(dotIndex));
|
||||
}
|
||||
|
||||
Func<string, Sql> createSql = url => new Sql().Select("*")
|
||||
.From<PropertyDataDto>(SqlSyntax)
|
||||
.InnerJoin<PropertyTypeDto>(SqlSyntax)
|
||||
.On<PropertyDataDto, PropertyTypeDto>(SqlSyntax, left => left.PropertyTypeId, right => right.Id)
|
||||
.Where<PropertyTypeDto>(SqlSyntax, x => x.Alias == "umbracoFile")
|
||||
.Where<PropertyDataDto>(SqlSyntax, x => x.VarChar == url);
|
||||
|
||||
var sql = createSql(umbracoFileValue);
|
||||
|
||||
var propertyDataDto = Database.Fetch<PropertyDataDto, PropertyTypeDto>(sql).FirstOrDefault();
|
||||
|
||||
// If the stripped-down url returns null, we try again with the original url.
|
||||
// Previously, the function would fail on e.g. "my_x_image.jpg"
|
||||
if (propertyDataDto == null)
|
||||
{
|
||||
sql = createSql(mediaPath);
|
||||
propertyDataDto = Database.Fetch<PropertyDataDto, PropertyTypeDto>(sql).FirstOrDefault();
|
||||
}
|
||||
|
||||
return propertyDataDto == null ? null : Get(propertyDataDto.NodeId);
|
||||
}
|
||||
|
||||
public void AddOrUpdateContentXml(IMedia content, Func<IMedia, XElement> xml)
|
||||
{
|
||||
_contentXmlRepository.AddOrUpdate(new ContentXmlEntity<IMedia>(content, xml));
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
return repository.GetByQuery(QueryFactory.Create<IDataTypeDefinition>().Where(x => x.Name == name)).FirstOrDefault();
|
||||
return repository.GetByQuery(repository.Query.Where(x => x.Name == name)).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,24 +145,12 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = QueryFactory.Create<IDataTypeDefinition>().Where(x => x.Key == id);
|
||||
var query = repository.Query.Where(x => x.Key == id);
|
||||
var definitions = repository.GetByQuery(query);
|
||||
return definitions.FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a <see cref="IDataTypeDefinition"/> by its control Id
|
||||
/// </summary>
|
||||
/// <param name="id">Id of the DataType control</param>
|
||||
/// <returns>Collection of <see cref="IDataTypeDefinition"/> objects with a matching contorl id</returns>
|
||||
[Obsolete("Property editor's are defined by a string alias from version 7 onwards, use the overload GetDataTypeDefinitionByPropertyEditorAlias instead")]
|
||||
public IEnumerable<IDataTypeDefinition> GetDataTypeDefinitionByControlId(Guid id)
|
||||
{
|
||||
var alias = LegacyPropertyEditorIdToAliasConverter.GetAliasFromLegacyId(id, true);
|
||||
return GetDataTypeDefinitionByPropertyEditorAlias(alias);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a <see cref="IDataTypeDefinition"/> by its control Id
|
||||
/// </summary>
|
||||
@@ -172,7 +160,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = QueryFactory.Create<IDataTypeDefinition>().Where(x => x.PropertyEditorAlias == propertyEditorAlias);
|
||||
var query = repository.Query.Where(x => x.PropertyEditorAlias == propertyEditorAlias);
|
||||
var definitions = repository.GetByQuery(query);
|
||||
return definitions;
|
||||
}
|
||||
|
||||
@@ -77,14 +77,6 @@ namespace Umbraco.Core.Services
|
||||
/// <param name="userId">Id of the user issueing the deletion</param>
|
||||
void Delete(IDataTypeDefinition dataTypeDefinition, int userId = 0);
|
||||
|
||||
/// <summary>
|
||||
/// Gets a <see cref="IDataTypeDefinition"/> by its control Id
|
||||
/// </summary>
|
||||
/// <param name="id">Id of the DataType control</param>
|
||||
/// <returns><see cref="IDataTypeDefinition"/></returns>
|
||||
[Obsolete("Property editor's are defined by a string alias from version 7 onwards, use the overload GetDataTypeDefinitionByPropertyEditorAlias instead")]
|
||||
IEnumerable<IDataTypeDefinition> GetDataTypeDefinitionByControlId(Guid id);
|
||||
|
||||
/// <summary>
|
||||
/// Gets a <see cref="IDataTypeDefinition"/> by its control Id
|
||||
/// </summary>
|
||||
|
||||
@@ -176,7 +176,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateDictionaryRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = QueryFactory.Create<IDictionaryItem>().Where(x => x.ParentId == null);
|
||||
var query = repository.Query.Create<IDictionaryItem>().Where(x => x.ParentId == null);
|
||||
var items = repository.GetByQuery(query);
|
||||
|
||||
return items;
|
||||
|
||||
@@ -19,6 +19,7 @@ using Umbraco.Core.Persistence.Repositories;
|
||||
using Umbraco.Core.Persistence.SqlSyntax;
|
||||
using Umbraco.Core.Persistence.UnitOfWork;
|
||||
using Umbraco.Core.Publishing;
|
||||
using Umbraco.Core.Strings;
|
||||
|
||||
namespace Umbraco.Core.Services
|
||||
{
|
||||
@@ -35,14 +36,16 @@ namespace Umbraco.Core.Services
|
||||
private readonly EntityXmlSerializer _entitySerializer = new EntityXmlSerializer();
|
||||
private readonly IDataTypeService _dataTypeService;
|
||||
private readonly IUserService _userService;
|
||||
|
||||
public MediaService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IEventMessagesFactory eventMessagesFactory, IDataTypeService dataTypeService, IUserService userService)
|
||||
private readonly IEnumerable<IUrlSegmentProvider> _urlSegmentProviders;
|
||||
|
||||
public MediaService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IEventMessagesFactory eventMessagesFactory, IDataTypeService dataTypeService, IUserService userService, IEnumerable<IUrlSegmentProvider> urlSegmentProviders)
|
||||
: base(provider, repositoryFactory, logger, eventMessagesFactory)
|
||||
{
|
||||
if (dataTypeService == null) throw new ArgumentNullException("dataTypeService");
|
||||
if (userService == null) throw new ArgumentNullException("userService");
|
||||
_dataTypeService = dataTypeService;
|
||||
_userService = userService;
|
||||
_urlSegmentProviders = urlSegmentProviders;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -156,11 +159,11 @@ namespace Umbraco.Core.Services
|
||||
media.CreatorId = userId;
|
||||
repository.AddOrUpdate(media);
|
||||
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoConfig.For.UmbracoSettings().Content.GlobalPreviewStorageEnabled)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
}
|
||||
|
||||
uow.Commit();
|
||||
@@ -214,11 +217,11 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
media.CreatorId = userId;
|
||||
repository.AddOrUpdate(media);
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoConfig.For.UmbracoSettings().Content.GlobalPreviewStorageEnabled)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
}
|
||||
|
||||
uow.Commit();
|
||||
@@ -298,7 +301,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = Query<IMedia>.Builder.Where(x => x.Key == key);
|
||||
var query = repository.Query.Where(x => x.Key == key);
|
||||
var contents = repository.GetByQuery(query);
|
||||
return contents.SingleOrDefault();
|
||||
}
|
||||
@@ -313,7 +316,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = Query<IMedia>.Builder.Where(x => x.Level == level && !x.Path.StartsWith("-21"));
|
||||
var query = repository.Query.Where(x => x.Level == level && !x.Path.StartsWith("-21"));
|
||||
var contents = repository.GetByQuery(query);
|
||||
|
||||
return contents;
|
||||
@@ -385,7 +388,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(uow))
|
||||
{
|
||||
var query = Query<IMedia>.Builder.Where(x => x.ParentId == id);
|
||||
var query = repository.Query.Where(x => x.ParentId == id);
|
||||
var medias = repository.GetByQuery(query);
|
||||
|
||||
return medias;
|
||||
@@ -401,7 +404,7 @@ namespace Umbraco.Core.Services
|
||||
Mandate.ParameterCondition(pageSize > 0, "pageSize");
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = Query<IMedia>.Builder;
|
||||
var query = repository.Query;
|
||||
query.Where(x => x.ParentId == id);
|
||||
|
||||
long total;
|
||||
@@ -430,7 +433,7 @@ namespace Umbraco.Core.Services
|
||||
Mandate.ParameterCondition(pageSize > 0, "pageSize");
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = Query<IMedia>.Builder;
|
||||
var query = repository.Query;
|
||||
query.Where(x => x.ParentId == id);
|
||||
|
||||
var medias = repository.GetPagedResultsByQuery(query, pageIndex, pageSize, out totalChildren, orderBy, orderDirection, filter);
|
||||
@@ -448,7 +451,7 @@ namespace Umbraco.Core.Services
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
|
||||
var query = Query<IMedia>.Builder;
|
||||
var query = repository.Query;
|
||||
//if the id is -1, then just get all
|
||||
if (id != -1)
|
||||
{
|
||||
@@ -479,7 +482,7 @@ namespace Umbraco.Core.Services
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
|
||||
var query = Query<IMedia>.Builder;
|
||||
var query = repository.Query;
|
||||
//if the id is -1, then just get all
|
||||
if (id != -1)
|
||||
{
|
||||
@@ -517,7 +520,7 @@ namespace Umbraco.Core.Services
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(uow))
|
||||
{
|
||||
var pathMatch = media.Path + ",";
|
||||
var query = Query<IMedia>.Builder.Where(x => x.Path.StartsWith(pathMatch) && x.Id != media.Id);
|
||||
var query = repository.Query.Where(x => x.Path.StartsWith(pathMatch) && x.Id != media.Id);
|
||||
var medias = repository.GetByQuery(query);
|
||||
|
||||
return medias;
|
||||
@@ -558,7 +561,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(uow))
|
||||
{
|
||||
var query = Query<IMedia>.Builder.Where(x => x.ContentTypeId == id);
|
||||
var query = repository.Query.Where(x => x.ContentTypeId == id);
|
||||
var medias = repository.GetByQuery(query);
|
||||
|
||||
return medias;
|
||||
@@ -574,7 +577,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(uow))
|
||||
{
|
||||
var query = Query<IMedia>.Builder.Where(x => x.ParentId == -1);
|
||||
var query = repository.Query.Where(x => x.ParentId == -1);
|
||||
var medias = repository.GetByQuery(query);
|
||||
|
||||
return medias;
|
||||
@@ -590,7 +593,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(uow))
|
||||
{
|
||||
var query = Query<IMedia>.Builder.Where(x => x.Path.Contains("-21"));
|
||||
var query = repository.Query.Where(x => x.Path.Contains("-21"));
|
||||
var medias = repository.GetByQuery(query);
|
||||
|
||||
return medias;
|
||||
@@ -604,40 +607,9 @@ namespace Umbraco.Core.Services
|
||||
/// <returns><see cref="IMedia"/></returns>
|
||||
public IMedia GetMediaByPath(string mediaPath)
|
||||
{
|
||||
var umbracoFileValue = mediaPath;
|
||||
const string Pattern = ".*[_][0-9]+[x][0-9]+[.].*";
|
||||
var isResized = Regex.IsMatch(mediaPath, Pattern);
|
||||
|
||||
// If the image has been resized we strip the "_403x328" of the original "/media/1024/koala_403x328.jpg" url.
|
||||
if (isResized)
|
||||
using (var repo = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var underscoreIndex = mediaPath.LastIndexOf('_');
|
||||
var dotIndex = mediaPath.LastIndexOf('.');
|
||||
umbracoFileValue = string.Concat(mediaPath.Substring(0, underscoreIndex), mediaPath.Substring(dotIndex));
|
||||
}
|
||||
|
||||
Func<string, Sql> createSql = url => new Sql().Select("*")
|
||||
.From<PropertyDataDto>()
|
||||
.InnerJoin<PropertyTypeDto>()
|
||||
.On<PropertyDataDto, PropertyTypeDto>(left => left.PropertyTypeId, right => right.Id)
|
||||
.Where<PropertyTypeDto>(x => x.Alias == "umbracoFile")
|
||||
.Where<PropertyDataDto>(x => x.VarChar == url);
|
||||
|
||||
var sql = createSql(umbracoFileValue);
|
||||
|
||||
using (var uow = UowProvider.GetUnitOfWork())
|
||||
{
|
||||
var propertyDataDto = uow.Database.Fetch<PropertyDataDto, PropertyTypeDto>(sql).FirstOrDefault();
|
||||
|
||||
// If the stripped-down url returns null, we try again with the original url.
|
||||
// Previously, the function would fail on e.g. "my_x_image.jpg"
|
||||
if (propertyDataDto == null)
|
||||
{
|
||||
sql = createSql(mediaPath);
|
||||
propertyDataDto = uow.Database.Fetch<PropertyDataDto, PropertyTypeDto>(sql).FirstOrDefault();
|
||||
}
|
||||
|
||||
return propertyDataDto == null ? null : GetById(propertyDataDto.NodeId);
|
||||
return repo.GetMediaByPath(mediaPath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -650,7 +622,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = Query<IMedia>.Builder.Where(x => x.ParentId == id);
|
||||
var query = repository.Query.Where(x => x.ParentId == id);
|
||||
int count = repository.Count(query);
|
||||
return count > 0;
|
||||
}
|
||||
@@ -801,11 +773,11 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
media.CreatorId = userId;
|
||||
repository.AddOrUpdate(media);
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoConfig.For.UmbracoSettings().Content.GlobalPreviewStorageEnabled)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
}
|
||||
|
||||
uow.Commit();
|
||||
@@ -847,11 +819,11 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
media.CreatorId = userId;
|
||||
repository.AddOrUpdate(media);
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoConfig.For.UmbracoSettings().Content.GlobalPreviewStorageEnabled)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -922,7 +894,7 @@ namespace Umbraco.Core.Services
|
||||
//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
|
||||
//Dbl.check+test that the ContentType's Id is removed from the ContentType2ContentType table
|
||||
var query = Query<IMedia>.Builder.Where(x => x.ContentTypeId == mediaTypeId);
|
||||
var query = repository.Query.Where(x => x.ContentTypeId == mediaTypeId);
|
||||
var contents = repository.GetByQuery(query).ToArray();
|
||||
|
||||
if (Deleting.IsRaisedEventCancelled(new DeleteEventArgs<IMedia>(contents), this))
|
||||
@@ -932,7 +904,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
//Look for children of current content and move that to trash before the current content is deleted
|
||||
var c = content;
|
||||
var childQuery = Query<IMedia>.Builder.Where(x => x.Path.StartsWith(c.Path));
|
||||
var childQuery = repository.Query.Where(x => x.Path.StartsWith(c.Path));
|
||||
var children = repository.GetByQuery(childQuery);
|
||||
|
||||
foreach (var child in children)
|
||||
@@ -1141,11 +1113,11 @@ namespace Umbraco.Core.Services
|
||||
i++;
|
||||
|
||||
repository.AddOrUpdate(media);
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoConfig.For.UmbracoSettings().Content.GlobalPreviewStorageEnabled)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, m));
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, m));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1173,7 +1145,7 @@ namespace Umbraco.Core.Services
|
||||
using (var repository = RepositoryFactory.CreateMediaRepository(uow))
|
||||
{
|
||||
repository.RebuildXmlStructures(
|
||||
media => _entitySerializer.Serialize(this, _dataTypeService, _userService, media),
|
||||
media => _entitySerializer.Serialize(this, _dataTypeService, _userService, _urlSegmentProviders, media),
|
||||
contentTypeIds: contentTypeIds.Length == 0 ? null : contentTypeIds);
|
||||
}
|
||||
|
||||
@@ -1229,7 +1201,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMediaTypeRepository(uow))
|
||||
{
|
||||
var query = Query<IMediaType>.Builder.Where(x => x.Alias == mediaTypeAlias);
|
||||
var query = repository.QueryFactory.Create<IMediaType>().Where(x => x.Alias == mediaTypeAlias);
|
||||
var mediaTypes = repository.GetByQuery(query);
|
||||
|
||||
if (mediaTypes.Any() == false)
|
||||
|
||||
@@ -151,7 +151,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = Query<IMember>.Builder.Where(x => x.Key == id);
|
||||
var query = repository.Query.Where(x => x.Key == id);
|
||||
var member = repository.GetByQuery(query).FirstOrDefault();
|
||||
return member;
|
||||
}
|
||||
@@ -166,7 +166,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = Query<IMember>.Builder.Where(x => x.ContentTypeAlias == memberTypeAlias);
|
||||
var query = repository.Query.Where(x => x.ContentTypeAlias == memberTypeAlias);
|
||||
var members = repository.GetByQuery(query);
|
||||
return members;
|
||||
}
|
||||
@@ -182,7 +182,7 @@ namespace Umbraco.Core.Services
|
||||
using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
repository.Get(memberTypeId);
|
||||
var query = Query<IMember>.Builder.Where(x => x.ContentTypeId == memberTypeId);
|
||||
var query = repository.Query.Where(x => x.ContentTypeId == memberTypeId);
|
||||
var members = repository.GetByQuery(query);
|
||||
return members;
|
||||
}
|
||||
@@ -227,7 +227,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
var repository = RepositoryFactory.CreateMemberRepository(uow);
|
||||
//TODO: What about content that has the contenttype as part of its composition?
|
||||
var query = Query<IMember>.Builder.Where(x => x.ContentTypeId == memberTypeId);
|
||||
var query = repository.Query.Where(x => x.ContentTypeId == memberTypeId);
|
||||
var members = repository.GetByQuery(query).ToArray();
|
||||
|
||||
if (Deleting.IsRaisedEventCancelled(new DeleteEventArgs<IMember>(members), this))
|
||||
@@ -266,7 +266,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMemberRepository(uow))
|
||||
{
|
||||
var query = new Query<IMember>();
|
||||
var query = repository.Query;
|
||||
|
||||
switch (matchType)
|
||||
{
|
||||
@@ -317,7 +317,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMemberRepository(uow))
|
||||
{
|
||||
var query = new Query<IMember>();
|
||||
var query = repository.Query;
|
||||
|
||||
switch (matchType)
|
||||
{
|
||||
@@ -368,7 +368,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMemberRepository(uow))
|
||||
{
|
||||
var query = new Query<IMember>();
|
||||
var query = repository.Query;
|
||||
|
||||
switch (matchType)
|
||||
{
|
||||
@@ -412,7 +412,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
case StringPropertyMatchType.Exact:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
(((Member)x).LongStringPropertyValue.SqlEquals(value, TextColumnType.NText) ||
|
||||
@@ -420,7 +420,7 @@ namespace Umbraco.Core.Services
|
||||
break;
|
||||
case StringPropertyMatchType.Contains:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
(((Member)x).LongStringPropertyValue.SqlContains(value, TextColumnType.NText) ||
|
||||
@@ -428,7 +428,7 @@ namespace Umbraco.Core.Services
|
||||
break;
|
||||
case StringPropertyMatchType.StartsWith:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
(((Member)x).LongStringPropertyValue.SqlStartsWith(value, TextColumnType.NText) ||
|
||||
@@ -436,7 +436,7 @@ namespace Umbraco.Core.Services
|
||||
break;
|
||||
case StringPropertyMatchType.EndsWith:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
(((Member)x).LongStringPropertyValue.SqlEndsWith(value, TextColumnType.NText) ||
|
||||
@@ -468,35 +468,35 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
case ValuePropertyMatchType.Exact:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).IntegerPropertyValue == value);
|
||||
break;
|
||||
case ValuePropertyMatchType.GreaterThan:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).IntegerPropertyValue > value);
|
||||
break;
|
||||
case ValuePropertyMatchType.LessThan:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).IntegerPropertyValue < value);
|
||||
break;
|
||||
case ValuePropertyMatchType.GreaterThanOrEqualTo:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).IntegerPropertyValue >= value);
|
||||
break;
|
||||
case ValuePropertyMatchType.LessThanOrEqualTo:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).IntegerPropertyValue <= value);
|
||||
@@ -521,7 +521,7 @@ namespace Umbraco.Core.Services
|
||||
using (var repository = RepositoryFactory.CreateMemberRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).BoolPropertyValue == value);
|
||||
@@ -548,35 +548,35 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
case ValuePropertyMatchType.Exact:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).DateTimePropertyValue == value);
|
||||
break;
|
||||
case ValuePropertyMatchType.GreaterThan:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).DateTimePropertyValue > value);
|
||||
break;
|
||||
case ValuePropertyMatchType.LessThan:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).DateTimePropertyValue < value);
|
||||
break;
|
||||
case ValuePropertyMatchType.GreaterThanOrEqualTo:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).DateTimePropertyValue >= value);
|
||||
break;
|
||||
case ValuePropertyMatchType.LessThanOrEqualTo:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == propertyTypeAlias &&
|
||||
((Member)x).DateTimePropertyValue <= value);
|
||||
@@ -635,26 +635,26 @@ namespace Umbraco.Core.Services
|
||||
switch (countType)
|
||||
{
|
||||
case MemberCountType.All:
|
||||
query = new Query<IMember>();
|
||||
query = repository.Query;
|
||||
return repository.Count(query);
|
||||
case MemberCountType.Online:
|
||||
var fromDate = DateTime.Now.AddMinutes(-Membership.UserIsOnlineTimeWindow);
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == Constants.Conventions.Member.LastLoginDate &&
|
||||
((Member)x).DateTimePropertyValue > fromDate);
|
||||
return repository.GetCountByQuery(query);
|
||||
case MemberCountType.LockedOut:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == Constants.Conventions.Member.IsLockedOut &&
|
||||
((Member)x).BoolPropertyValue == true);
|
||||
return repository.GetCountByQuery(query);
|
||||
case MemberCountType.Approved:
|
||||
query =
|
||||
Query<IMember>.Builder.Where(
|
||||
repository.Query.Where(
|
||||
x =>
|
||||
((Member)x).PropertyTypeAlias == Constants.Conventions.Member.IsApproved &&
|
||||
((Member)x).BoolPropertyValue == true);
|
||||
@@ -713,7 +713,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
return repository.GetPagedResultsByQuery(null, pageIndex, pageSize, out totalRecords, orderBy, orderDirection, filter);
|
||||
}
|
||||
var query = new Query<IMember>().Where(x => x.ContentTypeAlias == memberTypeAlias);
|
||||
var query = repository.Query.Where(x => x.ContentTypeAlias == memberTypeAlias);
|
||||
return repository.GetPagedResultsByQuery(query, pageIndex, pageSize, out totalRecords, orderBy, orderDirection, filter);
|
||||
}
|
||||
}
|
||||
@@ -905,7 +905,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMemberRepository(uow))
|
||||
{
|
||||
var query = Query<IMember>.Builder.Where(x => x.Email.Equals(email));
|
||||
var query = repository.Query.Where(x => x.Email.Equals(email));
|
||||
var member = repository.GetByQuery(query).FirstOrDefault();
|
||||
|
||||
return member;
|
||||
@@ -926,7 +926,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMemberRepository(uow))
|
||||
{
|
||||
var query = Query<IMember>.Builder.Where(x => x.Username.Equals(username));
|
||||
var query = repository.Query.Where(x => x.Username.Equals(username));
|
||||
var member = repository.GetByQuery(query).FirstOrDefault();
|
||||
|
||||
return member;
|
||||
@@ -1107,7 +1107,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repository = RepositoryFactory.CreateMemberGroupRepository(uow))
|
||||
{
|
||||
var qry = new Query<IMemberGroup>().Where(g => g.Name == roleName);
|
||||
var qry = repository.QueryFactory.Create<IMemberGroup>().Where(g => g.Name == roleName);
|
||||
var found = repository.GetByQuery(qry).ToArray();
|
||||
|
||||
foreach (var memberGroup in found)
|
||||
@@ -1182,7 +1182,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = RepositoryFactory.CreateMemberTypeRepository(UowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = Query<IMemberType>.Builder.Where(x => x.Alias == memberTypeAlias);
|
||||
var query = repository.QueryFactory.Create<IMemberType>().Where(x => x.Alias == memberTypeAlias);
|
||||
var types = repository.GetByQuery(query);
|
||||
|
||||
if (types.Any() == false)
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace Umbraco.Core.Services
|
||||
var uow = UowProvider.GetUnitOfWork();
|
||||
using (var repo = RepositoryFactory.CreateMigrationEntryRepository(uow))
|
||||
{
|
||||
var query = Query<IMigrationEntry>.Builder
|
||||
var query = repo.Query
|
||||
.Where(x => x.MigrationName.ToUpper() == migrationName.ToUpper());
|
||||
return repo.GetByQuery(query);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ using Umbraco.Core.Packaging.Models;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.Querying;
|
||||
using Umbraco.Core.Persistence.UnitOfWork;
|
||||
using Umbraco.Core.Strings;
|
||||
|
||||
namespace Umbraco.Core.Services
|
||||
{
|
||||
@@ -36,6 +37,7 @@ namespace Umbraco.Core.Services
|
||||
private readonly ILocalizationService _localizationService;
|
||||
private readonly RepositoryFactory _repositoryFactory;
|
||||
private readonly IDatabaseUnitOfWorkProvider _uowProvider;
|
||||
private readonly IEnumerable<IUrlSegmentProvider> _urlSegmentProviders;
|
||||
private Dictionary<string, IContentType> _importedContentTypes;
|
||||
private IPackageInstallation _packageInstallation;
|
||||
private readonly IUserService _userService;
|
||||
@@ -52,7 +54,8 @@ namespace Umbraco.Core.Services
|
||||
ILocalizationService localizationService,
|
||||
IUserService userService,
|
||||
RepositoryFactory repositoryFactory,
|
||||
IDatabaseUnitOfWorkProvider uowProvider)
|
||||
IDatabaseUnitOfWorkProvider uowProvider,
|
||||
IEnumerable<IUrlSegmentProvider> urlSegmentProviders)
|
||||
{
|
||||
_logger = logger;
|
||||
_contentService = contentService;
|
||||
@@ -64,6 +67,7 @@ namespace Umbraco.Core.Services
|
||||
_localizationService = localizationService;
|
||||
_repositoryFactory = repositoryFactory;
|
||||
_uowProvider = uowProvider;
|
||||
_urlSegmentProviders = urlSegmentProviders;
|
||||
_userService = userService;
|
||||
_importedContentTypes = new Dictionary<string, IContentType>();
|
||||
}
|
||||
@@ -79,7 +83,7 @@ namespace Umbraco.Core.Services
|
||||
/// <returns><see cref="XElement"/> containing the xml representation of the Content object</returns>
|
||||
public XElement Export(IContent content, bool deep = false, bool raiseEvents = true)
|
||||
{
|
||||
var nodeName = UmbracoConfig.For.UmbracoSettings().Content.UseLegacyXmlSchema ? "node" : content.ContentType.Alias.ToSafeAliasWithForcingCheck();
|
||||
var nodeName = content.ContentType.Alias.ToSafeAliasWithForcingCheck();
|
||||
|
||||
if (raiseEvents)
|
||||
{
|
||||
@@ -88,7 +92,7 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
|
||||
var exporter = new EntityXmlSerializer();
|
||||
var xml = exporter.Serialize(_contentService, _dataTypeService, _userService, content, deep);
|
||||
var xml = exporter.Serialize(_contentService, _dataTypeService, _userService, _urlSegmentProviders, content, deep);
|
||||
|
||||
if (raiseEvents)
|
||||
ExportedContent.RaiseEvent(new ExportEventArgs<IContent>(content, xml, false), this);
|
||||
@@ -600,9 +604,7 @@ namespace Umbraco.Core.Services
|
||||
//If no DataTypeDefinition with the guid from the xml wasn't found OR the ControlId on the DataTypeDefinition didn't match the DataType Id
|
||||
//We look up a DataTypeDefinition that matches
|
||||
|
||||
//we'll check if it is a GUID (legacy id for a property editor)
|
||||
var legacyPropertyEditorId = Guid.Empty;
|
||||
Guid.TryParse(property.Element("Type").Value, out legacyPropertyEditorId);
|
||||
|
||||
//get the alias as a string for use below
|
||||
var propertyEditorAlias = property.Element("Type").Value.Trim();
|
||||
|
||||
@@ -611,17 +613,7 @@ namespace Umbraco.Core.Services
|
||||
|
||||
if (dataTypeDefinition == null)
|
||||
{
|
||||
var dataTypeDefinitions = legacyPropertyEditorId != Guid.Empty
|
||||
? _dataTypeService.GetDataTypeDefinitionByControlId(legacyPropertyEditorId)
|
||||
: _dataTypeService.GetDataTypeDefinitionByPropertyEditorAlias(propertyEditorAlias);
|
||||
if (dataTypeDefinitions != null && dataTypeDefinitions.Any())
|
||||
{
|
||||
dataTypeDefinition = dataTypeDefinitions.First();
|
||||
}
|
||||
}
|
||||
else if (legacyPropertyEditorId != Guid.Empty && dataTypeDefinition.ControlId != legacyPropertyEditorId)
|
||||
{
|
||||
var dataTypeDefinitions = _dataTypeService.GetDataTypeDefinitionByControlId(legacyPropertyEditorId);
|
||||
var dataTypeDefinitions = _dataTypeService.GetDataTypeDefinitionByPropertyEditorAlias(propertyEditorAlias);
|
||||
if (dataTypeDefinitions != null && dataTypeDefinitions.Any())
|
||||
{
|
||||
dataTypeDefinition = dataTypeDefinitions.First();
|
||||
@@ -709,7 +701,7 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
using (var repository = _repositoryFactory.CreateContentTypeRepository(_uowProvider.GetUnitOfWork()))
|
||||
{
|
||||
var query = Query<IContentType>.Builder.Where(x => x.Alias == contentTypeAlias);
|
||||
var query = repository.Query.Where(x => x.Alias == contentTypeAlias);
|
||||
var types = repository.GetByQuery(query);
|
||||
|
||||
if (!types.Any())
|
||||
@@ -799,10 +791,7 @@ namespace Umbraco.Core.Services
|
||||
foreach (var dataTypeElement in dataTypeElements)
|
||||
{
|
||||
var dataTypeDefinitionName = dataTypeElement.Attribute("Name").Value;
|
||||
|
||||
var legacyPropertyEditorId = Guid.Empty;
|
||||
Guid.TryParse(dataTypeElement.Attribute("Id").Value, out legacyPropertyEditorId);
|
||||
|
||||
|
||||
var dataTypeDefinitionId = new Guid(dataTypeElement.Attribute("Definition").Value);
|
||||
var databaseTypeAttribute = dataTypeElement.Attribute("DatabaseType");
|
||||
|
||||
@@ -814,28 +803,14 @@ namespace Umbraco.Core.Services
|
||||
? databaseTypeAttribute.Value.EnumParse<DataTypeDatabaseType>(true)
|
||||
: DataTypeDatabaseType.Ntext;
|
||||
|
||||
//check if the Id was a GUID, that means it is referenced using the legacy property editor GUID id
|
||||
if (legacyPropertyEditorId != Guid.Empty)
|
||||
//the Id field is actually the string property editor Alias
|
||||
var dataTypeDefinition = new DataTypeDefinition(dataTypeElement.Attribute("Id").Value.Trim())
|
||||
{
|
||||
var dataTypeDefinition = new DataTypeDefinition(-1, legacyPropertyEditorId)
|
||||
{
|
||||
Key = dataTypeDefinitionId,
|
||||
Name = dataTypeDefinitionName,
|
||||
DatabaseType = databaseType
|
||||
};
|
||||
dataTypes.Add(dataTypeDefinitionName, dataTypeDefinition);
|
||||
}
|
||||
else
|
||||
{
|
||||
//the Id field is actually the string property editor Alias
|
||||
var dataTypeDefinition = new DataTypeDefinition(dataTypeElement.Attribute("Id").Value.Trim())
|
||||
{
|
||||
Key = dataTypeDefinitionId,
|
||||
Name = dataTypeDefinitionName,
|
||||
DatabaseType = databaseType
|
||||
};
|
||||
dataTypes.Add(dataTypeDefinitionName, dataTypeDefinition);
|
||||
}
|
||||
Key = dataTypeDefinitionId,
|
||||
Name = dataTypeDefinitionName,
|
||||
DatabaseType = databaseType
|
||||
};
|
||||
dataTypes.Add(dataTypeDefinitionName, dataTypeDefinition);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1294,7 +1269,7 @@ namespace Umbraco.Core.Services
|
||||
/// <returns><see cref="XElement"/> containing the xml representation of the Media object</returns>
|
||||
public XElement Export(IMedia media, bool deep = false, bool raiseEvents = true)
|
||||
{
|
||||
var nodeName = UmbracoConfig.For.UmbracoSettings().Content.UseLegacyXmlSchema ? "node" : media.ContentType.Alias.ToSafeAliasWithForcingCheck();
|
||||
var nodeName = media.ContentType.Alias.ToSafeAliasWithForcingCheck();
|
||||
|
||||
if (raiseEvents)
|
||||
{
|
||||
@@ -1303,7 +1278,7 @@ namespace Umbraco.Core.Services
|
||||
}
|
||||
|
||||
var exporter = new EntityXmlSerializer();
|
||||
var xml = exporter.Serialize(_mediaService, _dataTypeService, _userService, media, deep);
|
||||
var xml = exporter.Serialize(_mediaService, _dataTypeService, _userService, _urlSegmentProviders, media, deep);
|
||||
|
||||
if (raiseEvents)
|
||||
ExportedMedia.RaiseEvent(new ExportEventArgs<IMedia>(media, xml, false), this);
|
||||
|
||||
@@ -256,7 +256,7 @@ namespace Umbraco.Core.Services
|
||||
|
||||
|
||||
if (_notificationService == null)
|
||||
_notificationService = new Lazy<INotificationService>(() => new NotificationService(provider, _userService.Value, _contentService.Value, logger));
|
||||
_notificationService = new Lazy<INotificationService>(() => new NotificationService(provider, _userService.Value, _contentService.Value, repositoryFactory, logger));
|
||||
|
||||
if (_serverRegistrationService == null)
|
||||
_serverRegistrationService = new Lazy<IServerRegistrationService>(() => new ServerRegistrationService(provider, repositoryFactory, logger, eventMessagesFactory));
|
||||
@@ -268,10 +268,10 @@ namespace Umbraco.Core.Services
|
||||
_memberService = new Lazy<IMemberService>(() => new MemberService(provider, repositoryFactory, logger, eventMessagesFactory, _memberGroupService.Value, _dataTypeService.Value));
|
||||
|
||||
if (_contentService == null)
|
||||
_contentService = new Lazy<IContentService>(() => new ContentService(provider, repositoryFactory, logger, eventMessagesFactory, publishingStrategy, _dataTypeService.Value, _userService.Value));
|
||||
_contentService = new Lazy<IContentService>(() => new ContentService(provider, repositoryFactory, logger, eventMessagesFactory, publishingStrategy, _dataTypeService.Value, _userService.Value, urlSegmentProviders));
|
||||
|
||||
if (_mediaService == null)
|
||||
_mediaService = new Lazy<IMediaService>(() => new MediaService(provider, repositoryFactory, logger, eventMessagesFactory, _dataTypeService.Value, _userService.Value));
|
||||
_mediaService = new Lazy<IMediaService>(() => new MediaService(provider, repositoryFactory, logger, eventMessagesFactory, _dataTypeService.Value, _userService.Value, urlSegmentProviders));
|
||||
|
||||
if (_contentTypeService == null)
|
||||
_contentTypeService = new Lazy<IContentTypeService>(() => new ContentTypeService(provider, repositoryFactory, logger, eventMessagesFactory, _contentService.Value, _mediaService.Value));
|
||||
@@ -286,7 +286,7 @@ namespace Umbraco.Core.Services
|
||||
_localizationService = new Lazy<ILocalizationService>(() => new LocalizationService(provider, repositoryFactory, logger, eventMessagesFactory));
|
||||
|
||||
if (_packagingService == null)
|
||||
_packagingService = new Lazy<IPackagingService>(() => new PackagingService(logger, _contentService.Value, _contentTypeService.Value, _mediaService.Value, _macroService.Value, _dataTypeService.Value, _fileService.Value, _localizationService.Value, _userService.Value, repositoryFactory, provider));
|
||||
_packagingService = new Lazy<IPackagingService>(() => new PackagingService(logger, _contentService.Value, _contentTypeService.Value, _mediaService.Value, _macroService.Value, _dataTypeService.Value, _fileService.Value, _localizationService.Value, _userService.Value, repositoryFactory, provider, urlSegmentProviders));
|
||||
|
||||
if (_entityService == null)
|
||||
_entityService = new Lazy<IEntityService>(() => new EntityService(
|
||||
|
||||
@@ -221,8 +221,8 @@ namespace Umbraco.Core.Sync
|
||||
|
||||
var sql = new Sql().Select("*")
|
||||
.From<CacheInstructionDto>(_appContext.DatabaseContext.SqlSyntax)
|
||||
.Where<CacheInstructionDto>(dto => dto.Id > _lastId)
|
||||
.OrderBy<CacheInstructionDto>(dto => dto.Id, _appContext.DatabaseContext.SqlSyntax);
|
||||
.Where<CacheInstructionDto>(_appContext.DatabaseContext.SqlSyntax, dto => dto.Id > _lastId)
|
||||
.OrderBy<CacheInstructionDto>(_appContext.DatabaseContext.SqlSyntax, dto => dto.Id);
|
||||
|
||||
var dtos = _appContext.DatabaseContext.Database.Fetch<CacheInstructionDto>(sql);
|
||||
if (dtos.Count <= 0) return;
|
||||
@@ -295,7 +295,7 @@ namespace Umbraco.Core.Sync
|
||||
{
|
||||
var sql = new Sql().Select("*")
|
||||
.From<CacheInstructionDto>(_appContext.DatabaseContext.SqlSyntax)
|
||||
.Where<CacheInstructionDto>(dto => dto.Id == _lastId);
|
||||
.Where<CacheInstructionDto>(_appContext.DatabaseContext.SqlSyntax, dto => dto.Id == _lastId);
|
||||
|
||||
var dtos = _appContext.DatabaseContext.Database.Fetch<CacheInstructionDto>(sql);
|
||||
if (dtos.Count == 0)
|
||||
|
||||
@@ -378,7 +378,6 @@ namespace Umbraco.Tests.Mvc
|
||||
ServiceContext GetServiceContext()
|
||||
{
|
||||
return MockHelper.GetMockedServiceContext();
|
||||
new TransientMessagesFactory(),
|
||||
}
|
||||
|
||||
ViewContext GetViewContext()
|
||||
|
||||
@@ -8,11 +8,9 @@ using System.Web;
|
||||
using System.Web.Configuration;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Dispatcher;
|
||||
using System.Web.Mvc;
|
||||
|
||||
using System.Web.Routing;
|
||||
using ClientDependency.Core.Config;
|
||||
using Examine;
|
||||
using Examine.Config;
|
||||
|
||||
using umbraco;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
@@ -82,26 +80,6 @@ namespace Umbraco.Web
|
||||
_isForTesting = isForTesting;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates and returns the service context for the app
|
||||
/// </summary>
|
||||
/// <param name="dbContext"></param>
|
||||
/// <param name="dbFactory"></param>
|
||||
/// <returns></returns>
|
||||
protected override ServiceContext CreateServiceContext(DatabaseContext dbContext, IDatabaseFactory dbFactory)
|
||||
{
|
||||
//use a request based messaging factory
|
||||
var evtMsgs = new RequestLifespanMessagesFactory(new SingletonUmbracoContextAccessor());
|
||||
return new ServiceContext(
|
||||
new RepositoryFactory(ApplicationCache, ProfilingLogger.Logger, dbContext.SqlSyntax, UmbracoConfig.For.UmbracoSettings()),
|
||||
new PetaPocoUnitOfWorkProvider(dbFactory),
|
||||
new FileUnitOfWorkProvider(),
|
||||
new PublishingStrategy(evtMsgs, ProfilingLogger.Logger),
|
||||
ApplicationCache,
|
||||
ProfilingLogger.Logger,
|
||||
evtMsgs);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initialize objects before anything during the boot cycle happens
|
||||
/// </summary>
|
||||
@@ -174,6 +152,8 @@ namespace Umbraco.Web
|
||||
protected override IProfiler CreateProfiler()
|
||||
{
|
||||
return new WebProfiler();
|
||||
}
|
||||
|
||||
/// Ensure that the OnApplicationStarted methods of the IApplicationEvents are called
|
||||
/// </summary>
|
||||
/// <param name="afterComplete"></param>
|
||||
|
||||
@@ -265,10 +265,7 @@ namespace umbraco.cms.businesslogic
|
||||
{
|
||||
SqlHelper.ExecuteNonQuery("delete from cmsContentXml where nodeId = @nodeId", SqlHelper.CreateParameter("@nodeId", this.Id));
|
||||
}
|
||||
|
||||
|
||||
|
||||
x.Attributes.Append(XmlHelper.AddAttribute(xd, "key", this.UniqueId.ToString()));
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the current Content object, must be overridden in the child class.
|
||||
|
||||
@@ -916,9 +916,7 @@ namespace umbraco.cms.businesslogic.web
|
||||
: ApplicationContext.Current.Services.ContentService.GetDescendants(ContentEntity);
|
||||
|
||||
return descendants.Select(x => new Document(x.Id, true));
|
||||
}
|
||||
|
||||
x.Attributes.Append(addAttribute(xd, "key", UniqueId.ToString()));
|
||||
}
|
||||
|
||||
public override List<CMSPreviewNode> GetNodesForPreview(bool childrenOnly)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.31101.0
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.24720.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.Web.UI", "Umbraco.Web.UI\Umbraco.Web.UI.csproj", "{4C4C194C-B5E4-4991-8F87-4373E24CC19F}"
|
||||
EndProject
|
||||
|
||||
Reference in New Issue
Block a user