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; }
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); } } }