Esempio n. 1
0
 private void FileLoader_DoWork(object sender, DoWorkEventArgs e)
 {
     ImageResizer.ImageInfo      image    = ImageResizer.ImageInfo.Build(e.Argument);
     ImageResizer.ResizeSettings settings = new ImageResizer.ResizeSettings();
     settings.ScaleMode = ImageResizer.ScaleMode.None;
     //image.ResizeImage(settings);
     e.Result = image;
 }
Esempio n. 2
0
 internal override Uri SaveImage(Image image, string imageName)
 {
     using (ImageResizer.ImageInfo imageI = ImageResizer.ImageInfo.Build(image))
     {
         string destinationfile = UploadFolder + @"\" + imageName;
         imageI.SaveAs(destinationfile);
         return(new Uri(destinationfile));
     }
     //ImageConverter _imageConverter = new ImageConverter();
     //byte[] imageByteArray = (byte[])_imageConverter.ConvertTo(image, typeof(byte[]));
     //string destinationfile = UploadFolder + @"\" + imageName;
     //image.Save(destinationfile);//, System.Drawing.Imaging.ImageFormat.Jpeg);
     //System.IO.File.WriteAllBytes(destinationfile, imageByteArray);
 }
Esempio n. 3
0
        private void FileUploader_DoWork(object sender, DoWorkEventArgs e)
        {
            FTPConnectionSettings ftp = FTPConnectionSettings.LoadSettings();

            if (ftp == null)
            {
                throw new Exception("Не указаны параметры подключения к FTP");
            }

            Uploaders.UploaderFTP uploader = new Uploaders.UploaderFTP(ftp, "quickUploads");
            uploader.Initialize();

            ImageResizer.ImageInfo image = e.Argument as ImageResizer.ImageInfo;

            string pictureName = $"{Guid.NewGuid()}.{image.SourceExtention}";
            Uri    result      = uploader.SaveImage(image.SourceBitmap, pictureName);

            e.Result = result;
        }
Esempio n. 4
0
        public void RunProcess(object sender, DoWorkEventArgs e)
        {
            this.BW         = sender as BackgroundWorker;
            this.Parameters = e.Argument as ProcessorParameters;

            //Loading Items from excel file
            List <PictureItem> items;

            BW.ReportProgress(0, "Считываем таблицу...");
            using (UsingExcel xls = new UsingExcel())
            {
                items = xls.GetPhotoItems(this.Parameters.ExcelInfo);
            }
            if (items == null || items.Count == 0)
            {
                throw new Exception("Нет записей в списке");
            }

            string uploadDir = string.IsNullOrEmpty(Parameters.UploadDirectory) ? Guid.NewGuid().ToString() : Parameters.UploadDirectory;

            if (Parameters.UploadDirection == Uploaders.UploadDirection.LOCAL)
            {
                uploadDir = System.IO.Path.GetDirectoryName(Parameters.ExcelInfo.FilePath) + "\\" + uploadDir;
            }

            Uploaders.UploaderBuilder builder  = new Uploaders.UploaderBuilder(uploadDir);
            Uploaders.IUploader       uploader = builder.Build(Parameters.UploadDirection);

            uploader.Initialize();

            BW.ReportProgress(0, "Сохранение фото...");
            ProgressTicker ticker = new ProgressTicker(items.Count, 1);

            ticker.ProgressChanged += Ticker_ProgressChanged;

            List <PictureItem> uploadedItems = new List <PicturesUploader.PictureItem>();

            foreach (var item in items)
            {
                if (BW.CancellationPending)
                {
                    e.Cancel = true;
                    break;
                }

                if (item.Error == null)
                {
                    try
                    {
                        ImageResizer.ImageInfo image = BuildImage(item.Address);
                        image.ResizeImage(this.Parameters.ImageResizeSettings);
                        string pictureName = $"{item.Name}.{image.SourceExtention}";
                        item.Address = uploader.SaveImage(image.DestinationBitmap, pictureName);
                    }
                    catch (ImageResizer.ImageCorruptedException)
                    {
                        item.Error = new Exception("Не прямая ссылка на изображение, либо файл поврежден");
                    }
                    //catch(System.Net.WebException wex)
                    //{
                    //    item.Error = wex;
                    //}
                    catch (Exception ex)
                    {
                        item.Error = ex;
                    }
                }
                uploadedItems.Add(item);
                ticker.Tick();
            }


            using (UsingExcel xls = new UsingExcel())
            {
                BW.ReportProgress(0, "Записываем результат в Excel файл");
                xls.UpdatePhotoItems(uploadedItems, this.Parameters.ExcelInfo);
            }
            e.Result = items.Count;
        }