Fixes: U4-4754 Member and Media repositories need to generate preview xml when EnableGlobalPreviewStorage is true
This commit is contained in:
@@ -1083,7 +1083,7 @@ namespace Umbraco.Core.Configuration
|
||||
bool globalPreviewEnabled = false;
|
||||
string value = GetKey("/settings/content/GlobalPreviewStorageEnabled");
|
||||
if (bool.TryParse(value, out globalPreviewEnabled))
|
||||
return !globalPreviewEnabled;
|
||||
return globalPreviewEnabled;
|
||||
// Return default
|
||||
return false;
|
||||
}
|
||||
|
||||
21
src/Umbraco.Core/Models/ContentPreviewEntity.cs
Normal file
21
src/Umbraco.Core/Models/ContentPreviewEntity.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Umbraco.Core.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// Used content repository in order to add an entity to the persisted collection to be saved
|
||||
/// in a single transaction during saving an entity
|
||||
/// </summary>
|
||||
internal class ContentPreviewEntity<TContent> : ContentXmlEntity<TContent>
|
||||
where TContent : IContentBase
|
||||
{
|
||||
public ContentPreviewEntity(bool previewExists, TContent content, Func<TContent, XElement> xml)
|
||||
: base(previewExists, content, xml)
|
||||
{
|
||||
Version = content.Version;
|
||||
}
|
||||
|
||||
public Guid Version { get; private set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Xml.Linq;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Models.Rdbms;
|
||||
using Umbraco.Core.Persistence.Caching;
|
||||
using Umbraco.Core.Persistence.Querying;
|
||||
using Umbraco.Core.Persistence.UnitOfWork;
|
||||
|
||||
namespace Umbraco.Core.Persistence.Repositories
|
||||
{
|
||||
/// <summary>
|
||||
/// Private class to handle preview insert/update based on standard principles and units of work with transactions
|
||||
/// </summary>
|
||||
internal class ContentPreviewRepository<TContent> : PetaPocoRepositoryBase<int, ContentPreviewEntity<TContent>>
|
||||
where TContent : IContentBase
|
||||
{
|
||||
public ContentPreviewRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache)
|
||||
: base(work, cache)
|
||||
{
|
||||
}
|
||||
|
||||
#region Not implemented (don't need to for the purposes of this repo)
|
||||
protected override ContentPreviewEntity<TContent> PerformGet(int id)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override IEnumerable<ContentPreviewEntity<TContent>> PerformGetAll(params int[] ids)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override IEnumerable<ContentPreviewEntity<TContent>> PerformGetByQuery(IQuery<ContentPreviewEntity<TContent>> query)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override Sql GetBaseQuery(bool isCount)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override string GetBaseWhereClause()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override IEnumerable<string> GetDeleteClauses()
|
||||
{
|
||||
return new List<string>();
|
||||
}
|
||||
|
||||
protected override Guid NodeObjectTypeId
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
protected override void PersistDeletedItem(ContentPreviewEntity<TContent> entity)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
protected override void PersistNewItem(ContentPreviewEntity<TContent> entity)
|
||||
{
|
||||
if (entity.Content.HasIdentity == false)
|
||||
{
|
||||
throw new InvalidOperationException("Cannot insert a preview for a content item that has no identity");
|
||||
}
|
||||
|
||||
var previewPoco = new PreviewXmlDto
|
||||
{
|
||||
NodeId = entity.Id,
|
||||
Timestamp = DateTime.Now,
|
||||
VersionId = entity.Version,
|
||||
Xml = entity.Xml.ToString(SaveOptions.None)
|
||||
};
|
||||
|
||||
Database.Insert(previewPoco);
|
||||
}
|
||||
|
||||
protected override void PersistUpdatedItem(ContentPreviewEntity<TContent> entity)
|
||||
{
|
||||
if (entity.Content.HasIdentity == false)
|
||||
{
|
||||
throw new InvalidOperationException("Cannot update a preview for a content item that has no identity");
|
||||
}
|
||||
|
||||
var previewPoco = new PreviewXmlDto
|
||||
{
|
||||
NodeId = entity.Id,
|
||||
Timestamp = DateTime.Now,
|
||||
VersionId = entity.Version,
|
||||
Xml = entity.Xml.ToString(SaveOptions.None)
|
||||
};
|
||||
|
||||
Database.Update<PreviewXmlDto>(
|
||||
"SET xml = @Xml, timestamp = @Timestamp WHERE nodeId = @Id AND versionId = @Version",
|
||||
new
|
||||
{
|
||||
Xml = previewPoco.Xml,
|
||||
Timestamp = previewPoco.Timestamp,
|
||||
Id = previewPoco.NodeId,
|
||||
Version = previewPoco.VersionId
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
private readonly IContentTypeRepository _contentTypeRepository;
|
||||
private readonly ITemplateRepository _templateRepository;
|
||||
private readonly CacheHelper _cacheHelper;
|
||||
private readonly ContentPreviewRepository _contentPreviewRepository;
|
||||
private readonly ContentPreviewRepository<IContent> _contentPreviewRepository;
|
||||
private readonly ContentXmlRepository<IContent> _contentXmlRepository;
|
||||
|
||||
public ContentRepository(IDatabaseUnitOfWork work, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, CacheHelper cacheHelper)
|
||||
@@ -35,7 +35,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
_contentTypeRepository = contentTypeRepository;
|
||||
_templateRepository = templateRepository;
|
||||
_cacheHelper = cacheHelper;
|
||||
_contentPreviewRepository = new ContentPreviewRepository(work, NullCacheProvider.Current);
|
||||
_contentPreviewRepository = new ContentPreviewRepository<IContent>(work, NullCacheProvider.Current);
|
||||
_contentXmlRepository = new ContentXmlRepository<IContent>(work, NullCacheProvider.Current);
|
||||
|
||||
EnsureUniqueNaming = true;
|
||||
@@ -47,7 +47,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
_contentTypeRepository = contentTypeRepository;
|
||||
_templateRepository = templateRepository;
|
||||
_cacheHelper = cacheHelper;
|
||||
_contentPreviewRepository = new ContentPreviewRepository(work, NullCacheProvider.Current);
|
||||
_contentPreviewRepository = new ContentPreviewRepository<IContent>(work, NullCacheProvider.Current);
|
||||
_contentXmlRepository = new ContentXmlRepository<IContent>(work, NullCacheProvider.Current);
|
||||
|
||||
EnsureUniqueNaming = true;
|
||||
@@ -586,7 +586,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
Database.ExecuteScalar<int>("SELECT COUNT(nodeId) FROM cmsPreviewXml WHERE nodeId = @Id AND versionId = @Version",
|
||||
new { Id = content.Id, Version = content.Version }) != 0;
|
||||
|
||||
_contentPreviewRepository.AddOrUpdate(new ContentPreviewEntity(previewExists, content, xml));
|
||||
_contentPreviewRepository.AddOrUpdate(new ContentPreviewEntity<IContent>(previewExists, content, xml));
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -650,122 +650,5 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
return currentName;
|
||||
}
|
||||
|
||||
#region Private classes
|
||||
|
||||
/// <summary>
|
||||
/// Used content repository in order to add an entity to the persisted collection to be saved
|
||||
/// in a single transaction during saving an entity
|
||||
/// </summary>
|
||||
private class ContentPreviewEntity : ContentXmlEntity<IContent>
|
||||
{
|
||||
public ContentPreviewEntity(bool previewExists, IContent content, Func<IContent, XElement> xml)
|
||||
: base(previewExists, content, xml)
|
||||
{
|
||||
Version = content.Version;
|
||||
}
|
||||
|
||||
public Guid Version { get; private set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Private class to handle preview insert/update based on standard principles and units of work with transactions
|
||||
/// </summary>
|
||||
private class ContentPreviewRepository : PetaPocoRepositoryBase<int, ContentPreviewEntity>
|
||||
{
|
||||
public ContentPreviewRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache)
|
||||
: base(work, cache)
|
||||
{
|
||||
}
|
||||
|
||||
#region Not implemented (don't need to for the purposes of this repo)
|
||||
protected override ContentPreviewEntity PerformGet(int id)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override IEnumerable<ContentPreviewEntity> PerformGetAll(params int[] ids)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override IEnumerable<ContentPreviewEntity> PerformGetByQuery(IQuery<ContentPreviewEntity> query)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override Sql GetBaseQuery(bool isCount)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override string GetBaseWhereClause()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override IEnumerable<string> GetDeleteClauses()
|
||||
{
|
||||
return new List<string>();
|
||||
}
|
||||
|
||||
protected override Guid NodeObjectTypeId
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
protected override void PersistDeletedItem(ContentPreviewEntity entity)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
#endregion
|
||||
|
||||
protected override void PersistNewItem(ContentPreviewEntity entity)
|
||||
{
|
||||
if (entity.Content.HasIdentity == false)
|
||||
{
|
||||
throw new InvalidOperationException("Cannot insert a preview for a content item that has no identity");
|
||||
}
|
||||
|
||||
var previewPoco = new PreviewXmlDto
|
||||
{
|
||||
NodeId = entity.Id,
|
||||
Timestamp = DateTime.Now,
|
||||
VersionId = entity.Version,
|
||||
Xml = entity.Xml.ToString(SaveOptions.None)
|
||||
};
|
||||
|
||||
Database.Insert(previewPoco);
|
||||
}
|
||||
|
||||
protected override void PersistUpdatedItem(ContentPreviewEntity entity)
|
||||
{
|
||||
if (entity.Content.HasIdentity == false)
|
||||
{
|
||||
throw new InvalidOperationException("Cannot update a preview for a content item that has no identity");
|
||||
}
|
||||
|
||||
var previewPoco = new PreviewXmlDto
|
||||
{
|
||||
NodeId = entity.Id,
|
||||
Timestamp = DateTime.Now,
|
||||
VersionId = entity.Version,
|
||||
Xml = entity.Xml.ToString(SaveOptions.None)
|
||||
};
|
||||
|
||||
Database.Update<PreviewXmlDto>(
|
||||
"SET xml = @Xml, timestamp = @Timestamp WHERE nodeId = @Id AND versionId = @Version",
|
||||
new
|
||||
{
|
||||
Xml = previewPoco.Xml,
|
||||
Timestamp = previewPoco.Timestamp,
|
||||
Id = previewPoco.NodeId,
|
||||
Version = previewPoco.VersionId
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,5 +14,12 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// <param name="xml"></param>
|
||||
void AddOrUpdateContentXml(IMedia content, Func<IMedia, XElement> xml);
|
||||
|
||||
/// <summary>
|
||||
/// Used to add/update preview xml for the content item
|
||||
/// </summary>
|
||||
/// <param name="content"></param>
|
||||
/// <param name="xml"></param>
|
||||
void AddOrUpdatePreviewXml(IMedia content, Func<IMedia, XElement> xml);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -62,5 +62,12 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
/// <param name="xml"></param>
|
||||
void AddOrUpdateContentXml(IMember content, Func<IMember, XElement> xml);
|
||||
|
||||
/// <summary>
|
||||
/// Used to add/update preview xml for the content item
|
||||
/// </summary>
|
||||
/// <param name="content"></param>
|
||||
/// <param name="xml"></param>
|
||||
void AddOrUpdatePreviewXml(IMember content, Func<IMember, XElement> xml);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -22,13 +22,14 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
{
|
||||
private readonly IMediaTypeRepository _mediaTypeRepository;
|
||||
private readonly ContentXmlRepository<IMedia> _contentXmlRepository;
|
||||
private readonly ContentPreviewRepository<IMedia> _contentPreviewRepository;
|
||||
|
||||
public MediaRepository(IDatabaseUnitOfWork work, IMediaTypeRepository mediaTypeRepository)
|
||||
: base(work)
|
||||
{
|
||||
_mediaTypeRepository = mediaTypeRepository;
|
||||
_contentXmlRepository = new ContentXmlRepository<IMedia>(work, NullCacheProvider.Current);
|
||||
|
||||
_contentPreviewRepository = new ContentPreviewRepository<IMedia>(work, NullCacheProvider.Current);
|
||||
EnsureUniqueNaming = true;
|
||||
}
|
||||
|
||||
@@ -37,7 +38,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
{
|
||||
_mediaTypeRepository = mediaTypeRepository;
|
||||
_contentXmlRepository = new ContentXmlRepository<IMedia>(work, NullCacheProvider.Current);
|
||||
|
||||
_contentPreviewRepository = new ContentPreviewRepository<IMedia>(work, NullCacheProvider.Current);
|
||||
EnsureUniqueNaming = true;
|
||||
}
|
||||
|
||||
@@ -185,6 +186,15 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
_contentXmlRepository.AddOrUpdate(new ContentXmlEntity<IMedia>(contentExists, content, xml));
|
||||
}
|
||||
|
||||
public void AddOrUpdatePreviewXml(IMedia content, Func<IMedia, XElement> xml)
|
||||
{
|
||||
var previewExists =
|
||||
Database.ExecuteScalar<int>("SELECT COUNT(nodeId) FROM cmsPreviewXml WHERE nodeId = @Id AND versionId = @Version",
|
||||
new { Id = content.Id, Version = content.Version }) != 0;
|
||||
|
||||
_contentPreviewRepository.AddOrUpdate(new ContentPreviewEntity<IMedia>(previewExists, content, xml));
|
||||
}
|
||||
|
||||
protected override void PerformDeleteVersion(int id, Guid versionId)
|
||||
{
|
||||
Database.Delete<PreviewXmlDto>("WHERE nodeId = @Id AND versionId = @VersionId", new { Id = id, VersionId = versionId });
|
||||
|
||||
@@ -26,6 +26,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
private readonly IMemberTypeRepository _memberTypeRepository;
|
||||
private readonly IMemberGroupRepository _memberGroupRepository;
|
||||
private readonly ContentXmlRepository<IMember> _contentXmlRepository;
|
||||
private readonly ContentPreviewRepository<IMember> _contentPreviewRepository;
|
||||
|
||||
public MemberRepository(IDatabaseUnitOfWork work, IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository)
|
||||
: base(work)
|
||||
@@ -34,6 +35,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
_memberTypeRepository = memberTypeRepository;
|
||||
_memberGroupRepository = memberGroupRepository;
|
||||
_contentXmlRepository = new ContentXmlRepository<IMember>(work, NullCacheProvider.Current);
|
||||
_contentPreviewRepository = new ContentPreviewRepository<IMember>(work, NullCacheProvider.Current);
|
||||
}
|
||||
|
||||
public MemberRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache, IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository)
|
||||
@@ -43,6 +45,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
_memberTypeRepository = memberTypeRepository;
|
||||
_memberGroupRepository = memberGroupRepository;
|
||||
_contentXmlRepository = new ContentXmlRepository<IMember>(work, NullCacheProvider.Current);
|
||||
_contentPreviewRepository = new ContentPreviewRepository<IMember>(work, NullCacheProvider.Current);
|
||||
}
|
||||
|
||||
#region Overrides of RepositoryBase<int, IMembershipUser>
|
||||
@@ -605,6 +608,15 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
_contentXmlRepository.AddOrUpdate(new ContentXmlEntity<IMember>(contentExists, content, xml));
|
||||
}
|
||||
|
||||
public void AddOrUpdatePreviewXml(IMember content, Func<IMember, XElement> xml)
|
||||
{
|
||||
var previewExists =
|
||||
Database.ExecuteScalar<int>("SELECT COUNT(nodeId) FROM cmsPreviewXml WHERE nodeId = @Id AND versionId = @Version",
|
||||
new { Id = content.Id, Version = content.Version }) != 0;
|
||||
|
||||
_contentPreviewRepository.AddOrUpdate(new ContentPreviewEntity<IMember>(previewExists, content, xml));
|
||||
}
|
||||
|
||||
private IMember BuildFromDto(List<MemberReadOnlyDto> dtos)
|
||||
{
|
||||
if (dtos == null || dtos.Any() == false)
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Xml.Linq;
|
||||
using Umbraco.Core.Auditing;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Events;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Models.Rdbms;
|
||||
@@ -158,6 +159,11 @@ namespace Umbraco.Core.Services
|
||||
repository.AddOrUpdate(media);
|
||||
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
}
|
||||
|
||||
uow.Commit();
|
||||
}
|
||||
@@ -212,6 +218,12 @@ namespace Umbraco.Core.Services
|
||||
media.CreatorId = userId;
|
||||
repository.AddOrUpdate(media);
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
}
|
||||
|
||||
uow.Commit();
|
||||
}
|
||||
}
|
||||
@@ -808,6 +820,11 @@ namespace Umbraco.Core.Services
|
||||
media.CreatorId = userId;
|
||||
repository.AddOrUpdate(media);
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
}
|
||||
|
||||
uow.Commit();
|
||||
}
|
||||
@@ -845,6 +862,11 @@ namespace Umbraco.Core.Services
|
||||
media.CreatorId = userId;
|
||||
repository.AddOrUpdate(media);
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
}
|
||||
}
|
||||
|
||||
//commit the whole lot in one go
|
||||
@@ -898,6 +920,11 @@ namespace Umbraco.Core.Services
|
||||
|
||||
repository.AddOrUpdate(media);
|
||||
repository.AddOrUpdateContentXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(media, m => _entitySerializer.Serialize(this, _dataTypeService, m));
|
||||
}
|
||||
}
|
||||
|
||||
uow.Commit();
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Threading;
|
||||
using System.Web.Security;
|
||||
using System.Xml.Linq;
|
||||
using Umbraco.Core.Auditing;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Events;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Models.EntityBase;
|
||||
@@ -20,6 +21,7 @@ using Umbraco.Core.Security;
|
||||
|
||||
namespace Umbraco.Core.Services
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Represents the MemberService.
|
||||
/// </summary>
|
||||
@@ -742,6 +744,12 @@ namespace Umbraco.Core.Services
|
||||
repository.AddOrUpdate(member);
|
||||
//insert the xml
|
||||
repository.AddOrUpdateContentXml(member, m => _entitySerializer.Serialize(_dataTypeService, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(member, m => _entitySerializer.Serialize(_dataTypeService, m));
|
||||
}
|
||||
|
||||
uow.Commit();
|
||||
}
|
||||
|
||||
@@ -847,6 +855,12 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
repository.AddOrUpdate(entity);
|
||||
repository.AddOrUpdateContentXml(entity, m => _entitySerializer.Serialize(_dataTypeService, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(entity, m => _entitySerializer.Serialize(_dataTypeService, m));
|
||||
}
|
||||
|
||||
uow.Commit();
|
||||
}
|
||||
|
||||
@@ -872,6 +886,11 @@ namespace Umbraco.Core.Services
|
||||
{
|
||||
repository.AddOrUpdate(member);
|
||||
repository.AddOrUpdateContentXml(member, m => _entitySerializer.Serialize(_dataTypeService, m));
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
repository.AddOrUpdatePreviewXml(member, m => _entitySerializer.Serialize(_dataTypeService, m));
|
||||
}
|
||||
}
|
||||
|
||||
//commit the whole lot in one go
|
||||
|
||||
@@ -190,6 +190,7 @@
|
||||
<Compile Include="IO\FileSystemWrapper.cs" />
|
||||
<Compile Include="MacroErrorBehaviour.cs" />
|
||||
<Compile Include="Media\IImageUrlProvider.cs" />
|
||||
<Compile Include="Models\ContentPreviewEntity.cs" />
|
||||
<Compile Include="Models\ContentTypeBase.cs" />
|
||||
<Compile Include="Models\ContentTypeCompositionBase.cs" />
|
||||
<Compile Include="Models\ContentTypeExtensions.cs" />
|
||||
@@ -233,6 +234,7 @@
|
||||
<Compile Include="Persistence\Querying\StringPropertyMatchType.cs" />
|
||||
<Compile Include="Persistence\Querying\TextColumnType.cs" />
|
||||
<Compile Include="Persistence\Querying\ValuePropertyMatchType.cs" />
|
||||
<Compile Include="Persistence\Repositories\ContentPreviewRepository.cs" />
|
||||
<Compile Include="Persistence\Repositories\ContentXmlRepository.cs" />
|
||||
<Compile Include="Persistence\Repositories\Interfaces\IMemberGroupRepository.cs" />
|
||||
<Compile Include="Persistence\Repositories\NotificationsRepository.cs" />
|
||||
|
||||
@@ -282,17 +282,7 @@ namespace umbraco.cms.businesslogic.media
|
||||
base.VersionDate = MediaItem.UpdateDate;
|
||||
|
||||
base.Save();
|
||||
|
||||
XmlDocument xd = new XmlDocument();
|
||||
XmlGenerate(xd);
|
||||
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
// Version as new guid to ensure different versions are generated as media are not versioned currently!
|
||||
SavePreviewXml(generateXmlWithoutSaving(xd), Guid.NewGuid());
|
||||
}
|
||||
|
||||
|
||||
FireAfterSave(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -613,16 +613,6 @@ namespace umbraco.cms.businesslogic.member
|
||||
|
||||
base.Save();
|
||||
|
||||
XmlDocument xd = new XmlDocument();
|
||||
XmlGenerate(xd);
|
||||
|
||||
// generate preview for blame history?
|
||||
if (UmbracoSettings.EnableGlobalPreviewStorage)
|
||||
{
|
||||
// Version as new guid to ensure different versions are generated as media are not versioned currently!
|
||||
SavePreviewXml(generateXmlWithoutSaving(xd), Guid.NewGuid());
|
||||
}
|
||||
|
||||
if (raiseEvents)
|
||||
{
|
||||
FireAfterSave(e);
|
||||
|
||||
Reference in New Issue
Block a user