Paint.PictureIOManager.CopyImage C# (CSharp) Method

CopyImage() public method

Copies the image (and all associated data files) to the specified image name
public CopyImage ( IFilenameResolver destinationImageFilenameResolver ) : void
destinationImageFilenameResolver IFilenameResolver /// Details of where we need to copy the files. ///
return void
        public void CopyImage(IFilenameResolver destinationImageFilenameResolver)
        {
            if (!Directory.Exists(destinationImageFilenameResolver.DataFolder))
            {
                Directory.CreateDirectory(destinationImageFilenameResolver.DataFolder);
            }

            File.Copy(this.filenameResolver.MasterImageInfoFilename, destinationImageFilenameResolver.MasterImageInfoFilename);
            File.Copy(this.filenameResolver.MasterImageFilename, destinationImageFilenameResolver.MasterImageFilename);

            var imageStateData = this.LoadImageStateData();
            int end = imageStateData.FirstSavePoint == 0 ? imageStateData.LastSavePoint : imageStateData.MaxUndoRedoCount - 1;

            for (int count = 0; count <= end; count++)
            {
                File.Copy(this.filenameResolver.ImageSavePointFilename(count), destinationImageFilenameResolver.ImageSavePointFilename(count));
                File.Copy(this.filenameResolver.MasterCanvasRecorderFilename(count), destinationImageFilenameResolver.MasterCanvasRecorderFilename(count));
            }
        }

Usage Example

        /// <summary>
        /// Copies the image and all associated data
        /// </summary>
        /// <returns>Filename for the newly created image</returns>
        /// <param name='pictureId'>
        /// Identifier of the image to copy
        /// </param>
        private string CopyImage(Guid pictureId)
        {
            var existingFileFilenameResolver = this.CreateFilenameResolver(pictureId);
            var pictureIOManager = new PictureIOManager(existingFileFilenameResolver);

            var newFileFilenameResolver = this.CreateFilenameResolver(Guid.NewGuid());

            pictureIOManager.CopyImage(newFileFilenameResolver);

            return newFileFilenameResolver.MasterImageFilename;
        }