BetterCms.Module.MediaManager.Services.DefaultMediaImageService.RevertChanges C# (CSharp) Метод

RevertChanges() приватный Метод

private RevertChanges ( BetterCms.Module.MediaManager.Models.MediaImage canceledImage ) : BetterCms.Module.MediaManager.Models.MediaImage
canceledImage BetterCms.Module.MediaManager.Models.MediaImage
Результат BetterCms.Module.MediaManager.Models.MediaImage
        private MediaImage RevertChanges(MediaImage canceledImage)
        {
            var previousOriginal =
                repository.AsQueryable<MediaImage>().OrderByDescending(i => i.PublishedOn).FirstOrDefault(f => f.Original != null && f.Original.Id == canceledImage.Id);

            if (previousOriginal != null)
            {
                var folderName = Path.GetFileName(Path.GetDirectoryName(previousOriginal.FileUri.OriginalString));
                var publicFileName = MediaHelper.RemoveInvalidPathSymbols(MediaImageHelper.CreatePublicFileName(previousOriginal.OriginalFileName, previousOriginal.OriginalFileExtension));

                // Get original file stream
                using (var fileStream = DownloadFileStream(previousOriginal.PublicUrl))
                {
                    // Get thumbnail file stream
                    using (var thumbnailFileStream = DownloadFileStream(previousOriginal.PublicThumbnailUrl))
                    {
                        previousOriginal.CopyDataTo(canceledImage);

                        mediaImageVersionPathService.SetPathForArchive(canceledImage, folderName, publicFileName);

                        StartTasksForImage(canceledImage, fileStream, thumbnailFileStream, previousOriginal.IsEdited());

                        canceledImage.Original = null;
                        unitOfWork.BeginTransaction();
                        repository.Save(canceledImage);
                        unitOfWork.Commit();
                    }
                }
            }

            return previousOriginal;
        }