private async void SettingsToolStripMenuItem_Click(object sender, EventArgs e)
 {
     using (var dialog = new AnnotationConfigurationDialog())
     {
         dialog.StartPosition = FormStartPosition.CenterParent;
         dialog.Setup(this._annotationConfig);
         var dialogResult = dialog.ShowDialog(this);
         if (dialogResult == DialogResult.OK)
         {
             await this._annotationPackageProvider.SetAnnotationConfigAsync(this._annotationConfig);
         }
     }
 }
        public Main()
        {
            this.StartPosition = FormStartPosition.CenterScreen;

            try
            {
                this._annotationPackageProvider = new AmazonAnnotationPackageProvider();
            }
            catch (TaskCanceledException)
            {
                MessageBox.Show("The local database took too long to respond.\r\n" +
                                "Make sure your config is correctly setup. Are MinIO and your local DynamoDB running?\r\n" +
                                "Refer to the README.md for further information on how to correctly setup a local database.",
                                "Database Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                this.Load += (s, e) => this.Close();
                return;
            }
            catch (Exception)
            {
                MessageBox.Show("The configuration is invalid", "Configuration error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                this.Load += (s, e) => this.Close();
                return;
            }

            this._annotationConfig = this._annotationPackageProvider.GetAnnotationConfigAsync().GetAwaiter().GetResult();
            if (this._annotationConfig == null)
            {
                this._annotationConfig = new AnnotationConfig();

                using (var configurationDialog = new AnnotationConfigurationDialog())
                {
                    configurationDialog.Setup(this._annotationConfig);
                    var dialogResult = configurationDialog.ShowDialog();

                    if (dialogResult == DialogResult.OK)
                    {
                        this._annotationPackageProvider.SetAnnotationConfigAsync(this._annotationConfig);
                    }
                    else
                    {
                        this.Load += (s, e) => this.Close();
                        return;
                    }
                }
            }

            this.InitializeComponent();

            this.Text = $"Alturos Image Annotation {Application.ProductVersion}";
            this.downloadControl.Dock = DockStyle.Fill;

            this.annotationPackageListControl.Setup(this._annotationPackageProvider);
            this.annotationImageListControl.Setup(this._annotationPackageProvider);

            this.autoplaceAnnotationsToolStripMenuItem.Checked = true;

            this.annotationDrawControl.AutoplaceAnnotations = true;
            this.annotationDrawControl.SetObjectClasses(this._annotationConfig.ObjectClasses);
            this.annotationDrawControl.SetLabelsVisible(false);

            this.tagEditControl.SetConfig(this._annotationConfig);
        }