Esempio n. 1
0
        public static CrawlingRule Clone(CrawlingRule rule)
        {
            CrawlingRule clone = DeserializeRule(SerializeRule(rule), new List <CrawlingBucket>());

            clone.TargetBucket = rule.TargetBucket;
            return(clone);
        }
Esempio n. 2
0
 private static XElement SerializeRule(CrawlingRule rule)
 {
     return(new XElement("Rule",
                         new XAttribute("Guid", rule.Guid),
                         new XAttribute("Name", rule.Name),
                         new XAttribute("Description", rule.Description),
                         new XAttribute("Behavior", rule.Behavior),
                         rule.TargetBucket == null ? null : new XAttribute("TargetBucket", rule.TargetBucket.Guid),
                         new XElement("Conditions", rule.Conditions.Select(SerializeCondition))));
 }
Esempio n. 3
0
        private static CrawlingRule DeserializeRule(XElement element, ICollection <CrawlingBucket> buckets)
        {
            Guid?        targetBucket = (Guid?)element.Attribute("TargetBucket");
            CrawlingRule rule         = new CrawlingRule
            {
                Guid         = (Guid)element.Attribute("Guid"),
                Name         = (string)element.Attribute("Name"),
                Description  = (string)element.Attribute("Description"),
                Behavior     = EnumHelper <ResourceBehavior> .Parse((string)element.Attribute("Behavior")),
                TargetBucket = buckets.FirstOrDefault(x => x.Guid == targetBucket),
            };

            rule.Conditions.AddRange(element.Elements("Conditions").Elements().Select(DeserializeCondition));
            return(rule);
        }