コード例 #1
0
        public async Task <string> DownloadByIdAsync(string Id, string name, string filePath, string downloadPath)
        {
            var photoClient = new RestClient(_getSizedURI);
            var pRequest    = new RestRequest();

            pRequest.AddParameter("nojsoncallback", 1);
            pRequest.AddParameter("format", _format);
            pRequest.AddParameter("photo_id", Id);
            pRequest.AddParameter("api_key", _apiKey);

            var photoQueryResult = await ExecuteAsync(photoClient, pRequest);

            if (photoQueryResult.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var photoResponse   = JsonConvert.DeserializeObject <PhotoSizesResponse>(photoQueryResult.Content);
                var originalSizeUri = photoResponse.Sizes.Size.FirstOrDefault(s => s.Label == "Original").Source.ToString();

                using (WebClient client = new WebClient())
                {
                    if (string.IsNullOrEmpty(filePath))
                    {
                        filePath = ImageNameManager.ResultPathGenerator(originalSizeUri, downloadPath, name);
                    }
                    if (!File.Exists(filePath))
                    {
                        await client.DownloadFileTaskAsync(new Uri(originalSizeUri), filePath);
                    }
                    return(filePath);
                }
            }
            return(null);
        }
        public async Task InitializeAsync(ImageDetailNavigationParams imageDetailNavigationArgs, NavigationMode navigationMode)
        {
            Source = imageDetailNavigationArgs.Source;
            _count = _hTTPService.GetCount();
            if (_count != 0)
            {
                if (!string.IsNullOrEmpty(imageDetailNavigationArgs.Id) && navigationMode == NavigationMode.New)
                {
                    SelectedImage = Source.FirstOrDefault(i => i.Id == imageDetailNavigationArgs.Id);
                }
                else if (!string.IsNullOrEmpty(imageDetailNavigationArgs.Name) && navigationMode == NavigationMode.New)
                {
                    SelectedImage = Source.FirstOrDefault(i => i.Name == imageDetailNavigationArgs.Name);
                }
                else
                {
                    var selectedImageId = await ApplicationData.Current.LocalSettings.ReadAsync <string>(SpotlightViewModel.ImageGallerySelectedIdKey);

                    if (!string.IsNullOrEmpty(selectedImageId))
                    {
                        SelectedImage
                            = Source.FirstOrDefault(i => i.Id == selectedImageId);
                    }
                }

                SelectedImage.URI = await _hTTPService.DownloadByIdAsync(ImageNameManager.GetId(SelectedImage.Name), SelectedImage.Name, null, _iOManager.DownloadPath);

                RaisePropertyChanged(nameof(SelectedImage));

                var animation = ConnectedAnimationService.GetForCurrentView().GetAnimation(SpotlightViewModel.ImageGalleryAnimationOpen);
                animation?.TryStart(_image);
            }
        }
コード例 #3
0
        public async Task DownloadImage(string Url, string id = null, string name = null, string Path = null)
        {
            string _path   = Path ?? DownloadPath;
            var    newName = name.Replace(" ", string.Empty).Replace("'", string.Empty).Replace("(", string.Empty).Replace(")", string.Empty);

            using (WebClient client = new WebClient())
            {
                var path = ImageNameManager.ResultPathGenerator(Url, _path, id, newName);
                if (!File.Exists(path))
                {
                    if (!Directory.Exists(new FileInfo(path).Directory.FullName))
                    {
                        Directory.CreateDirectory(new FileInfo(path).Directory.FullName);
                    }
                    try
                    {
                        await client.DownloadFileTaskAsync(new Uri(Url), path);
                    }
                    catch (Exception ex)
                    {
                        //throw new Exception("couldnt download Image",ex);
                    }
                }
            }
        }
コード例 #4
0
        public async Task <ObservableCollection <ImageDTO> > GetGalleryDataAsync(int page, bool IsTemplate = true)
        {
            StorageFolder dataFolder;

            if (IsTemplate)
            {
                dataFolder = await StorageFolder.GetFolderFromPathAsync(Path.Combine(_iOManager.TemplatePath, page.ToString()));
            }
            else
            {
                dataFolder = await StorageFolder.GetFolderFromPathAsync(Path.Combine(_iOManager.DownloadPath, page.ToString()));
            }

            var data  = new ObservableCollection <ImageDTO>();
            var items = await dataFolder.GetItemsAsync();

            var ListItems = items.ToList();

            foreach (var item in ListItems)
            {
                var id = ImageNameManager.GetId(item.Name);

                data.Add(new ImageDTO()
                {
                    URI  = item.Path,
                    Id   = id.ToString(),
                    Name = item.Name
                });
            }

            return(data);
        }
        public async Task MoveRight()
        {
            var newId = GetNewId(false);

            if (Source.Any(e => e.Id == newId))
            {
                SelectedImage     = Source.FirstOrDefault(e => e.Id == newId);
                SelectedImage.URI = await _hTTPService.DownloadByIdAsync(newId, SelectedImage.Name, ImageNameManager.ResultPathGenerator(SelectedImage.URI, _iOManager.DownloadPath, SelectedImage.Id, SelectedImage.Name), null);

                RaisePropertyChanged(nameof(SelectedImage));
            }
        }
 public async Task <string> DownLoadSelectedAsync()
 {
     return(await _hTTPService.DownLoadAsync(new Uri(SelectedImage.URI), ImageNameManager.ResultPathGenerator(SelectedImage.URI, _iOManager.DownloadPath, SelectedImage.Id, SelectedImage.Name)));
 }