/// <inheritdoc />
        public async Task ExportAsync()
        {
            var openDialogOptions = new OpenDialogOptions
            {
                Title      = Translator.Translate("Please choose the Export location"),
                Properties = new[] { OpenDialogProperty.openDirectory }
            };
            var exportPath =
                (await ElectronHelper.ShowOpenDialogAsync(ElectronHelper.GetBrowserWindow(), openDialogOptions)).FirstOrDefault();

            if (!string.IsNullOrWhiteSpace(exportPath))
            {
                ExportStatus = ExportStatus.Exporting;

                // this is really not nice, but otherwise,
                // the UI won't be refreshed and no status message is displayed.
                ElectronHelper.ReloadBrowserWindow();

                CurrentProject.ExportImages(exportPath, i => ElectronHelper.SetProgressBar(i));

                ExportStatus = ExportStatus.ExportSuccessful;
                ElectronHelper.SetProgressBar(-1); // remove progress bar

                // this is really not nice, but otherwise,
                // the UI won't be refreshed and no status message is displayed.
                ElectronHelper.ReloadBrowserWindow();
            }
        }
        /// <inheritdoc />
        public async Task LoadImagesAsync()
        {
            var openDialogOptions = new OpenDialogOptions
            {
                Title      = Translator.Translate("Please choose your Images"),
                Properties = new[] { OpenDialogProperty.openFile, OpenDialogProperty.multiSelections },
                Filters    = new[]
                {
                    new FileFilter
                    {
                        Extensions = new[] { "jpg", "png", "gif" }, Name = Translator.Translate("Images")
                    }
                }
            };
            var imageFilePaths = await ElectronHelper.ShowOpenDialogAsync(ElectronHelper.GetBrowserWindow(), openDialogOptions);

            if (imageFilePaths != null && imageFilePaths.Any())
            {
                await CurrentProject.AddImagesAsync(imageFilePaths);
            }
        }
        /// <inheritdoc />
        public async Task LoadProjectAsync()
        {
            var openDialogOptions = new OpenDialogOptions
            {
                Title      = Translator.Translate("Please choose your Project File"),
                Properties = new[] { OpenDialogProperty.openFile },
                Filters    = new[]
                {
                    new FileFilter
                    {
                        Extensions = new[] { "json" }, Name = Translator.Translate("Project File")
                    }
                }
            };

            var projectFilePath = (await ElectronHelper.ShowOpenDialogAsync(ElectronHelper.GetBrowserWindow(), openDialogOptions))
                                  .FirstOrDefault();

            if (!string.IsNullOrWhiteSpace(projectFilePath))
            {
                await CurrentProject.LoadAsync(projectFilePath);
            }
        }