/// <summary>
        /// Returns a <see cref="Xamarin.Forms.Image" /> from the <see cref="ImageSource" /> provided.
        /// </summary>
        /// <param name="source">The <see cref="ImageSource" /> to load the image from.</param>
        /// <param name="currentImage">The current image.</param>
        /// <returns>A properly sized image.</returns>
        private static async Task <Image> GetImageAsync(global::Xamarin.Forms.ImageSource source)
        {
            var image   = new Image();
            var handler = GetHandler(source);

            var imageSource = await handler.LoadImageAsync(source);

            image.Source              = imageSource;
            image.Stretch             = Stretch.UniformToFill;
            image.VerticalAlignment   = VerticalAlignment.Center;
            image.HorizontalAlignment = HorizontalAlignment.Center;

            return(image);
        }
        private static IImageSourceHandler GetHandler(global::Xamarin.Forms.ImageSource source)
        {
            IImageSourceHandler returnValue = null;

            if (source is global::Xamarin.Forms.UriImageSource)
            {
                returnValue = new UriImageSourceHandler();
            }
            else if (source is global::Xamarin.Forms.FileImageSource)
            {
                returnValue = new FileImageSourceHandler();
            }
            else if (source is global::Xamarin.Forms.StreamImageSource)
            {
                returnValue = new StreamImageSourceHandler();
            }
            return(returnValue);
        }