Example #1
0
 public FolderView(IEnumerable<FolderItem> children, HubicCredential credential, Hubic hubic)
 {
     _children = children;
     _credential = credential;
     _hubic = hubic;
     InitializeComponent();
     Loaded += FolderView_Loaded;
 }
Example #2
0
        public static string GetImagePath(string fileRelPath, string basePath,
            string appDataThumbnailPath, Hubic hubic)
        {
            var task = GetImagePathAsync(fileRelPath, basePath, appDataThumbnailPath, hubic);

            task.Wait();

            return task.Result;
        }
Example #3
0
        public MainWindow()
        {
            InitializeComponent();
            DataContext = this;

            if (string.IsNullOrEmpty(Settings.Default.ClientId) || string.IsNullOrEmpty(Settings.Default.ClientSecret))
            {
                var sw = new SettingsWindow();
                sw.ShowDialog();
            }

            _hubic = new Hubic(Settings.Default.ClientId, Settings.Default.RedirectUri, Settings.Default.ClientSecret);
        }
Example #4
0
        public static async Task<string> GetImagePathAsync(string fileRelPath, string basePath, string appDataThumbnailPath, Hubic hubic)
        {
            var fileName = fileRelPath.Substring(fileRelPath.LastIndexOf('/') + 1);
            var folder = Path.Combine(basePath, appDataThumbnailPath);

            var file = new FileInfo(folder + "/" + fileName);

            if (file.Exists)
            {
                return appDataThumbnailPath + "/" + fileName;
            }

            var bytes = await hubic.GetImageFromCloud(fileRelPath);

            using (var image = ByteArrayToImage(bytes.Value)) /* Creates Image from specified data stream */
            {
                double width = image.Width / (double)image.Height * 128.0;
                using (var thumb = image.GetThumbnailImage(
                     (int)width, /* width*/
                     128, /* height*/
                     () => false,
                     IntPtr.Zero))
                {
                    var jpgInfo = ImageCodecInfo.GetImageEncoders().First(codecInfo => codecInfo.MimeType == "image/png"); /* Returns array of image encoder objects built into GDI+ */
                    using (var encParams = new EncoderParameters(1))
                    {
                        if (!Directory.Exists(folder))
                        {
                            Directory.CreateDirectory(folder);
                        }
                        string outputPath = Path.Combine(basePath, appDataThumbnailPath, fileName);
                        long quality = 100;
                        encParams.Param[0] = new EncoderParameter(Encoder.Quality, quality);
                        thumb.Save(outputPath, jpgInfo, encParams);
                    }
                }
            }
            return appDataThumbnailPath + "/" + fileName;
        }