Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        public void AddFamily(Family newFamily)//Если в семье один родитель, то в зависимости от пола ставим null, также передается была ли у них свадьба (ID - @I+ID@), на данный момент не предполагается, что при создании новой семьи она будет иметь детей сразу
        {
            var newGedFamily = ReturnGedFormatFamily(newFamily);

            FileData.AddRange(newGedFamily);
        }