Exemple #1
0
        public void SwapOriginalMediaWithVersion(MediaFile originalEntity, MediaFile newVersion, ISession session = null)
        {
            var swapEntity = newVersion.Clone();

            if (session != null)
            {
                session.Evict(swapEntity);
            }

            // swap
            newVersion.CopyDataTo(swapEntity, false);
            originalEntity.CopyDataTo(newVersion, false);
            swapEntity.CopyDataTo(originalEntity, false);

            newVersion.Original = originalEntity;

            originalEntity.Categories = originalEntity.Categories ?? new List <MediaCategory>();
            newVersion.Categories     = newVersion.Categories ?? new List <MediaCategory>();

            var catResult = SwapEntityCollections(originalEntity.Categories, newVersion.Categories, originalEntity, newVersion);

            originalEntity.Categories = catResult.Item1;
            newVersion.Categories     = catResult.Item2;

            originalEntity.MediaTags = originalEntity.MediaTags ?? new List <MediaTag>();
            newVersion.MediaTags     = newVersion.MediaTags ?? new List <MediaTag>();

            var tagResult = SwapEntityCollections(originalEntity.MediaTags, newVersion.MediaTags, originalEntity, newVersion);

            originalEntity.MediaTags = tagResult.Item1;
            newVersion.MediaTags     = tagResult.Item2;
        }