Exemplo n.º 1
0
        internal static DlpPolicyMetaData ParseDlpPolicyInstance(string data)
        {
            DlpPolicyMetaData result;

            try
            {
                XElement          root = XDocument.Parse(data).Root;
                DlpPolicyMetaData dlpPolicyMetaData = new DlpPolicyMetaData();
                dlpPolicyMetaData.Version        = root.Attribute("version").Value.Trim();
                dlpPolicyMetaData.State          = (RuleState)Enum.Parse(typeof(RuleState), root.Attribute("state").Value.Trim());
                dlpPolicyMetaData.Mode           = (RuleMode)Enum.Parse(typeof(RuleMode), root.Attribute("mode").Value.Trim());
                dlpPolicyMetaData.ImmutableId    = ((root.Attribute("id") == null) ? Guid.Empty : Guid.Parse(root.Attribute("id").Value.Trim()));
                dlpPolicyMetaData.ContentVersion = root.Element("contentVersion").Value.Trim();
                dlpPolicyMetaData.PublisherName  = root.Element("publisherName").Value.Trim();
                dlpPolicyMetaData.Name           = root.Element("name").Value.Trim();
                dlpPolicyMetaData.Description    = root.Element("description").Value.Trim();
                dlpPolicyMetaData.Keywords       = (from keyword in root.Element("keywords").Elements("keyword")
                                                    select keyword.Value.Trim()).ToList <string>();
                dlpPolicyMetaData.PolicyCommands = (from policyCommand in root.Element("policyCommands").Elements("commandBlock")
                                                    select policyCommand.Value.Trim()).ToList <string>();
                DlpPolicyMetaData dlpPolicyMetaData2 = dlpPolicyMetaData;
                dlpPolicyMetaData2.Validate();
                result = dlpPolicyMetaData2;
            }
            catch (ArgumentException innerException)
            {
                throw new DlpPolicyParsingException(Strings.DlpPolicyStateStateInvalid, innerException);
            }
            catch (NullReferenceException innerException2)
            {
                throw new DlpPolicyParsingException(Strings.DlpPolicyXmlMissingElements, innerException2);
            }
            catch (XmlException innerException3)
            {
                throw new DlpPolicyParsingException(Strings.DlpPolicyXmlInvalid, innerException3);
            }
            return(result);
        }