/// <summary> /// Clones this instance. /// </summary> /// <returns> /// A new object that is a copy of this instance. /// </returns> public XlsxDocumentHeaderFooterSections Clone() { var cloned = new XlsxDocumentHeaderFooterSections(Parent) { Properties = Properties.Clone() }; foreach (XlsxDocumentHeaderFooterSection section in this) { cloned.Add(section.Clone()); } return(cloned); }
/// <summary> /// Combines this instance with reference parameter. /// </summary> /// <param name="reference">The reference.</param> public virtual void Combine(XlsxDocumentHeaderFooterSections reference) { if (reference == null) { return; } var hasElements = this.Any(); if (!hasElements) { foreach (var referenceSection in reference) { var sheet = referenceSection.Clone(); sheet.SetOwner(this); Add(sheet); } } else { foreach (var section in this) { var refSheet = reference.GetBy(section.Name); if (refSheet != null) { section.Combine(refSheet); } } foreach (var referenceSection in reference) { var sheet = GetBy(referenceSection.Name); if (sheet != null) { continue; } var newSection = referenceSection.Clone(); newSection.SetOwner(this); Add(newSection); } } }