internal static void SetAppInsightsKey(AdminCenterClient adminCenterClient, string environmentName, Guid appInsightsKey) { var applicationInsights = new ApplicationInsights { Key = appInsightsKey.ToString(), }; adminCenterClient.SetApplicationInsightsInstrumentationKey("BusinessCentral", environmentName, applicationInsights); }
internal static void ListEnvironments(AdminCenterClient adminCenterClient) { EnvironmentListResult environments = adminCenterClient.GetEnvironments(); foreach (var environment in environments.Value) { Utils.ConsoleWriteLineAsJson(environment); } }
internal static void GetAppOperations(AdminCenterClient adminCenterClient, string environmentName, Guid appId) { EnvironmentAppOperationListResult appOperations = adminCenterClient.GetAppOperations("BusinessCentral", environmentName, appId); foreach (var environmentAppOperation in appOperations.Value) { Utils.ConsoleWriteLineAsJson(environmentAppOperation); } }
internal static void GetAvailableAppUpdates(AdminCenterClient adminCenterClient, string environmentName) { EnvironmentAppUpdateListResult appUpdates = adminCenterClient.GetAvailableAppUpdates("BusinessCentral", environmentName); foreach (var appUpdate in appUpdates.Value) { Utils.ConsoleWriteLineAsJson(appUpdate); } }
internal static void GetInstalledApps(AdminCenterClient adminCenterClient, string environmentName) { EnvironmentAppListResult installedApps = adminCenterClient.GetInstalledApps("BusinessCentral", environmentName); foreach (var installedApp in installedApps.Value) { Utils.ConsoleWriteLineAsJson(installedApp); } }
internal static void GetNotificationRecipients(AdminCenterClient adminCenterClient) { NotificationRecipientListResult notificationRecipients = adminCenterClient.GetNotificationRecipients(); foreach (var notificationRecipient in notificationRecipients.Value) { Utils.ConsoleWriteLineAsJson(notificationRecipient); } }
internal static void GetActiveSessions(AdminCenterClient adminCenterClient, string environmentName) { EnvironmentSessionListResult sessions = adminCenterClient.GetSessions("BusinessCentral", environmentName); foreach (var session in sessions.Value) { Utils.ConsoleWriteLineAsJson(session); } }
internal static void CopyProductionEnvironmentToSandboxEnvironment(AdminCenterClient adminCenterClient, string sourceEnvironmentName, string targetEnvironmentName) { var copyEnvironmentRequest = new CopyEnvironmentRequest { EnvironmentName = targetEnvironmentName, Type = "Sandbox", }; Microsoft.Dynamics.BusinessCentral.AdminCenter.Models.Environment newEnvironment = adminCenterClient.CopyEnvironment("BusinessCentral", sourceEnvironmentName, copyEnvironmentRequest); Utils.ConsoleWriteLineAsJson(newEnvironment); }
internal static void CreateNewEnvironment(AdminCenterClient adminCenterClient, string newEnvironmentName, string environmentType, string countryCode) { var createEnvironmentRequest = new CreateEnvironmentRequest { CountryCode = countryCode, EnvironmentType = environmentType }; Microsoft.Dynamics.BusinessCentral.AdminCenter.Models.Environment newEnvironment = adminCenterClient.CreateEnvironment("BusinessCentral", newEnvironmentName, createEnvironmentRequest); Utils.ConsoleWriteLineAsJson(newEnvironment); }
internal static void SetUpdateWindow(AdminCenterClient adminCenterClient, string environmentName, DateTime preferredStartTime, DateTime preferredEndTime) { var upgradeSettings = new UpgradeSettings { PreferredStartTimeUtc = preferredStartTime, PreferredEndTimeUtc = preferredEndTime, }; UpgradeSettings newUpgradeSettings = adminCenterClient.SetUpgradeSettings("BusinessCentral", environmentName, upgradeSettings); Utils.ConsoleWriteLineAsJson(newUpgradeSettings); }
internal static void AddNotificationRecipient(AdminCenterClient adminCenterClient, string emailAddress, string name) { var notificationRecipient = new NotificationRecipient { Email = emailAddress, Name = name, }; NotificationRecipient addedNotificationRecipient = adminCenterClient.SetNotificationRecipient(notificationRecipient); Utils.ConsoleWriteLineAsJson(addedNotificationRecipient); }
internal static void UpdateApp(AdminCenterClient adminCenterClient, string environmentName, Guid appId, string newAppVersion) { var scheduleEnvironmentAppInstallRequest = new ScheduleEnvironmentAppInstallRequest { TargetVersion = newAppVersion, UseEnvironmentUpdateWindow = false, AcceptIsvEula = true, InstallOrUpdateNeededDependencies = true, AllowPreviewVersion = false, }; EnvironmentAppOperation appOperation = adminCenterClient.ScheduleAppInstall("BusinessCentral", environmentName, appId, scheduleEnvironmentAppInstallRequest); Utils.ConsoleWriteLineAsJson(appOperation); }
static void Main() { // Create a token credential, which enables us to authenticate to the Business Central Admin Center APIs. // Note 1: This will open the AAD login page in a browser window. // Note 2: You can also skip passing in options altogether if you want to log into your own Business Central admin center, i.e., not a delegated admin scenario var interactiveBrowserCredentialOptions = new InteractiveBrowserCredentialOptions { ClientId = "a19cb26a-2e4c-408b-82e1-6311742ecc50", // partner's AAD app id RedirectUri = new Uri("http://localhost"), // partner's AAD app redirect URI TenantId = "f5b6b245-5dd2-4bf5-94d4-35ef04d73c6d", // customer's tenant id }; var tokenCredential = new InteractiveBrowserCredential(interactiveBrowserCredentialOptions); // Create the Admin Center client var adminCenterClient = new AdminCenterClient(tokenCredential); // Manage environments Environments.ListEnvironments(adminCenterClient); Environments.CreateNewEnvironment(adminCenterClient, "MySandbox", "Sandbox", "DK"); Environments.CopyProductionEnvironmentToSandboxEnvironment(adminCenterClient, "MyProd", "MySandboxAsACopy"); Environments.SetAppInsightsKey(adminCenterClient, "MyProd", new Guid("0da21b54-841e-4a64-a117-6092784245f9")); Environments.GetDatabaseSize(adminCenterClient, "MyProd"); Environments.GetSupportSettings(adminCenterClient, "MyProd"); // Manage support settings NotificationRecipients.GetNotificationRecipients(adminCenterClient); NotificationRecipients.AddNotificationRecipient(adminCenterClient, "*****@*****.**", "Partner Notifications Mail Group"); // Manage apps Apps.GetInstalledApps(adminCenterClient, "MyProd"); Apps.GetAvailableAppUpdates(adminCenterClient, "MyProd"); Apps.UpdateApp(adminCenterClient, "MyProd", new Guid("334ef79e-547e-4631-8ba1-7a7f18e14de6"), "16.0.11240.12188"); Apps.GetAppOperations(adminCenterClient, "MyProd", new Guid("334ef79e-547e-4631-8ba1-7a7f18e14de6")); // Manage active sessions Sessions.GetActiveSessions(adminCenterClient, "MyProd"); Sessions.CancelSession(adminCenterClient, "MyProd", 196719); // Manage update settings UpdateSettings.GetUpdateWindow(adminCenterClient, "MyProd"); UpdateSettings.SetUpdateWindow(adminCenterClient, "MyProd", new DateTime(2020, 06, 01, 4, 15, 0), new DateTime(2020, 06, 01, 11, 30, 0)); UpdateSettings.GetScheduledUpdates(adminCenterClient, "MyProd"); }
internal static void CancelSession(AdminCenterClient adminCenterClient, string environmentName, int sessionId) { adminCenterClient.RemoveSession("BusinessCentral", environmentName, sessionId.ToString()); }
internal static void GetUpdateWindow(AdminCenterClient adminCenterClient, string environmentName) { UpgradeSettings upgradeSettings = adminCenterClient.GetUpgradeSettings("BusinessCentral", environmentName); Utils.ConsoleWriteLineAsJson(upgradeSettings); }
internal static void GetSupportSettings(AdminCenterClient adminCenterClient, string environmentName) { SupportContact supportContact = adminCenterClient.GetSupportContactInformation("BusinessCentral", environmentName); Utils.ConsoleWriteLineAsJson(supportContact); }
internal static void GetDatabaseSize(AdminCenterClient adminCenterClient, string environmentName) { Microsoft.Dynamics.BusinessCentral.AdminCenter.Models.Environment environment = adminCenterClient.GetEnvironment("BusinessCentral", environmentName, skipDbSize: false); Utils.ConsoleWriteLineAsJson(environment.DatabaseSize); }
internal static void GetScheduledUpdates(AdminCenterClient adminCenterClient, string environmentName) { ScheduledUpgrade scheduledUpgrade = adminCenterClient.GetScheduledUpgrade("BusinessCentral", environmentName); Utils.ConsoleWriteLineAsJson(scheduledUpgrade); }