/// <summary> /// Gets the type of the linkage. /// </summary> /// <param name="childXrefID">The child xref identifier.</param> /// <returns> /// Pedigree linkage type. /// </returns> public PedigreeLinkageType GetLinkageType(string childXrefID) { PedigreeLinkageType ret = PedigreeLinkageType.Unknown; if (linkageTypes != null && linkageTypes.ContainsKey(childXrefID)) { ret = linkageTypes[childXrefID]; } else { GedcomIndividualRecord child = (GedcomIndividualRecord)Database[childXrefID]; if (child != null) { GedcomFamilyLink link = null; if (child.ChildInFamily(XrefId, out link)) { ret = link.Pedigree; } else { System.Diagnostics.Debug.WriteLine("Child " + childXrefID + " is not in family " + XrefId + " in GetLinkageType"); } } else { System.Diagnostics.Debug.WriteLine("Attempt to GetLinkageType of unknown child " + childXrefID + " in " + XrefId); } } return(ret); }
/// <summary> /// Sets the type of the linkage. /// </summary> /// <param name="childXrefID">The child xref identifier.</param> /// <param name="type">The pedigree linkage type.</param> /// <param name="to">The adoption type.</param> public void SetLinkageType(string childXrefID, PedigreeLinkageType type, GedcomAdoptionType to) { Dictionary <string, PedigreeLinkageType> dict; switch (to) { case GedcomAdoptionType.Husband: if (husbLinkageTypes == null) { husbLinkageTypes = new Dictionary <string, PedigreeLinkageType>(); } dict = husbLinkageTypes; break; case GedcomAdoptionType.Wife: if (wifeLinkageTypes == null) { wifeLinkageTypes = new Dictionary <string, PedigreeLinkageType>(); } dict = wifeLinkageTypes; break; case GedcomAdoptionType.HusbandAndWife: default: if (linkageTypes == null) { linkageTypes = new Dictionary <string, PedigreeLinkageType>(); } dict = linkageTypes; break; } if (dict.ContainsKey(childXrefID)) { dict[childXrefID] = type; } else { dict.Add(childXrefID, type); } }
/// <summary> /// Sets the type of the linkage. /// </summary> /// <param name="childXrefID">The child xref identifier.</param> /// <param name="type">The pedigree linkage type.</param> public void SetLinkageType(string childXrefID, PedigreeLinkageType type) { SetLinkageType(childXrefID, type, GedcomAdoptionType.HusbandAndWife); }
/// <summary> /// Initializes a new instance of the <see cref="GedcomFamilyLink"/> class. /// </summary> public GedcomFamilyLink() { pedigree = PedigreeLinkageType.Unknown; }