Beispiel #1
0
        protected static void PurgeStructureGroupItems(string startSgUri, ushort versionsToKeep, string pubUri)
        {
            using (CoreServiceClient client = new CoreServiceClient(endpointName))
            {
                var credentials = CredentialCache.DefaultNetworkCredentials;
                if (!string.IsNullOrWhiteSpace(userName) && !string.IsNullOrWhiteSpace(password))
                {
                    credentials = new NetworkCredential(userName, password);
                }
                client.ChannelFactory.Credentials.Windows.ClientCredential = credentials;

                if (versionsToKeep < 0)
                {
                    return;
                }

                PurgeOldVersionsInstructionData purgeIntructions = new PurgeOldVersionsInstructionData();

                string structureGroups = startSgUri;
                if (structureGroups != "")
                {
                    PurgeStructureGroups(client, structureGroups, purgeIntructions, versionsToKeep, pubUri);
                }
            }
        }
Beispiel #2
0
        protected static void PurgeFolderItems(string startFolder, ushort versionsToKeep, string pubUri)
        {
            using (CoreServiceClient client = new CoreServiceClient(endpointName))
            {
                var credentials = CredentialCache.DefaultNetworkCredentials;
                if (!string.IsNullOrWhiteSpace(userName) && !string.IsNullOrWhiteSpace(password))
                {
                    credentials = new NetworkCredential(userName, password);
                }
                client.ChannelFactory.Credentials.Windows.ClientCredential = credentials;

                if (versionsToKeep < 0)
                    return;

                PurgeOldVersionsInstructionData purgeIntructions = new PurgeOldVersionsInstructionData();

                string folders = startFolder;
                if (folders != "")
                {
                    PurgeFolders(client, folders, purgeIntructions, versionsToKeep, pubUri);
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Processes the core service record.
        /// </summary>
        /// <remarks>Used for proper error handling of core service fault exception.</remarks>
        protected override void ProcessCoreServiceRecord()
        {
            var listLink = ContainerItemIds.Select(
                item =>
            {
                string uri = item.Trim();
                var x      = new LinkToIdentifiableObjectData();

                if (uri.ToLowerInvariant().StartsWith("tcm:"))
                {
                    x.IdRef = uri;
                }
                else
                {
                    x.WebDavUrl = uri;
                }

                return(x);
            }).ToArray();

            PurgeOldVersionsInstructionData instruction =
                new PurgeOldVersionsInstructionData
            {
                Recursive = Recursive.ToBool(),
                KeepVersionsModifiedAfter = KeepAfter,
                KeepVersionsWithinDaysBeforeLastCheckIn =
                    KeepWithinDaysBefore,
                VersionsToKeep = VersionsToKeep,
                MaxResolvedVersionedItemsCount =
                    MaxResolvedItemsCount,
                Containers = listLink
            };

            int result = CoreServiceClient.PurgeOldVersions(instruction);

            WriteObject(result);
        }
Beispiel #4
0
        private static void PurgeStructureGroups(CoreServiceClient client, string structureGroups, PurgeOldVersionsInstructionData purgeIntructions, UInt16 versionsToKeep, string pubUri)
        {
            int totalPageVersionsRemoved = 0;

            string[] structureGroupUris = structureGroups.Split(',');

            List<LinkToIdentifiableObjectData> itemsToPurge = new List<LinkToIdentifiableObjectData>();

            for (int i = 0; i < structureGroupUris.Length; i++)
            {
                StructureGroupData structureGroup = null;

                try
                {
                    string localUri = GetLocalUri(pubUri.Trim(), structureGroupUris[i]);

                    // Add sub and subsub-folders to list to prevent timeouts...
                    structureGroup = (StructureGroupData)client.Read(localUri, null);
                }
                catch(Exception ex)
                {
                    continue;
                }

                LinkToIdentifiableObjectData subfolderLink = new LinkToIdentifiableObjectData();
                subfolderLink.IdRef = structureGroup.Id;
                itemsToPurge.Add(subfolderLink);

                var itemTypes = new List<ItemType>();
                itemTypes.Add(ItemType.StructureGroup);

                var filter = new OrganizationalItemItemsFilterData();
                filter.Recursive = true;
                filter.ItemTypes = itemTypes.ToArray();
                purgeIntructions.VersionsToKeep = versionsToKeep;
                purgeIntructions.Recursive = false;

                IdentifiableObjectData[] subSGs = client.GetList(structureGroup.Id, filter);

                foreach (var subSubSG in subSGs)
                {
                    LinkToIdentifiableObjectData structureGroupLink = new LinkToIdentifiableObjectData();
                    structureGroupLink.IdRef = subSubSG.Id;
                    itemsToPurge.Add(structureGroupLink);
                    purgeIntructions.Containers = itemsToPurge.ToArray();

                    try
                    {
                        int versionsCleaned = client.PurgeOldVersions(purgeIntructions);
                        totalPageVersionsRemoved = totalPageVersionsRemoved + versionsCleaned;
                        WriteOutput("Removed " + versionsCleaned.ToString() + " Page Versions");
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                    itemsToPurge.Clear();
                }
            }
            WriteOutput("Total Page versions removed is " + totalPageVersionsRemoved.ToString());
        }
Beispiel #5
0
        private static void PurgeFolders(CoreServiceClient client, string folders, PurgeOldVersionsInstructionData purgeIntructions, UInt16 versionsToKeep, string pubUri)
        {
            int totalCompVersionsRemoved = 0;

            string[] folderUris = folders.Split(',');

            List<LinkToIdentifiableObjectData> itemsToPurge = new List<LinkToIdentifiableObjectData>();

            for (int i = 0; i < folderUris.Length; i++)
            {
                FolderData subFolder = null;

                // Add sub and subsub-folders to list to prevent timeouts...
                try
                {
                    string localUri = GetLocalUri(pubUri.Trim(), folderUris[i]);
                    subFolder = (FolderData)client.Read(localUri, null);
                }
                catch(Exception ex)
                {
                    continue;
                }

                LinkToIdentifiableObjectData subfolderLink = new LinkToIdentifiableObjectData();
                subfolderLink.IdRef = subFolder.Id;
                itemsToPurge.Add(subfolderLink);

                var itemTypes = new List<ItemType>();
                //itemTypes.Add(ItemType.Component);
                itemTypes.Add(ItemType.Folder);
                var filter = new OrganizationalItemItemsFilterData();
                filter.Recursive = true;
                filter.ItemTypes = itemTypes.ToArray();

                purgeIntructions.VersionsToKeep = versionsToKeep;
                purgeIntructions.Recursive = false;

                IdentifiableObjectData[] allSubFolders = client.GetList(subFolder.Id, filter);

                foreach (var aFolder in allSubFolders)
                {
                    LinkToIdentifiableObjectData folderLink = new LinkToIdentifiableObjectData();
                    folderLink.IdRef = aFolder.Id;
                    itemsToPurge.Add(folderLink);
                    purgeIntructions.Containers = itemsToPurge.ToArray();

                    try
                    {
                        int versionsCleaned = client.PurgeOldVersions(purgeIntructions);
                        totalCompVersionsRemoved = totalCompVersionsRemoved + versionsCleaned;
                        WriteOutput("Folder " + folderLink.IdRef + " removed " + versionsCleaned.ToString());
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                    itemsToPurge.Clear();
                }
            }
            WriteOutput("Total Component versions removed is " + totalCompVersionsRemoved.ToString());
        }
Beispiel #6
0
        private static void PurgeFolders(CoreServiceClient client, string folders, PurgeOldVersionsInstructionData purgeIntructions, UInt16 versionsToKeep, string pubUri)
        {
            int totalCompVersionsRemoved = 0;

            string[] folderUris = folders.Split(',');

            List <LinkToIdentifiableObjectData> itemsToPurge = new List <LinkToIdentifiableObjectData>();

            for (int i = 0; i < folderUris.Length; i++)
            {
                FolderData subFolder = null;

                // Add sub and subsub-folders to list to prevent timeouts...
                try
                {
                    string localUri = GetLocalUri(pubUri.Trim(), folderUris[i]);
                    subFolder = (FolderData)client.Read(localUri, null);
                }
                catch (Exception ex)
                {
                    continue;
                }

                LinkToIdentifiableObjectData subfolderLink = new LinkToIdentifiableObjectData();
                subfolderLink.IdRef = subFolder.Id;
                itemsToPurge.Add(subfolderLink);

                var itemTypes = new List <ItemType>();
                //itemTypes.Add(ItemType.Component);
                itemTypes.Add(ItemType.Folder);
                var filter = new OrganizationalItemItemsFilterData();
                filter.Recursive = true;
                filter.ItemTypes = itemTypes.ToArray();

                purgeIntructions.VersionsToKeep = versionsToKeep;
                purgeIntructions.Recursive      = false;

                IdentifiableObjectData[] allSubFolders = client.GetList(subFolder.Id, filter);

                foreach (var aFolder in allSubFolders)
                {
                    LinkToIdentifiableObjectData folderLink = new LinkToIdentifiableObjectData();
                    folderLink.IdRef = aFolder.Id;
                    itemsToPurge.Add(folderLink);
                    purgeIntructions.Containers = itemsToPurge.ToArray();

                    try
                    {
                        int versionsCleaned = client.PurgeOldVersions(purgeIntructions);
                        totalCompVersionsRemoved = totalCompVersionsRemoved + versionsCleaned;
                        WriteOutput("Folder " + folderLink.IdRef + " removed " + versionsCleaned.ToString());
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                    itemsToPurge.Clear();
                }
            }
            WriteOutput("Total Component versions removed is " + totalCompVersionsRemoved.ToString());
        }
Beispiel #7
0
        private static void PurgeStructureGroups(CoreServiceClient client, string structureGroups, PurgeOldVersionsInstructionData purgeIntructions, UInt16 versionsToKeep, string pubUri)
        {
            int totalPageVersionsRemoved = 0;

            string[] structureGroupUris = structureGroups.Split(',');

            List <LinkToIdentifiableObjectData> itemsToPurge = new List <LinkToIdentifiableObjectData>();

            for (int i = 0; i < structureGroupUris.Length; i++)
            {
                StructureGroupData structureGroup = null;

                try
                {
                    string localUri = GetLocalUri(pubUri.Trim(), structureGroupUris[i]);

                    // Add sub and subsub-folders to list to prevent timeouts...
                    structureGroup = (StructureGroupData)client.Read(localUri, null);
                }
                catch (Exception ex)
                {
                    continue;
                }

                LinkToIdentifiableObjectData subfolderLink = new LinkToIdentifiableObjectData();
                subfolderLink.IdRef = structureGroup.Id;
                itemsToPurge.Add(subfolderLink);

                var itemTypes = new List <ItemType>();
                itemTypes.Add(ItemType.StructureGroup);

                var filter = new OrganizationalItemItemsFilterData();
                filter.Recursive = true;
                filter.ItemTypes = itemTypes.ToArray();
                purgeIntructions.VersionsToKeep = versionsToKeep;
                purgeIntructions.Recursive      = false;

                IdentifiableObjectData[] subSGs = client.GetList(structureGroup.Id, filter);

                foreach (var subSubSG in subSGs)
                {
                    LinkToIdentifiableObjectData structureGroupLink = new LinkToIdentifiableObjectData();
                    structureGroupLink.IdRef = subSubSG.Id;
                    itemsToPurge.Add(structureGroupLink);
                    purgeIntructions.Containers = itemsToPurge.ToArray();

                    try
                    {
                        int versionsCleaned = client.PurgeOldVersions(purgeIntructions);
                        totalPageVersionsRemoved = totalPageVersionsRemoved + versionsCleaned;
                        WriteOutput("Removed " + versionsCleaned.ToString() + " Page Versions");
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                    itemsToPurge.Clear();
                }
            }
            WriteOutput("Total Page versions removed is " + totalPageVersionsRemoved.ToString());
        }