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); } } }
public void GEDCOMDocument_SelectIndividualRecord_Returns_Null_When_Given_InValid_Id(string fileName, int recordNo) { //Arrange var document = new GEDCOMDocument(); document.LoadGEDCOM(GetEmbeddedFileString(fileName)); string id = String.Format("@I{0}@", recordNo); //Act var record = document.SelectIndividualRecord(id); //Assert Assert.IsNull(record); }