Manually fixed merge with MediaService.

This commit is contained in:
Shannon Deminick
2012-12-21 06:59:30 +05:00
parent 91a8fd7369
commit 9cf86d7677
3 changed files with 109 additions and 136 deletions

View File

@@ -813,7 +813,7 @@ namespace Umbraco.Core.Services
uow.Commit();
}
DeletedRevisions.RaiseEvent(new DeleteRevisionsEventArgs(id, false, dateToRetain: versionDate), this);
DeletedVersions.RaiseEvent(new DeleteRevisionsEventArgs(id, false, dateToRetain: versionDate), this);
Audit.Add(AuditTypes.Delete, "Delete Content by version date performed by user", userId == -1 ? 0 : userId, -1);
}
@@ -843,7 +843,7 @@ namespace Umbraco.Core.Services
uow.Commit();
}
DeletedRevisions.RaiseEvent(new DeleteRevisionsEventArgs(id, false, specificVersion:versionId), this);
DeletedVersions.RaiseEvent(new DeleteRevisionsEventArgs(id, false, specificVersion:versionId), this);
Audit.Add(AuditTypes.Delete, "Delete Content by version performed by user", userId == -1 ? 0 : userId, -1);
}
@@ -1234,7 +1234,7 @@ namespace Umbraco.Core.Services
/// <summary>
/// Occurs after Delete
/// </summary>
public static event TypedEventHandler<IContentService, DeleteRevisionsEventArgs> DeletedRevisions;
public static event TypedEventHandler<IContentService, DeleteRevisionsEventArgs> DeletedVersions;
/// <summary>
/// Occurs before Save

View File

@@ -94,11 +94,7 @@ namespace Umbraco.Core.Services
/// <summary>
/// Saves a collection of <see cref="IContent"/> objects.
/// </summary>
/// <remarks>
/// If the collection of content contains new objects that references eachother by Id or ParentId,
/// then use the overload Save method with a collection of Lazy <see cref="IContent"/>.
/// </remarks>
/// </summary>
/// <param name="contents">Collection of <see cref="IContent"/> to save</param>
/// <param name="userId">Optional Id of the User saving the Content</param>
void Save(IEnumerable<IContent> contents, int userId = -1);

View File

@@ -69,19 +69,15 @@ namespace Umbraco.Core.Services
}
var media = new Models.Media(parentId, mediaType);
var e = new NewEventArgs {Alias = mediaTypeAlias, ParentId = parentId};
if (Creating != null)
Creating(media, e);
if (!e.Cancel)
{
SetUser(media, userId);
if (Creating.IsRaisedEventCancelled(new NewEventArgs<IMedia>(media, mediaTypeAlias, parentId), this))
return media;
if (Created != null)
Created(media, e);
SetUser(media, userId);
Audit.Add(AuditTypes.New, "", media.CreatorId, media.Id);
}
Created.RaiseEvent(new NewEventArgs<IMedia>(media, false, mediaTypeAlias, parentId), this);
Audit.Add(AuditTypes.New, "", media.CreatorId, media.Id);
return media;
}
@@ -288,25 +284,18 @@ namespace Umbraco.Core.Services
if (Trashing.IsRaisedEventCancelled(new MoveEventArgs<IMedia>(media, -21), this))
return;
var e = new MoveEventArgs {ParentId = -20};
if (Trashing != null)
Trashing(media, e);
if (!e.Cancel)
{
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
((Core.Models.Media) media).ChangeTrashedState(true);
repository.AddOrUpdate(media);
uow.Commit();
}
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
((Core.Models.Media)media).ChangeTrashedState(true);
repository.AddOrUpdate(media);
uow.Commit();
}
if (Trashed != null)
Trashed(media, e);
Trashed.RaiseEvent(new MoveEventArgs<IMedia>(media, false, -21), this);
Audit.Add(AuditTypes.Move, "Move Media to Recycle Bin performed by user", userId == -1 ? 0 : userId,
media.Id);
}
Audit.Add(AuditTypes.Move, "Move Media to Recycle Bin performed by user", userId == -1 ? 0 : userId,
media.Id);
}
/// <summary>
@@ -314,6 +303,9 @@ namespace Umbraco.Core.Services
/// </summary>
public void EmptyRecycleBin()
{
//TODO: Should have an event for this.
//TODO: Why don't we have a base class to share between MediaService/ContentService as some of this is exacty the same?
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
@@ -338,7 +330,7 @@ namespace Umbraco.Core.Services
/// <param name="userId">Optional id of the user deleting the media</param>
public void DeleteMediaOfType(int mediaTypeId, int userId = -1)
{
//TODO: Do we need another event DeletingMediaOfType ?
//TODO: Do we need another event DeletingMediaOfType, If we just change delete args to be ienumerable this would fix this ?
var uow = _uowProvider.GetUnitOfWork();
var repository = _repositoryFactory.CreateMediaRepository(uow);
@@ -348,28 +340,26 @@ namespace Umbraco.Core.Services
var query = Query<IMedia>.Builder.Where(x => x.ContentTypeId == mediaTypeId);
var contents = repository.GetByQuery(query);
var e = new DeleteEventArgs {Id = mediaTypeId};
if (Deleting != null)
Deleting(contents, e);
//var e = new DeleteEventArgs { Id = mediaTypeId };
//if (Deleting != null)
// Deleting(contents, e);
//var e = new DeleteEventArgs {Id = mediaTypeId};
//if (Deleting != null)
// Deleting(contents, e);
// //var e = new DeleteEventArgs { Id = mediaTypeId };
// //if (Deleting != null)
// // Deleting(contents, e);
if (!e.Cancel)
{
foreach (var content in contents)
{
((Core.Models.Media) content).ChangeTrashedState(true);
repository.AddOrUpdate(content);
}
foreach (var content in contents)
{
((Core.Models.Media)content).ChangeTrashedState(true);
repository.AddOrUpdate(content);
}
uow.Commit();
uow.Dispose();
uow.Commit();
uow.Dispose();
if (Deleted != null)
Deleted(contents, e);
Audit.Add(AuditTypes.Delete, "Delete Media items by Type performed by user", userId == -1 ? 0 : userId, -1);
}
//if (Deleted != null)
// Deleted(contents, e);
Audit.Add(AuditTypes.Delete, "Delete Media items by Type performed by user", userId == -1 ? 0 : userId, -1);
}
/// <summary>
@@ -386,23 +376,16 @@ namespace Umbraco.Core.Services
if (Deleting.IsRaisedEventCancelled(new DeleteEventArgs<IMedia>(media), this))
return;
var e = new DeleteEventArgs {Id = media.Id};
if (Deleting != null)
Deleting(media, e);
if (!e.Cancel)
{
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
repository.Delete(media);
uow.Commit();
}
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
repository.Delete(media);
uow.Commit();
}
if (Deleted != null)
Deleted(media, e);
Deleted.RaiseEvent(new DeleteEventArgs<IMedia>(media, false), this);
Audit.Add(AuditTypes.Delete, "Delete Media performed by user", userId == -1 ? 0 : userId, media.Id);
}
Audit.Add(AuditTypes.Delete, "Delete Media performed by user", userId == -1 ? 0 : userId, media.Id);
}
/// <summary>
@@ -413,24 +396,19 @@ namespace Umbraco.Core.Services
/// <param name="userId">Optional Id of the User deleting versions of a Content object</param>
public void DeleteVersions(int id, DateTime versionDate, int userId = -1)
{
var e = new DeleteEventArgs { Id = id };
if (Deleting != null)
Deleting(versionDate, e);
if (DeletingVersions.IsRaisedEventCancelled(new DeleteRevisionsEventArgs(id, dateToRetain: versionDate), this))
return;
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
repository.DeleteVersions(id, versionDate);
uow.Commit();
}
if (!e.Cancel)
{
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
repository.DeleteVersions(id, versionDate);
uow.Commit();
}
DeletedVersions.RaiseEvent(new DeleteRevisionsEventArgs(id, false, dateToRetain: versionDate), this);
if (Deleted != null)
Deleted(versionDate, e);
Audit.Add(AuditTypes.Delete, "Delete Media by version date performed by user", userId == -1 ? 0 : userId, -1);
}
Audit.Add(AuditTypes.Delete, "Delete Media by version date performed by user", userId == -1 ? 0 : userId, -1);
}
/// <summary>
@@ -448,24 +426,19 @@ namespace Umbraco.Core.Services
DeleteVersions(id, content.UpdateDate, userId);
}
var e = new DeleteEventArgs { Id = id };
if (Deleting != null)
Deleting(versionId, e);
if (DeletingVersions.IsRaisedEventCancelled(new DeleteRevisionsEventArgs(id, specificVersion:versionId), this))
return;
if (!e.Cancel)
{
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
repository.DeleteVersion(versionId);
uow.Commit();
}
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
repository.DeleteVersion(versionId);
uow.Commit();
}
if (Deleted != null)
Deleted(versionId, e);
DeletedVersions.RaiseEvent(new DeleteRevisionsEventArgs(id, false, specificVersion: versionId), this);
Audit.Add(AuditTypes.Delete, "Delete Media by version performed by user", userId == -1 ? 0 : userId, -1);
}
Audit.Add(AuditTypes.Delete, "Delete Media by version performed by user", userId == -1 ? 0 : userId, -1);
}
/// <summary>
@@ -475,23 +448,20 @@ namespace Umbraco.Core.Services
/// <param name="userId">Id of the User saving the Content</param>
public void Save(IMedia media, int userId = -1)
{
var e = new SaveEventArgs();
if (Saving != null)
Saving(media, e);
if (!e.Cancel)
{
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
SetUser(media, userId);
repository.AddOrUpdate(media);
uow.Commit();
}
if (Saving.IsRaisedEventCancelled(new SaveEventArgs<IMedia>(media), this))
return;
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
SetUser(media, userId);
repository.AddOrUpdate(media);
uow.Commit();
}
Saved.RaiseEvent(new SaveEventArgs<IMedia>(media, false), this);
if (Saved != null)
Saved(media, e);
}
Audit.Add(AuditTypes.Save, "Save Media performed by user", media.CreatorId, media.Id);
}
@@ -502,30 +472,25 @@ namespace Umbraco.Core.Services
/// <param name="userId">Id of the User saving the Content</param>
public void Save(IEnumerable<IMedia> medias, int userId = -1)
{
var e = new SaveEventArgs();
if (Saving != null)
Saving(medias, e);
if (SavingCollection.IsRaisedEventCancelled(new SaveEventArgs<IEnumerable<IMedia>>(medias), this))
return;
if (!e.Cancel)
{
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
foreach (var media in medias)
{
SetUser(media, userId);
repository.AddOrUpdate(media);
}
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateMediaRepository(uow))
{
foreach (var media in medias)
{
SetUser(media, userId);
repository.AddOrUpdate(media);
}
//commit the whole lot in one go
uow.Commit();
}
if (Saved != null)
Saved(medias, e);
uow.Commit();
}
Audit.Add(AuditTypes.Save, "Save Media items performed by user", userId == -1 ? 0 : userId, -1);
}
SavedCollection.RaiseEvent(new SaveEventArgs<IEnumerable<IMedia>>(medias, false), this);
Audit.Add(AuditTypes.Save, "Save Media items performed by user", userId == -1 ? 0 : userId, -1);
}
/// <summary>
@@ -569,6 +534,17 @@ namespace Umbraco.Core.Services
}
#region Event Handlers
/// <summary>
/// Occurs before Delete
/// </summary>
public static event TypedEventHandler<IMediaService, DeleteRevisionsEventArgs> DeletingVersions;
/// <summary>
/// Occurs after Delete
/// </summary>
public static event TypedEventHandler<IMediaService, DeleteRevisionsEventArgs> DeletedVersions;
/// <summary>
/// Occurs before Delete
/// </summary>
@@ -611,6 +587,7 @@ namespace Umbraco.Core.Services
/// Please note that the Media object has been created, but not saved
/// so it does not have an identity yet (meaning no Id has been set).
/// </remarks>
public static event TypedEventHandler<IMediaService, NewEventArgs<IMedia>> Created;
/// <summary>
/// Occurs before Content is moved to Recycle Bin