BetterCms.Module.MediaManager.Services.DefaultMediaImageService.MakeAsOriginal C# (CSharp) Method

MakeAsOriginal() public method

Makes image as original.
public MakeAsOriginal ( BetterCms.Module.MediaManager.Models.MediaImage image, BetterCms.Module.MediaManager.Models.MediaImage originalImage, BetterCms.Module.MediaManager.Models.MediaImage archivedImage, bool overrideUrl = true ) : BetterCms.Module.MediaManager.Models.MediaImage
image BetterCms.Module.MediaManager.Models.MediaImage The new original image.
originalImage BetterCms.Module.MediaManager.Models.MediaImage The current original image.
archivedImage BetterCms.Module.MediaManager.Models.MediaImage The archived image.
overrideUrl bool To override public Url ot not.
return BetterCms.Module.MediaManager.Models.MediaImage
        public MediaImage MakeAsOriginal(MediaImage image, MediaImage originalImage, MediaImage archivedImage, bool overrideUrl = true)
        {
            overrideUrl = false; // TODO: temporary disabling feature #1055.
            var folderName = Path.GetFileName(Path.GetDirectoryName(originalImage.FileUri.OriginalString));

            using (var fileStream = DownloadFileStream(image.PublicUrl))
            {
                string publicUrlTemp = string.Empty,
                    publicThumbnailUrlTemp = string.Empty,
                    publicOriginallUrlTemp = string.Empty;
                Uri fileUriTemp = null, thumbnailUriTemp = null, originalUriTemp = null;

                if (overrideUrl)
                {
                    publicUrlTemp = originalImage.PublicUrl;
                    fileUriTemp = originalImage.FileUri;
                    publicThumbnailUrlTemp = originalImage.PublicThumbnailUrl;
                    thumbnailUriTemp = originalImage.ThumbnailUri;
                    publicOriginallUrlTemp = originalImage.PublicOriginallUrl;
                    originalUriTemp = originalImage.OriginalUri;
                }

                image.CopyDataTo(originalImage, false);
                MediaHelper.SetCollections(repository, image, originalImage);

                if (!overrideUrl)
                {
                    var publicFileName = MediaHelper.RemoveInvalidPathSymbols(MediaImageHelper.CreateVersionedFileName(originalImage.OriginalFileName, GetVersion(originalImage)));
                    mediaImageVersionPathService.SetPathForNewOriginal(originalImage, folderName, publicFileName, ImageHelper.GetImageType(originalImage.OriginalFileExtension) ,archivedImage.OriginalUri, archivedImage.PublicOriginallUrl);
                }
                else
                {
                    originalImage.PublicUrl = publicUrlTemp;
                    originalImage.FileUri = fileUriTemp;
                    originalImage.PublicThumbnailUrl = publicThumbnailUrlTemp;
                    originalImage.ThumbnailUri = thumbnailUriTemp;
                    originalImage.PublicOriginallUrl = publicOriginallUrlTemp;
                    originalImage.OriginalUri = originalUriTemp;
                }


                originalImage.Original = null;
                originalImage.PublishedOn = DateTime.Now;

                if (image.IsEdited())
                {
                    originalImage.PublicOriginallUrl = image.PublicOriginallUrl;
                    originalImage.OriginalUri = image.OriginalUri;
                }

                unitOfWork.BeginTransaction();
                repository.Save(originalImage);
                unitOfWork.Commit();

                if (!image.IsEdited())
                {
                    using (var fileStreamReplica = new MemoryStream())
                    {
                        fileStream.CopyTo(fileStreamReplica);
                        storageService.UploadObject(new UploadRequest { InputStream = fileStreamReplica, Uri = originalImage.OriginalUri, IgnoreAccessControl = true });
                    }
                }
                storageService.UploadObject(new UploadRequest { InputStream = fileStream, Uri = originalImage.FileUri, IgnoreAccessControl = true });

                UpdateThumbnail(originalImage, Size.Empty);

                return originalImage;
            }
        }