public void RemoveAttachmentsFromPages(PageBE[] pages, DateTime timestamp, uint transactionId) { //This method used from page deletion IList<ResourceBE> files = _resourceBL.GetResources(pages.Select(e => (uint)e.ID).ToArray(), ResourceBE.ParentType.PAGE, ResourceBL.FILES, null, DeletionFilter.ACTIVEONLY, null, null, null); RemoveAttachments(files, timestamp, transactionId); }
public static void DeletePages(PageBE[] pagesToDelete, DateTime timeStampUtc, uint transactionId, bool showInRecentChanges) { AttachmentBL.Instance.RemoveAttachmentsFromPages(pagesToDelete, timeStampUtc, transactionId); IList<ulong> pageIds = pagesToDelete.Select(e => e.ID).ToList(); DbUtils.CurrentSession.Links_MoveInboundToBrokenLinks(pageIds); DbUtils.CurrentSession.Archive_MovePagesTo(pageIds, transactionId); bool minorChange = false; foreach(PageBE p in pagesToDelete) { if(showInRecentChanges) { RecentChangeBL.AddDeletePageRecentChange(timeStampUtc, p, DekiContext.Current.User, string.Format(DekiResources.DELETED_ARTICLE, p.Title.AsPrefixedUserFriendlyPath()), minorChange, transactionId); minorChange = true; } DekiContext.Current.Instance.EventSink.PageDelete(DreamContext.Current.StartTime, p, DekiContext.Current.User); } }