Moves the CRUD logic from the media service to the media repo for dealing with content xml items and ensures it's done in the same transaction, streamlines how this process is done between the content, media, member services, adds test for it.

This commit is contained in:
Shannon
2014-04-28 18:53:21 +10:00
parent c5bce3b8cc
commit 2e96de5449
10 changed files with 100 additions and 65 deletions

View File

@@ -1350,15 +1350,13 @@ namespace Umbraco.Core.Services
repository.AddOrUpdate(content);
//Generate a new preview
var local = content;
repository.AddOrUpdatePreviewXml(content, () => _entitySerializer.Serialize(this, _dataTypeService, local));
repository.AddOrUpdatePreviewXml(content, c => _entitySerializer.Serialize(this, _dataTypeService, c));
}
foreach (var content in shouldBePublished)
{
//Create and Save ContentXml DTO
var local = content;
repository.AddOrUpdateContentXml(content, () => _entitySerializer.Serialize(this, _dataTypeService, local));
repository.AddOrUpdateContentXml(content, c => _entitySerializer.Serialize(this, _dataTypeService, c));
}
uow.Commit();
@@ -1511,6 +1509,8 @@ namespace Umbraco.Core.Services
//TODO: WE should make a base class for ContentService and MediaService to share!
// currently we have this logic duplicated (nearly the same) for media types and soon to be member types
//TODO: This needs to be put into the ContentRepository, all CUD logic!
/// <summary>
/// Rebuilds all xml content in the cmsContentXml table for all documents
/// </summary>
@@ -1776,13 +1776,12 @@ namespace Umbraco.Core.Services
repository.AddOrUpdate(content);
//Generate a new preview
var local = content;
repository.AddOrUpdatePreviewXml(content, () => _entitySerializer.Serialize(this, _dataTypeService, local));
repository.AddOrUpdatePreviewXml(content, c => _entitySerializer.Serialize(this, _dataTypeService, c));
if (published)
{
//Content Xml
repository.AddOrUpdateContentXml(content, () => _entitySerializer.Serialize(this, _dataTypeService, local));
repository.AddOrUpdateContentXml(content, c => _entitySerializer.Serialize(this, _dataTypeService, c));
}
uow.Commit();
@@ -1844,8 +1843,7 @@ namespace Umbraco.Core.Services
repository.AddOrUpdate(content);
//Generate a new preview
var local = content;
repository.AddOrUpdatePreviewXml(content, () => _entitySerializer.Serialize(this, _dataTypeService, local));
repository.AddOrUpdatePreviewXml(content, c => _entitySerializer.Serialize(this, _dataTypeService, c));
uow.Commit();
}