コード例 #1
0
        public static int CopyContents(int sourceSiteId, int destinationSiteId, int startFrom, int endOn)
        {
            var count = ContentRepository.CopyContents(sourceSiteId, destinationSiteId, startFrom, endOn, out var newContentIds);

            var relBetweenContents = ContentRepository.GetRelationsBetweenContentsXml(sourceSiteId, destinationSiteId, newContentIds);
            var relBetweenStatuses = ContentRepository.GetRelationsBetweenStatuses(sourceSiteId, destinationSiteId);

            FieldRepository.CopyContentsAttributes(sourceSiteId, destinationSiteId, newContentIds, false);
            var relBetweenAttributes = FieldRepository.GetRelationsBetweenAttributesXml(sourceSiteId, destinationSiteId, newContentIds, false, true);

            NotificationRepository.CopyContentNotifications(relBetweenContents, relBetweenStatuses, relBetweenAttributes);

            ContentRepository.CopyContentConstraints(relBetweenContents, out var relBetweenConstraints);
            ContentConstraintRepository.CopyContentConstrainRules(relBetweenConstraints, relBetweenAttributes);

            FieldRepository.CopyDynamicImageAttributes(relBetweenAttributes);
            ContentRepository.CopyContentWorkflowBind(sourceSiteId, destinationSiteId, relBetweenContents);
            return(count);
        }