public bool UpdateIndividual(IndividualClass tempIndividual, PersonUpdateType updateType) { if (individualList.ContainsKey(tempIndividual.GetXrefName())) { IndividualClass updatePerson = individualList[tempIndividual.GetXrefName()]; if ((updateType & PersonUpdateType.ChildFamily) != 0) { updatePerson.SetFamilyChildList(tempIndividual.GetFamilyChildList()); } if ((updateType & PersonUpdateType.SpouseFamily) != 0) { updatePerson.SetFamilySpouseList(tempIndividual.GetFamilySpouseList()); } if ((updateType & PersonUpdateType.Name) != 0) { updatePerson.SetPersonalName(tempIndividual.GetPersonalName()); } if ((updateType & PersonUpdateType.Events) != 0) { updatePerson.SetEventList(tempIndividual.GetEventList()); } individualList[tempIndividual.GetXrefName()] = updatePerson; return(true); } else { trace.TraceEvent(TraceEventType.Error, 0, "Error: Can't update {0} as it is not in the database!", tempIndividual.GetXrefName()); } return(false); }
public void CopyToClipboard(ref object clipboard) { if (selectedIndividual != null) { IndividualClass clipbboardIndividual = (IndividualClass)selectedIndividual.Clone(); clipbboardIndividual.SetFamilyChildList(null); clipbboardIndividual.SetFamilySpouseList(null); clipboard = (object)clipbboardIndividual; } }
private void ReadFile(ref FamilyTreeStoreBaseClass inFamilyTree, FamilyTreeStoreAnarkiv anarkivStore) { //IndividualClass person = anarkivStore.GetIndividual(); IEnumerator <IndividualClass> people = anarkivStore.SearchPerson(); AnarkivMappers mappers = new AnarkivMappers(inFamilyTree); IDictionary <string, XrefMapperClass> individualMapper = mappers.GetMapper(XrefType.Individual); IDictionary <string, XrefMapperClass> familyMapper = mappers.GetMapper(XrefType.Family); int counter = 0; while (people.MoveNext()) { IndividualClass person = people.Current; trace.TraceInformation("Person[" + counter++ + "]:" + person.GetPersonalName().ToString()); IndividualXrefClass xref = new IndividualXrefClass(inFamilyTree.CreateNewXref(XrefType.Individual)); individualMapper.Add(person.GetXrefName(), new XrefMapperClass(xref.GetXrefName(), true)); person.SetXrefName(xref.GetXrefName()); if (person.GetFamilyChildList() != null) { IList <FamilyXrefClass> newChildFamilies = new List <FamilyXrefClass>(); foreach (FamilyXrefClass childFamily in person.GetFamilyChildList()) { FamilyXrefClass newFamily = new FamilyXrefClass(mappers.GetLocalXRef(XrefType.Family, childFamily.GetXrefName())); newChildFamilies.Add(newFamily); } person.SetFamilyChildList(newChildFamilies); } if (person.GetFamilySpouseList() != null) { IList <FamilyXrefClass> newSpouseFamilies = new List <FamilyXrefClass>(); foreach (FamilyXrefClass spouseFamily in person.GetFamilySpouseList()) { FamilyXrefClass newFamily = new FamilyXrefClass(mappers.GetLocalXRef(XrefType.Family, spouseFamily.GetXrefName())); newSpouseFamilies.Add(newFamily); } person.SetFamilySpouseList(newSpouseFamilies); } inFamilyTree.AddIndividual(person); } IEnumerator <FamilyClass> familyEnumerator = anarkivStore.SearchFamily(); counter = 0; while (familyEnumerator.MoveNext()) { FamilyClass family = familyEnumerator.Current; FamilyClass newFamily = new FamilyClass(); trace.TraceInformation("Family[" + counter++ + "]:" + family.GetXrefName()); newFamily.SetXrefName(mappers.GetLocalXRef(XrefType.Family, family.GetXrefName(), true)); trace.TraceInformation("Family xref " + family.GetXrefName() + " ==> " + newFamily.GetXrefName()); if (family.GetParentList() != null) { //IList<IndividualXrefClass> newParentList = new List<IndividualXrefClass>(); foreach (IndividualXrefClass parent in family.GetParentList()) { IndividualXrefClass newParent = new IndividualXrefClass(mappers.GetLocalXRef(XrefType.Individual, parent.GetXrefName())); //newParentList.Add(newParent); newFamily.AddRelation(newParent, FamilyClass.RelationType.Parent); trace.TraceInformation(" add parent " + parent.GetXrefName() + " => " + newParent.GetXrefName()); } } if (family.GetChildList() != null) { //IList<IndividualXrefClass> newChildList = new List<IndividualXrefClass>(); foreach (IndividualXrefClass child in family.GetChildList()) { IndividualXrefClass newChild = new IndividualXrefClass(mappers.GetLocalXRef(XrefType.Individual, child.GetXrefName())); //newChildList.Add(newChild); newFamily.AddRelation(newChild, FamilyClass.RelationType.Child); trace.TraceInformation(" add child " + child.GetXrefName() + " => " + newChild.GetXrefName()); } } //family. inFamilyTree.AddFamily(newFamily); } }