Esempio n. 1
0
        private void SearchAsyncPatternButton_OnClick(object sender, RoutedEventArgs e)
        {
            Func <string, ICredentials, string> downloadStringFunc = (address, credentials) =>
            {
                var client = new WebClient {
                    Credentials = credentials
                };
                return(client.DownloadString(address));
            };

            Action <SearchItemResult> addItemAction = item => _searchInfo.SearchItemResults.Add(item);

            foreach (var imageRequest in GetSearchRequests())
            {
                IImageRequest localRequest = imageRequest;
                downloadStringFunc.BeginInvoke(imageRequest.Url, imageRequest.Credentials, asyncResult =>
                {
                    string response = downloadStringFunc.EndInvoke(asyncResult);
                    IEnumerable <SearchItemResult> images = localRequest.Parse(response);
                    foreach (var image in images)
                    {
                        Dispatcher.Invoke(addItemAction, image);
                    }
                }, null);
            }
        }
Esempio n. 2
0
        public override IList <Image> SaveImageForAllSizes(IImageRequest item, string tag, bool keepOriginalSize)
        {
            var photoResizes = ImageManager.ImageResizes.Where(x => x.Value.Enabled);

            using (var stream = item.Stream)
            {
                string extension = GetExtension(item.MimeType);
                tag = tag ?? DateTime.Now.ToString("dd_MM_yyyy_hh_mm_ss_ffff");
                string name = string.Format("{0}_{{size}}{1}", tag, extension);

                List <Image> photos =
                    photoResizes.Select(
                        resize =>
                        SaveImage(
                            stream,
                            resize.Value.Width,
                            resize.Value.Height,
                            resize.Key,
                            name.Replace("{size}", string.Format("{0}", resize.Value.Name.ToLower())),
                            item.MimeType)).ToList();

                if (keepOriginalSize)
                {
                    using (System.Drawing.Image image = System.Drawing.Image.FromStream(stream))
                    {
                        var photo = SaveImage(stream, image.Width, image.Height, null, name, item.MimeType ?? "image/jpeg");
                        photos.Add(photo);
                    }
                }

                return(photos);
            }
        }
Esempio n. 3
0
        private async void AltTaskBased_OnClick(object sender, RoutedEventArgs e)
        {
            _cancellationTokenSource = new CancellationTokenSource();

            try
            {
                foreach (var request in GetSearchRequests())
                {
                    var httpClient = new HttpClient(new HttpClientHandler {
                        Credentials = request.Credentials
                    });

                    var responseMessage = await httpClient.GetAsync(request.Url, _cancellationTokenSource.Token);

                    var response = await responseMessage.Content.ReadAsStringAsync();

                    IImageRequest localRequest = request;
                    await Task.Run(() =>
                    {
                        var images = localRequest.Parse(response);
                        foreach (var image in images)
                        {
                            _cancellationTokenSource.Token.ThrowIfCancellationRequested();
                            _searchInfo.SearchItemResults.Add(image);
                        }
                    }, _cancellationTokenSource.Token);
                }
            }
            catch (OperationCanceledException canceledEx)
            {
                MessageBox.Show(canceledEx.Message);
            }
        }
Esempio n. 4
0
        public override Image SaveImageResize(IImageRequest item, string resizeName)
        {
            // todo: if resizeName doesn't exist, then we need to throw an exception
            var photoResize = ImageManager.ImageResizes[resizeName];

            using (var stream = item.Stream)
            {
                string extension = GetExtension(item.MimeType);
                string name      = string.Format("{0}{1}", DateTime.Now.ToString("dd_MM_yyyy_hh_mm_ss_ffff"), extension);
                var    photo     = SaveImage(
                    stream, photoResize.Width, photoResize.Height, resizeName, name, item.MimeType ?? "image/jpeg");

                return(photo);
            }
        }
Esempio n. 5
0
 private void SearchAsyncEventPatternButton_OnClick(object sender, RoutedEventArgs e)
 {
     foreach (var request in GetSearchRequests())
     {
         var client = new WebClient {
             Credentials = request.Credentials
         };
         IImageRequest localRequest = request;
         client.DownloadStringCompleted += (o, args) =>
         {
             string response = args.Result;
             IEnumerable <SearchItemResult> images = localRequest.Parse(response);
             foreach (var image in images)
             {
                 _searchInfo.SearchItemResults.Add(image);
             }
         };
         client.DownloadStringAsync(new Uri(request.Url));
     }
 }
Esempio n. 6
0
 public override IList <Image> SaveImageForAllSizes(IImageRequest photoRequest, string container, string photoNamePattern, bool keepOriginalSize)
 {
     throw new NotImplementedException();
 }
Esempio n. 7
0
 /// <summary>
 /// Saves the photo for all sizes.
 /// </summary>
 /// <param name="photoRequest">The item.</param>
 /// <param name="container">The container.</param>
 /// <param name="photoNamePattern">Name of the photo unique.</param>
 /// <param name="keepOriginalSize">if set to <c>true</c> [keep original size].</param>
 /// <returns></returns>
 public abstract IList <Image> SaveImageForAllSizes(IImageRequest photoRequest, string container, string photoNamePattern, bool keepOriginalSize);
Esempio n. 8
0
 /// <summary>
 /// The save photo resize.
 /// </summary>
 /// <param name="item">
 /// The item.
 /// </param>
 /// <param name="resizeName">
 /// The resize name.
 /// </param>
 /// <returns>
 /// The JamesRocks.Images.Models.Image.
 /// </returns>
 public abstract Image SaveImageResize(IImageRequest item, string resizeName);