public ExportTester(ICollectionManager collectionManager)
                : base(collectionManager)
            {
                this.factory = new MemorySessionFactory();
                this.memoryCollection = this.factory.CreateCollectionManager();

                this.releaseComparer = new ReleaseEqualityComparer(true);
                this.importTester = new ImportTester(this.memoryCollection);
            }
        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();
                    });
                }
            });
        }