private static void UpgradeLastApps()

in Office365APIEditor/Program.cs [234:418]


        private static void UpgradeLastApps(StringBuilder startupLog)
        {
            // Migrate individual last app settings to the AccessTokenWizardApps setting.

            string migratedString = "THIS SETTING IS MIGRATED";

            if (Properties.Settings.Default.AccessTokenWizardApps == null)
            {
                Properties.Settings.Default.AccessTokenWizardApps = new Settings.AccessTokenWizardAppContainer();
            }

            if (Properties.Settings.Default.AccessTokenWizardApps.LastApps == null)
            {
                Properties.Settings.Default.AccessTokenWizardApps.LastApps = new Settings.AccessTokenWizardAppSettingCollection();
            }

            if (Properties.Settings.Default.AccessTokenWizardApps.SavedApps == null)
            {
                Properties.Settings.Default.AccessTokenWizardApps.SavedApps = new Settings.AccessTokenWizardAppSettingCollection();
            }

            // Upgrade LastV1EndpointWebApp
            if (Properties.Settings.Default.LastWebAppClientID != migratedString)
            {
                startupLog.AppendLine("Upgrade LastV1EndpointWebApp");

                Properties.Settings.Default.AccessTokenWizardApps.LastApps.Update(Settings.AppSettingType.LastV1EndpointWebApp,
                    new Settings.AccessTokenWizardAppSetting
                    {
                        DisplayName = Settings.AppSettingType.LastV1EndpointWebApp.ToString(),
                        ApplicationId = Properties.Settings.Default.LastWebAppClientID,
                        RedirectUri = Properties.Settings.Default.LastWebAppRedirectURL,
                        Resource = Resources.Graph,
                        ClientSecret = Properties.Settings.Default.LastWebAppClientSecret
                    });

                Properties.Settings.Default.LastWebAppClientID = migratedString;
            }

            // Upgrade LastV1EndpointNativeApp
            if (Properties.Settings.Default.LastNativeAppClientID != migratedString)
            {
                startupLog.AppendLine("Upgrade LastV1EndpointNativeApp");

                Properties.Settings.Default.AccessTokenWizardApps.LastApps.Update(Settings.AppSettingType.LastV1EndpointNativeApp,
                    new Settings.AccessTokenWizardAppSetting
                    {
                        DisplayName = Settings.AppSettingType.LastV1EndpointNativeApp.ToString(),
                        TenantName = Properties.Settings.Default.LastNativeAppTenantName,
                        ApplicationId = Properties.Settings.Default.LastNativeAppClientID,
                        RedirectUri = Properties.Settings.Default.LastNativeAppRedirectURL,
                        Resource = Resources.Graph
                    });

                Properties.Settings.Default.LastNativeAppClientID = migratedString;
            }

            // Upgrade LastV1EndpointAppOnlyByCertApp
            if (Properties.Settings.Default.LastWebAppAppOnlyClientID != migratedString)
            {
                startupLog.AppendLine("Upgrade LastV1EndpointAppOnlyByCertApp");

                Properties.Settings.Default.AccessTokenWizardApps.LastApps.Update(Settings.AppSettingType.LastV1EndpointAppOnlyByCertApp,
                    new Settings.AccessTokenWizardAppSetting
                    {
                        DisplayName = Settings.AppSettingType.LastV1EndpointAppOnlyByCertApp.ToString(),
                        TenantName = Properties.Settings.Default.LastWebAppAppOnlyTenantName,
                        ApplicationId = Properties.Settings.Default.LastWebAppAppOnlyClientID,
                        CertificatePath = Properties.Settings.Default.LastWebAppAppOnlyCertPath,
                        CertificatePassword = Properties.Settings.Default.LastWebAppAppOnlyCertPass,
                        Resource = Resources.Graph
                    });

                Properties.Settings.Default.LastWebAppAppOnlyClientID = migratedString;
            }

            // Upgrade LastV1EndpointAppOnlyByKeyApp
            if (Properties.Settings.Default.LastWebAppAppOnlyByKeyClientID != migratedString)
            {
                startupLog.AppendLine("Upgrade LastV1EndpointAppOnlyByKeyApp");

                Properties.Settings.Default.AccessTokenWizardApps.LastApps.Update(Settings.AppSettingType.LastV1EndpointAppOnlyByKeyApp,
                    new Settings.AccessTokenWizardAppSetting
                    {
                        DisplayName = Settings.AppSettingType.LastV1EndpointAppOnlyByKeyApp.ToString(),
                        TenantName = Properties.Settings.Default.LastWebAppAppOnlyByKeyTenantName,
                        ApplicationId = Properties.Settings.Default.LastWebAppAppOnlyByKeyClientID,
                        Resource = Resources.Graph,
                        ClientSecret = Properties.Settings.Default.LastWebAppAppOnlyByKeyClientSecret
                    });

                Properties.Settings.Default.LastWebAppAppOnlyByKeyClientID = migratedString;
            }

            // Upgrade LastV2EndpointWebApp
            if (Properties.Settings.Default.LastV2WebAppClientID != migratedString)
            {
                startupLog.AppendLine("Upgrade LastV2EndpointWebApp");

                Properties.Settings.Default.AccessTokenWizardApps.LastApps.Update(Settings.AppSettingType.LastV2EndpointWebApp,
                    new Settings.AccessTokenWizardAppSetting
                    {
                        DisplayName = Settings.AppSettingType.LastV2EndpointWebApp.ToString(),
                        TenantName = Properties.Settings.Default.LastV2WebAppTenantName,
                        ApplicationId = Properties.Settings.Default.LastV2WebAppClientID,
                        RedirectUri = Properties.Settings.Default.LastV2WebAppRedirectUri,
                        Scopes = Properties.Settings.Default.LastV2WebAppScopes,
                        ClientSecret = Properties.Settings.Default.LastV2WebAppClientSecret
                    });

                Properties.Settings.Default.LastV2WebAppClientID = migratedString;
            }

            // Upgrade LastV2EndpointNativeApp
            if (Properties.Settings.Default.LastV2MobileAppClientID != migratedString)
            {
                startupLog.AppendLine("Upgrade LastV2EndpointNativeApp");

                Properties.Settings.Default.AccessTokenWizardApps.LastApps.Update(Settings.AppSettingType.LastV2EndpointNativeApp,
                    new Settings.AccessTokenWizardAppSetting
                    {
                        DisplayName = Settings.AppSettingType.LastV2EndpointNativeApp.ToString(),
                        TenantName = Properties.Settings.Default.LastV2MobileAppTenantName,
                        ApplicationId = Properties.Settings.Default.LastV2MobileAppClientID,
                        RedirectUri = Properties.Settings.Default.LastV2MobileAppRedirectUri,
                        Scopes = Properties.Settings.Default.LastV2MobileAppScopes
                    });

                Properties.Settings.Default.LastV2MobileAppClientID = migratedString;
            }

            // Upgrade LastV2EndpointAppOnlyByCertApp
            if (Properties.Settings.Default.LastV2WebAppAppOnlyByCertClientID != migratedString)
            {
                startupLog.AppendLine("Upgrade LastV2EndpointAppOnlyByCertApp");

                Properties.Settings.Default.AccessTokenWizardApps.LastApps.Update(Settings.AppSettingType.LastV2EndpointAppOnlyByCertApp,
                    new Settings.AccessTokenWizardAppSetting
                    {
                        DisplayName = Settings.AppSettingType.LastV2EndpointAppOnlyByCertApp.ToString(),
                        TenantName = Properties.Settings.Default.LastV2WebAppAppOnlyByCertTenantName,
                        ApplicationId = Properties.Settings.Default.LastV2WebAppAppOnlyByCertClientID,
                        CertificatePath = Properties.Settings.Default.LastV2WebAppAppOnlyByCertCertPath,
                        CertificatePassword = Properties.Settings.Default.LastV2WebAppAppOnlyByCertCertPass,
                        Resource = Resources.Graph
                    });

                Properties.Settings.Default.LastV2WebAppAppOnlyByCertClientID = migratedString;
            }

            // Upgrade LastV2EndpointAppOnlyByKeyApp
            if (Properties.Settings.Default.LastV2WebAppAppOnlyByPasswordForMicrosoftGraphClientID != migratedString)
            {
                startupLog.AppendLine("Upgrade LastV2EndpointAppOnlyByKeyApp");

                Properties.Settings.Default.AccessTokenWizardApps.LastApps.Update(Settings.AppSettingType.LastV2EndpointAppOnlyByKeyApp,
                    new Settings.AccessTokenWizardAppSetting
                    {
                        DisplayName = Settings.AppSettingType.LastV2EndpointAppOnlyByKeyApp.ToString(),
                        TenantName = Properties.Settings.Default.LastV2WebAppAppOnlyByPasswordForMicrosoftGraphTenantName,
                        ApplicationId = Properties.Settings.Default.LastV2WebAppAppOnlyByPasswordForMicrosoftGraphClientID,
                        Resource = Resources.Graph,
                        ClientSecret = Properties.Settings.Default.LastV2WebAppAppOnlyByPasswordForMicrosoftGraphClientSecret
                    });

                Properties.Settings.Default.LastV2WebAppAppOnlyByPasswordForMicrosoftGraphClientID = migratedString;
            }

            // Upgrade LastSharePointOnlineAppOnlyApp
            if (Properties.Settings.Default.LastSpoAppOnlyByKeyClientID != migratedString)
            {
                startupLog.AppendLine("Upgrade LastSharePointOnlineAppOnlyApp");

                Properties.Settings.Default.AccessTokenWizardApps.LastApps.Update(Settings.AppSettingType.LastSharePointOnlineAppOnlyApp,
                    new Settings.AccessTokenWizardAppSetting
                    {
                        DisplayName = Settings.AppSettingType.LastSharePointOnlineAppOnlyApp.ToString(),
                        TenantName = Properties.Settings.Default.LastSpoAppOnlyByKeyTenantName,
                        ApplicationId = Properties.Settings.Default.LastSpoAppOnlyByKeyClientID,
                        ClientSecret = Properties.Settings.Default.LastSpoAppOnlyByKeyClientSecret
                    });

                Properties.Settings.Default.LastSpoAppOnlyByKeyClientID = migratedString;
            }
        }