private void OnXmlFileDropped(string file) { if (this.DatabaseRelease.Images.Count != 0 || this.DatabaseRelease.AdditionalFiles.Count != 0) { if (!Dialogs.Confirm("This will replace all images, additional files and other data. Continue?")) { return; } } WaitWindow waitWindow = new WaitWindow("Reading release data..."); waitWindow.ShowDialog(this, () => { var tempFactory = new MemorySessionFactory(); var tempManager = tempFactory.CreateCollectionManager(); using (XmlReleaseImporter xmlReleaseImporter = new XmlReleaseImporter(file, tempManager)) { Release release = xmlReleaseImporter.ImportRelease(); this.Dispatcher.InvokeAction(() => { this.LoadDataFromRelease(release, tempManager.ImageHandler); tempManager.Dispose(); tempFactory.Dispose(); }); } }); }
public void LoadReleaseFromXml(string path) { this.busyIndicator.IsBusy = true; new Task(() => { using (XmlReleaseImporter xmlReleaseImporter = new XmlReleaseImporter(path, this.CollectionManager)) { this.release = xmlReleaseImporter.ImportRelease(); } this.Dispatcher.InvokeAction(() => { this.releaseDetails.Visibility = Visibility.Visible; this.tracklistView.Visibility = Visibility.Visible; this.busyIndicator.IsBusy = false; this.UpdateUI(); }); }).Start(); }