public virtual bool Remove(Individual individual) { if (Individuals.Remove(individual)) { QualitySum -= individual.Quality; return(true); } return(false); }
public void DeleteIndividual(Individual individual) { Requires.NotNull("individual", individual); string individualId = GEDCOMUtil.CreateId("I", individual.Id); //Remove from internal List Individuals.Remove(individual); GEDCOMIndividualRecord record = _document.SelectIndividualRecord(individualId); if (record == null) { //record not in repository throw new ArgumentOutOfRangeException(); } _document.RemoveRecord(record); //see if individual is a child in a family var familyRecord = _document.SelectChildsFamilyRecord(individualId); if (familyRecord != null) { //remove child from family RemoveIndividualFromFamilyRecord(individual, familyRecord, GEDCOMTag.CHIL); } if (individual.Sex == Sex.Male) { //see if individual is a husband in a family foreach (GEDCOMFamilyRecord fRecord in _document.SelectHusbandsFamilyRecords(individualId)) { //remove husband from family RemoveIndividualFromFamilyRecord(individual, fRecord, GEDCOMTag.HUSB); } } else { //see if individual is a wife in a family foreach (GEDCOMFamilyRecord fRecord in _document.SelectWifesFamilyRecords(individualId)) { //remove wife from family RemoveIndividualFromFamilyRecord(individual, fRecord, GEDCOMTag.WIFE); } } }