public static CrawlingRule Clone(CrawlingRule rule) { CrawlingRule clone = DeserializeRule(SerializeRule(rule), new List <CrawlingBucket>()); clone.TargetBucket = rule.TargetBucket; return(clone); }
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)))); }
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); }