Example #1
0
        private async void SaveCollectionBtn_Click(object sender, RoutedEventArgs e)
        {
            Volume.Saved = true;

            Volume.Image = await APIHandler.DownloadImagesFromURL(Volume.ImageURL, CancellationToken.None);

            DBAccess.SaveVolume(Volume);
            DBAccess.UpdateIssues(Issues);

            SaveCollectionBtn.IsEnabled   = false;
            DeleteCollectionBtn.IsEnabled = true;
        }
Example #2
0
        private async void VolumeDetailsPage_Loaded(object sender, RoutedEventArgs e)
        {
            // If it comes from the database it will have a picture on it
            // and disable save button
            if (DBAccess.IsVolumeSaved(Volume))
            {
                SaveCollectionBtn.IsEnabled   = false;
                DeleteCollectionBtn.IsEnabled = true;

                var bitmap = new BitmapImage();
                var stream = new MemoryStream(DBAccess.FetchVolumePicture(Volume.Id));

                bitmap.BeginInit();
                bitmap.StreamSource = stream;
                bitmap.EndInit();

                VolumeImage.Source = bitmap;
                var tempIssues = DBAccess.FetchIssues(Volume.Id);

                // If the observable collection returned by FetchIssues is assigned to Issues
                // the view won't update. The issues have to be added to the same collection
                // that's already binded
                foreach (var issue in tempIssues)
                {
                    Issues.Add(issue);
                }
            }
            // If volume didn't come from database show image url
            // and enable save button
            else
            {
                SaveCollectionBtn.IsEnabled   = true;
                DeleteCollectionBtn.IsEnabled = false;

                VolumeImage.Source = new BitmapImage(new Uri(Volume.ImageURL, UriKind.Absolute));

                var tempIssues = await APIHandler.GetIssuesAsync(Volume.Id);

                // If the observable collection returned by FetchIssues is assigned to Issues
                // the view won't update. The issues have to be added to the same collection
                // that's already binded
                foreach (var issue in tempIssues)
                {
                    Issues.Add(issue);
                }

                foreach (var issue in Issues)
                {
                    issue.Image = await APIHandler.DownloadImagesFromURL(issue.ImageURL, tokenSource.Token).ConfigureAwait(false);
                }
            }
        }