예제 #1
0
 internal static void SetAppInsightsKey(AdminCenterClient adminCenterClient, string environmentName, Guid appInsightsKey)
 {
     var applicationInsights = new ApplicationInsights
     {
         Key = appInsightsKey.ToString(),
     };
     adminCenterClient.SetApplicationInsightsInstrumentationKey("BusinessCentral", environmentName, applicationInsights);
 }
예제 #2
0
 internal static void ListEnvironments(AdminCenterClient adminCenterClient)
 {
     EnvironmentListResult environments = adminCenterClient.GetEnvironments();
     foreach (var environment in environments.Value)
     {
         Utils.ConsoleWriteLineAsJson(environment);
     }
 }
예제 #3
0
파일: Apps.cs 프로젝트: tino-teuber/BCTech
    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);
        }
    }
예제 #4
0
파일: Apps.cs 프로젝트: tino-teuber/BCTech
    internal static void GetAvailableAppUpdates(AdminCenterClient adminCenterClient, string environmentName)
    {
        EnvironmentAppUpdateListResult appUpdates = adminCenterClient.GetAvailableAppUpdates("BusinessCentral", environmentName);

        foreach (var appUpdate in appUpdates.Value)
        {
            Utils.ConsoleWriteLineAsJson(appUpdate);
        }
    }
예제 #5
0
파일: Apps.cs 프로젝트: tino-teuber/BCTech
    internal static void GetInstalledApps(AdminCenterClient adminCenterClient, string environmentName)
    {
        EnvironmentAppListResult installedApps = adminCenterClient.GetInstalledApps("BusinessCentral", environmentName);

        foreach (var installedApp in installedApps.Value)
        {
            Utils.ConsoleWriteLineAsJson(installedApp);
        }
    }
예제 #6
0
    internal static void GetNotificationRecipients(AdminCenterClient adminCenterClient)
    {
        NotificationRecipientListResult notificationRecipients = adminCenterClient.GetNotificationRecipients();

        foreach (var notificationRecipient in notificationRecipients.Value)
        {
            Utils.ConsoleWriteLineAsJson(notificationRecipient);
        }
    }
예제 #7
0
    internal static void GetActiveSessions(AdminCenterClient adminCenterClient, string environmentName)
    {
        EnvironmentSessionListResult sessions = adminCenterClient.GetSessions("BusinessCentral", environmentName);

        foreach (var session in sessions.Value)
        {
            Utils.ConsoleWriteLineAsJson(session);
        }
    }
예제 #8
0
 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);
 }
예제 #9
0
 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);
 }
예제 #10
0
    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);
    }
예제 #11
0
    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);
    }
예제 #12
0
파일: Apps.cs 프로젝트: tino-teuber/BCTech
    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);
    }
예제 #13
0
        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");
        }
예제 #14
0
 internal static void CancelSession(AdminCenterClient adminCenterClient, string environmentName, int sessionId)
 {
     adminCenterClient.RemoveSession("BusinessCentral", environmentName, sessionId.ToString());
 }
예제 #15
0
    internal static void GetUpdateWindow(AdminCenterClient adminCenterClient, string environmentName)
    {
        UpgradeSettings upgradeSettings = adminCenterClient.GetUpgradeSettings("BusinessCentral", environmentName);

        Utils.ConsoleWriteLineAsJson(upgradeSettings);
    }
예제 #16
0
 internal static void GetSupportSettings(AdminCenterClient adminCenterClient, string environmentName)
 {
     SupportContact supportContact = adminCenterClient.GetSupportContactInformation("BusinessCentral", environmentName);
     Utils.ConsoleWriteLineAsJson(supportContact);
 }
예제 #17
0
 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);
 }
예제 #18
0
    internal static void GetScheduledUpdates(AdminCenterClient adminCenterClient, string environmentName)
    {
        ScheduledUpgrade scheduledUpgrade = adminCenterClient.GetScheduledUpgrade("BusinessCentral", environmentName);

        Utils.ConsoleWriteLineAsJson(scheduledUpgrade);
    }