BaconographyWP8.PlatformServices.ImagesService.ImageStreamFromUrl C# (CSharp) Method

ImageStreamFromUrl() public static method

public static ImageStreamFromUrl ( string url ) : Task
url string
return Task
        public static async Task<Stream> ImageStreamFromUrl(string url)
        {
            var uri = new Uri(url);

            string filename = Path.GetFileName(uri.LocalPath);

            if (filename.EndsWith(".jpg") || filename.EndsWith(".png") || filename.EndsWith(".jpeg") || filename.EndsWith(".gif"))
            {
            }
            else
            {
                var targetHost = uri.DnsSafeHost.ToLower(); //make sure we can compare caseless
                IEnumerable<Tuple<string, string>> imageAPIResults = null;
                switch (targetHost)
                {
                    case "imgur.com":
                        imageAPIResults = await Imgur.GetImagesFromUri("", uri);
                        break;
                    case "min.us":
                        imageAPIResults = await Minus.GetImagesFromUri("", uri);
                        break;
                    case "www.quickmeme.com":
                    case "i.qkme.me":
                    case "quickmeme.com":
                    case "qkme.me":
                        imageAPIResults = Quickmeme.GetImagesFromUri("", uri);
                        break;
                    case "memecrunch.com":
                        imageAPIResults = Memecrunch.GetImagesFromUri("", uri);
                        break;
                    case "www.flickr.com":
                    case "flickr.com":
                        imageAPIResults = await Flickr.GetImagesFromUri("", uri);
                        break;
                }

                if (imageAPIResults != null)
                {
                    uri = new Uri(imageAPIResults.First().Item2);
                    filename = Path.GetFileName(uri.LocalPath);
                }
            }


            if (!(filename.EndsWith(".jpg") || filename.EndsWith(".png") || filename.EndsWith(".jpeg") || filename.EndsWith(".gif")))
                return null;

            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
            request.AllowReadStreamBuffering = true;
            using (WebResponse response = await SimpleHttpService.GetResponseAsync(request))
            {
               return response.GetResponseStream();
            }
        }