/// <summary>
 /// Enables Site Classifications for the target tenant
 /// </summary>
 /// <param name="accessToken">The OAuth accessToken for Microsoft Graph with Azure AD</param>
 /// <param name="siteClassificationsSettings">The site classifications settings to apply./param>
 public static void EnableSiteClassifications(string accessToken, SiteClassificationsSettings siteClassificationsSettings)
 {
     if (string.IsNullOrEmpty(accessToken))
     {
         throw new ArgumentException("Specify a valid accesstoken", nameof(accessToken));
     }
     if (siteClassificationsSettings == null)
     {
         throw new ArgumentException(nameof(siteClassificationsSettings));
     }
     EnableSiteClassifications(accessToken, siteClassificationsSettings.Classifications, siteClassificationsSettings.DefaultClassification, siteClassificationsSettings.DefaultClassification);
 }
 /// <summary>
 /// Updates Site Classifications settings for the target tenant
 /// </summary>
 /// <param name="accessToken">The OAuth accessToken for Microsoft Graph with Azure AD</param>
 /// <param name="siteClassificationsSettings">The site classifications settings to apply./param>
 public static void UpdateSiteClassificationsSettings(string accessToken, SiteClassificationsSettings siteClassificationsSettings)
 {
     if (string.IsNullOrEmpty(accessToken))
     {
         throw new ArgumentException("Specify a valid accesstoken", nameof(accessToken));
     }
     if (siteClassificationsSettings == null)
     {
         throw new ArgumentException("Specify a valid Site Classification Settings object", nameof(siteClassificationsSettings));
     }
     UpdateSiteClassificationsSettings(accessToken, siteClassificationsSettings.Classifications, siteClassificationsSettings.DefaultClassification, siteClassificationsSettings.UsageGuidelinesUrl);
 }
        /// <summary>
        /// Enables Site Classifications for the target tenant
        /// </summary>
        /// <param name="accessToken">The OAuth accessToken for Microsoft Graph with Azure AD</param>
        /// <returns>The list of Site Classification values</returns>
        public static SiteClassificationsSettings GetSiteClassificationsSettings(string accessToken)
        {
            if (string.IsNullOrEmpty(accessToken))
            {
                throw new ArgumentException("Specify a valid accesstoken", nameof(accessToken));
            }
            // GET https://graph.microsoft.com/beta/directorySettingTemplates
            string directorySettingsUrl  = $"{GraphHttpClient.MicrosoftGraphBetaBaseUri}settings";
            var    directorySettingsJson = GraphHttpClient.MakeGetRequestForString(directorySettingsUrl, accessToken);
            var    directorySettings     = JsonConvert.DeserializeObject <DirectorySettingTemplates>(directorySettingsJson);

            // Retrieve the setinngs for "Group.Unified"
            var unifiedGroupSetting = directorySettings.Templates.FirstOrDefault(t => t.DisplayName == "Group.Unified");

            if (unifiedGroupSetting != null)
            {
                var siteClassificationsSettings = new SiteClassificationsSettings();
                var classificationList          = unifiedGroupSetting.SettingValues.FirstOrDefault(v => v.Name == "ClassificationList");
                if (classificationList != null)
                {
                    siteClassificationsSettings.Classifications = classificationList.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                }
                var guidanceUrl = unifiedGroupSetting.SettingValues.First(v => v.Name == "UsageGuidelinesUrl");
                if (guidanceUrl != null)
                {
                    siteClassificationsSettings.UsageGuidelinesUrl = guidanceUrl.Value;
                }
                var defaultClassification = unifiedGroupSetting.SettingValues.First(v => v.Name == "DefaultClassification");
                if (defaultClassification != null)
                {
                    siteClassificationsSettings.DefaultClassification = defaultClassification.Value;
                }
                return(siteClassificationsSettings);
            }
            else
            {
                throw new ApplicationException("Missing DirectorySettingTemplate for \"Group.Unified\"");
            }
        }
示例#4
0
 /// <summary>
 /// Updates Site Classifications settings for the target tenant
 /// </summary>
 /// <param name="tenant">The target tenant</param>
 /// <param name="accessToken">The OAuth accessToken for Microsoft Graph with Azure AD</param>
 /// <param name="siteClassificationsSettings">The site classifications settings to update.</param>
 public static void UpdateSiteClassificationsSettings(this Tenant tenant, string accessToken, SiteClassificationsSettings siteClassificationsSettings)
 {
     SiteClassificationsUtility.UpdateSiteClassificationsSettings(accessToken, siteClassificationsSettings);
 }