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); } }
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); } }
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); } }
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); } }
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)); } }
public override IList <Image> SaveImageForAllSizes(IImageRequest photoRequest, string container, string photoNamePattern, bool keepOriginalSize) { throw new NotImplementedException(); }
/// <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);
/// <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);