/// <summary> /// Deletes a collection of <see cref="IMediaType"/> objects /// </summary> /// <param name="mediaTypes">Collection of <see cref="IMediaType"/> to delete</param> /// <param name="userId"></param> /// <remarks>Deleting a <see cref="IMediaType"/> will delete all the <see cref="IMedia"/> objects based on this <see cref="IMediaType"/></remarks> public void Delete(IEnumerable <IMediaType> mediaTypes, int userId = 0) { var asArray = mediaTypes.ToArray(); if (DeletingMediaType.IsRaisedEventCancelled(new DeleteEventArgs <IMediaType>(asArray), this)) { return; } using (new WriteLock(Locker)) { foreach (var mediaType in asArray) { _mediaService.DeleteMediaOfType(mediaType.Id); } var uow = _uowProvider.GetUnitOfWork(); using (var repository = _repositoryFactory.CreateMediaTypeRepository(uow)) { foreach (var mediaType in asArray) { repository.Delete(mediaType); } uow.Commit(); DeletedMediaType.RaiseEvent(new DeleteEventArgs <IMediaType>(asArray, false), this); } Audit.Add(AuditTypes.Delete, string.Format("Delete MediaTypes performed by user"), userId, -1); } }
/// <summary> /// Deletes a single <see cref="IMediaType"/> object /// </summary> /// <param name="mediaType"><see cref="IMediaType"/> to delete</param> /// <param name="userId">Optional Id of the user deleting the MediaType</param> /// <remarks>Deleting a <see cref="IMediaType"/> will delete all the <see cref="IMedia"/> objects based on this <see cref="IMediaType"/></remarks> public void Delete(IMediaType mediaType, int userId = 0) { if (DeletingMediaType.IsRaisedEventCancelled(new DeleteEventArgs <IMediaType>(mediaType), this)) { return; } using (new WriteLock(Locker)) { _mediaService.DeleteMediaOfType(mediaType.Id, userId); var uow = _uowProvider.GetUnitOfWork(); using (var repository = _repositoryFactory.CreateMediaTypeRepository(uow)) { repository.Delete(mediaType); uow.Commit(); DeletedMediaType.RaiseEvent(new DeleteEventArgs <IMediaType>(mediaType, false), this); } Audit.Add(AuditTypes.Delete, string.Format("Delete MediaType performed by user"), userId, mediaType.Id); } }