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); }