Esempio n. 1
0
        private void SetInformationProtectionPolicy(PSSqlInformationProtectionPolicy policy)
        {
            var sdkPolicy = policy.ConverToSDKType();
            var response  = SecurityCenterClient.InformationProtectionPolicies.CreateOrUpdateWithHttpMessagesAsync(
                Scope, SqlInformationProtectionPolicyName,
                sdkPolicy.Labels, sdkPolicy.InformationTypes).Result.Response;

            response.EnsureSuccessStatusCode();
        }
Esempio n. 2
0
        public override void ExecuteCmdlet()
        {
            if (ParameterSetName == SqlInformationProtectionPolicyFilePathParameterSet)
            {
                string filePath = ResolveUserPath(FilePath);
                if (!File.Exists(filePath))
                {
                    throw new PSArgumentException(
                              string.Format(Resources.SqlInformationProtectionPolicyFileDoesNotExistError, FilePath),
                              FilePathParameterName);
                }

                Policy = File.ReadAllText(filePath);
            }

            if (string.IsNullOrEmpty(Policy))
            {
                throw new Exception(Resources.SqlInformationProtectionPolicyEmptyError);
            }

            PSSqlInformationProtectionPolicy policy = JsonConvert.DeserializeObject <PSSqlInformationProtectionPolicy>(Policy,
                                                                                                                       new JsonSerializerSettings
            {
                MissingMemberHandling = MissingMemberHandling.Error,
            });

            if (policy == null)
            {
                throw new Exception(Resources.SqlInformationProtectionPolicyDeserializationError);
            }

            JsonTextReader reader = new JsonTextReader(new StringReader(Policy));
            List <string>  allIds = ExtractDictionaryIds(reader);

            allIds.AddRange(ExtractDictionaryIds(reader));
            VerifyElementsAreUnique(allIds, Resources.SqlInformationProtectionPolicyDuplicatedIdsError);

            IEnumerable <string> allDisplayNames =
                policy.Labels.Select(kvp => kvp.Value.DisplayName).
                Concat(policy.InformationTypes.Select(kvp => kvp.Value.DisplayName));

            VerifyElementsAreUnique(allDisplayNames, Resources.SqlInformationProtectionPolicyDuplicatedDisplayNamesError);

            SetInformationProtectionPolicy(policy);
            WriteObject(policy);
        }
Esempio n. 3
0
 protected void WriteObject(PSSqlInformationProtectionPolicy policy)
 {
     WriteObject(JsonConvert.SerializeObject(policy, Formatting.Indented));
 }