public void AddPerson(Person newPerson) { var newGedNote = ReturnGedFormatPerson(newPerson); int insertIndex = GedcomFileReader.IndexOf(FileData, @"0 @F\d+@ FAM"); //Индекс первой семьи в файле if (insertIndex == -1) { FileData.AddRange(newGedNote); } else { FileData.InsertRange(insertIndex, newGedNote); } }
public void ChangeInfoAboutFamily(Family changedFamily) { var changedGedFamily = ReturnGedFormatFamily(changedFamily); int personIndexStart = GedcomFileReader.IndexOf(FileData, changedFamily.ID); //Индекс, где написан номер человека (самая верхняя строчка) int personIndexEnd = GedcomFileReader.IndexOf(FileData, @"^0", personIndexStart + 1); //Индекс, который больше на 1 индеса последней записи о человеке if (personIndexEnd == -1) //Если -1, то был достигнут конец файла без обнаружения совпадений, следовательно это последняя запись в файле { FileData.RemoveRange(personIndexStart, FileData.Count - personIndexStart); FileData.AddRange(changedGedFamily); } else { FileData.RemoveRange(personIndexStart, personIndexEnd - personIndexStart + 1); FileData.InsertRange(personIndexStart, changedGedFamily); } }
public void ChangeInfoAboutPerson(Person changedPerson) // ID - "@I{ID}@" (если изменения связаны с семьями, то добавление записи о семье в файл должно происходить вместе с вызовом этого метода) { int personIndexStart = GedcomFileReader.IndexOf(FileData, changedPerson.Id); //Индекс, где написан номер человека (самая верхняя строчка) int personIndexEnd = GedcomFileReader.IndexOf(FileData, @"^0", personIndexStart + 1); //Индекс, который больше на 1 индеса последней записи о человеке var changedGedPerson = ReturnGedFormatPerson(changedPerson); if (personIndexEnd == -1)//Если -1, то был достигнут конец файла без обнаружения совпадений, следовательно это последняя запись в файле { FileData.RemoveRange(personIndexStart, FileData.Count - personIndexStart); FileData.AddRange(changedGedPerson); } else { FileData.RemoveRange(personIndexStart, personIndexEnd - personIndexStart + 1); FileData.InsertRange(personIndexStart, changedGedPerson); } }
public void AddFamily(Family newFamily)//Если в семье один родитель, то в зависимости от пола ставим null, также передается была ли у них свадьба (ID - @I+ID@), на данный момент не предполагается, что при создании новой семьи она будет иметь детей сразу { var newGedFamily = ReturnGedFormatFamily(newFamily); FileData.AddRange(newGedFamily); }