private static void CheckAttrCompatible(GDMTree tree, GEDCOMFormat format, GDMIndividualRecord iRec, GDMCustomEvent aEvent) { }
public string gt_get_event_place(object evPtr) { GDMCustomEvent evt = evPtr as GDMCustomEvent; return((evt == null) ? string.Empty : evt.Place.StringValue); }
public string gt_get_event_name(object evPtr) { GDMCustomEvent evt = evPtr as GDMCustomEvent; return((evt == null) ? string.Empty : evt.GetTagName()); }
// TODO: rollback changes when exception! private void ParseSource() { int srcYear; if (!int.TryParse(edSourceYear.Text, out srcYear)) { ShowError(fLangMan.LS(FLS.LSID_SourceYearInvalid)); return; } string srcName = cbSource.Text; string srcPage = edPage.Text; string place = edPlace.Text; GDMSourceRecord srcRec = null; if (!string.IsNullOrEmpty(srcName)) { srcRec = fBase.Context.FindSource(srcName); if (srcRec == null) { srcRec = fBase.Context.Tree.CreateSource(); srcRec.ShortTitle = srcName; } } GDMIndividualRecord iMain = null; int num = dataGridView1.Rows.Count; for (int r = 0; r < num; r++) { DataGridViewRow row = dataGridView1.Rows[r]; string lnk = CheckStr((string)row.Cells[0].Value); string nm = CheckStr((string)row.Cells[1].Value); string pt = CheckStr((string)row.Cells[2].Value); string fm = CheckStr((string)row.Cells[3].Value); string age = CheckStr((string)row.Cells[4].Value); string comment = CheckStr((string)row.Cells[5].Value); if (!string.IsNullOrEmpty(lnk)) { PersonLink link = GetLinkByName(lnk); if (link == PersonLink.plNone) { continue; } GDMSex sx = fBase.Context.DefineSex(nm, pt); GDMIndividualRecord iRec = fBase.Context.CreatePersonEx(nm, pt, fm, sx, false); if (!string.IsNullOrEmpty(age) && ConvertHelper.IsDigits(age)) { int birthYear = srcYear - int.Parse(age); fBase.Context.CreateEventEx(iRec, GEDCOMTagName.BIRT, "ABT " + birthYear.ToString(), ""); } if (!string.IsNullOrEmpty(place)) { GDMCustomEvent evt = fBase.Context.CreateEventEx(iRec, GEDCOMTagName.RESI, "", ""); evt.Place.StringValue = place; } if (!string.IsNullOrEmpty(comment)) { GDMNoteRecord noteRec = fBase.Context.Tree.CreateNote(); noteRec.SetNoteText(comment); iRec.AddNote(noteRec); } if (srcRec != null) { iRec.AddSource(srcRec, srcPage, 0); } fBase.NotifyRecord(iRec, RecordAction.raAdd); GDMFamilyRecord family = null; if (link == PersonLink.plPerson) { iMain = iRec; string evName = ""; if (rbSK_Met.Checked) { switch (cbEventType.SelectedIndex) { case 0: evName = GEDCOMTagName.BIRT; break; case 1: evName = GEDCOMTagName.DEAT; break; case 2: evName = GEDCOMTagName.MARR; break; } } if (evName == GEDCOMTagName.BIRT || evName == GEDCOMTagName.DEAT) { GDMCustomEvent evt = fBase.Context.CreateEventEx(iRec, evName, GDMDate.CreateByFormattedStr(edEventDate.Text, false), ""); evt.Place.StringValue = place; } else if (evName == GEDCOMTagName.MARR) { family = fBase.Context.GetMarriageFamily(iRec, true); GDMCustomEvent evt = fBase.Context.CreateEventEx(family, evName, GDMDate.CreateByFormattedStr(edEventDate.Text, false), ""); evt.Place.StringValue = place; } } else { if (iMain == null) { throw new PersonScanException(fLangMan.LS(FLS.LSID_BasePersonInvalid)); } else { switch (link) { case PersonLink.plFather: case PersonLink.plMother: family = fBase.Context.GetParentsFamily(iMain, true); family.AddSpouse(iRec); break; case PersonLink.plGodparent: iMain.AddAssociation(fLangMan.LS(FLS.LSID_PLGodparent), iRec); break; case PersonLink.plSpouse: family = fBase.Context.GetMarriageFamily(iMain, true); family.AddSpouse(iRec); break; case PersonLink.plChild: family = fBase.Context.GetMarriageFamily(iMain, true); family.AddChild(iRec); break; } } } } } InitSourceControls(); }
public string gt_get_event_date(object evPtr) { GDMCustomEvent evt = evPtr as GDMCustomEvent; return(GKUtils.GEDCOMEventToDateStr(evt, DateFormat.dfDD_MM_YYYY, false)); }
protected override void InternalGenerate() { IColor clrBlack = AppHost.GfxProvider.CreateColor(0x000000); IColor clrBlue = AppHost.GfxProvider.CreateColor(0x0000FF); fTitleFont = fWriter.CreateFont("", 14f, true, false, clrBlack); fChapFont = fWriter.CreateFont("", 12f, true, false, clrBlack); fTextFont = fWriter.CreateFont("", 10f, false, false, clrBlack); //fWriter.AddParagraph(fTitle, fTitleFont, TextAlignment.taLeft); fWriter.AddParagraph(GKUtils.GetNameString(fPerson, true, false), fTitleFont, TextAlignment.taLeft); fWriter.NewLine(); var evList = new List <PersonalEvent>(); GDMIndividualRecord father = null, mother = null; if (fPerson.ChildToFamilyLinks.Count > 0) { GDMFamilyRecord family = fPerson.ChildToFamilyLinks[0].Family; if (fBase.Context.IsRecordAccess(family.Restriction)) { father = family.Husband.Individual; mother = family.Wife.Individual; } } ExtractEvents(EventType.Personal, evList, fPerson); int num2 = fPerson.SpouseToFamilyLinks.Count; for (int j = 0; j < num2; j++) { GDMFamilyRecord family = fPerson.SpouseToFamilyLinks[j].Family; if (!fBase.Context.IsRecordAccess(family.Restriction)) { continue; } ExtractEvents(EventType.Spouse, evList, family); int num3 = family.Children.Count; for (int i = 0; i < num3; i++) { GDMIndividualRecord child = family.Children[i].Individual; GDMCustomEvent evt = child.FindEvent(GEDCOMTagType.BIRT); if (evt != null && evt.GetChronologicalYear() != 0) { evList.Add(new PersonalEvent(EventType.Child, child, evt)); } } } SortHelper.QuickSort(evList, EventsCompare); fWriter.BeginList(); int num4 = evList.Count; for (int i = 0; i < num4; i++) { PersonalEvent evObj = evList[i]; if (!evObj.Date.HasKnownYear()) { continue; } GDMCustomEvent evt = evObj.Event; string st = GKUtils.GetEventName(evt); string dt = GKUtils.GEDCOMEventToDateStr(evt, GlobalOptions.Instance.DefDateFormat, false); if (ShowAges) { int year = evt.GetChronologicalYear(); int age = (evObj.Rec == fPerson) ? GKUtils.GetAge(fPerson, year) : -1; if (age >= 0) { dt += string.Format(" ({0})", age); } } string li = dt + ": " + st + "."; if (evt.Place.StringValue != "") { li = li + " " + LangMan.LS(LSID.LSID_Place) + ": " + evt.Place.StringValue; } fWriter.AddListItem(" " + li, fTextFont); if (evObj.Rec is GDMIndividualRecord) { GDMIndividualRecord iRec = evObj.Rec as GDMIndividualRecord; if (evt.GetTagType() == GEDCOMTagType.BIRT) { if (evObj.Type == EventType.Personal) { if (father != null) { fWriter.AddListItem(" " + " " + LangMan.LS(LSID.LSID_Father) + ": " + GKUtils.GetNameString(father, true, false) + " ", fTextFont); } if (mother != null) { fWriter.AddListItem(" " + " " + LangMan.LS(LSID.LSID_Mother) + ": " + GKUtils.GetNameString(mother, true, false) + " ", fTextFont); } } else if (evObj.Type == EventType.Child) { if (iRec.Sex == GDMSex.svMale) { st = LangMan.LS(LSID.LSID_RK_Son) + ": "; } else { st = LangMan.LS(LSID.LSID_RK_Daughter) + ": "; } st = ConvertHelper.UniformName(st) + GKUtils.GetNameString(iRec, true, false); fWriter.AddListItem(" " + " " + st, fTextFont); } } } else if (evObj.Rec is GDMFamilyRecord) { GDMFamilyRecord famRec = evObj.Rec as GDMFamilyRecord; GDMIndividualRecord sp; string unk; if (fPerson.Sex == GDMSex.svMale) { sp = famRec.Wife.Individual; st = LangMan.LS(LSID.LSID_Wife) + ": "; unk = LangMan.LS(LSID.LSID_UnkFemale); } else { sp = famRec.Husband.Individual; st = LangMan.LS(LSID.LSID_Husband) + ": "; unk = LangMan.LS(LSID.LSID_UnkMale); } string sps; if (sp != null) { sps = st + GKUtils.GetNameString(sp, true, false) /* + GKUtils.GetPedigreeLifeStr(sp, fOptions.PedigreeOptions.Format)*/; } else { sps = st + unk; } fWriter.AddListItem(" " + " " + sps, fTextFont); } } fWriter.EndList(); }
public string gt_get_event_date(object evPtr) { GDMCustomEvent evt = evPtr as GDMCustomEvent; return(GKUtils.GEDCOMEventToDateStr(evt, GlobalOptions.Instance.DefDateFormat, false)); }
public EventRecord(GDMCustomEvent evt, GDMRecordWithEvents record) { Event = evt; Record = record; }
public static void FillContext(IBaseContext context) { // a null result if the record is not defined GDMCustomEvent evt = context.CreateEventEx(null, GEDCOMTagName.BIRT, "xxxxx", "xxxxx"); Assert.IsNull(evt); // first individual (I1) GDMIndividualRecord iRec = context.CreatePersonEx("Ivan", "Ivanovich", "Ivanov", GDMSex.svMale, true); Assert.IsNotNull(iRec); evt = iRec.FindEvent(GEDCOMTagType.BIRT); Assert.IsNotNull(evt); evt.Date.ParseString("28 DEC 1990"); evt.Place.StringValue = "Ivanovo"; GDMCustomEvent evtd = context.CreateEventEx(iRec, GEDCOMTagName.DEAT, "28 DEC 2010", "Ivanovo"); Assert.IsNotNull(evtd); // second individual, wife (I2) GDMIndividualRecord iRec2 = context.CreatePersonEx("Maria", "Petrovna", "Ivanova", GDMSex.svFemale, true); evt = iRec2.FindEvent(GEDCOMTagType.BIRT); Assert.IsNotNull(evt); evt.Date.ParseString("17 MAR 1991"); evt.Place.StringValue = "Ivanovo"; iRec.AddAssociation("spouse", iRec2); // third individual, child (I3) GDMIndividualRecord iRec3 = context.CreatePersonEx("Anna", "Ivanovna", "Ivanova", GDMSex.svFemale, true); evt = iRec3.FindEvent(GEDCOMTagType.BIRT); Assert.IsNotNull(evt); evt.Date.ParseString("11 FEB 2010"); evt.Place.StringValue = "Ivanovo"; // their family GDMFamilyRecord famRec = context.Tree.CreateFamily(); Assert.IsNotNull(famRec); famRec.AddSpouse(iRec); famRec.AddSpouse(iRec2); famRec.AddChild(iRec3); context.CreateEventEx(famRec, GEDCOMTagName.MARR, "01 JAN 2000", "unknown"); // individual outside the family (I4) GDMIndividualRecord iRec4 = context.CreatePersonEx("Alex", "", "Petrov", GDMSex.svMale, true); evt = iRec4.FindEvent(GEDCOMTagType.BIRT); Assert.IsNotNull(evt); evt.Date.ParseString("15 JUN 1989"); evt.Place.StringValue = "Far Forest"; evt = context.CreateEventEx(iRec4, GEDCOMTagName.RESI, "12 FEB", "Far Forest"); Assert.IsNotNull(evt); // fifth (I5) GDMIndividualRecord iRec5 = context.CreatePersonEx("Anna", "", "Jones", GDMSex.svFemale, false); Assert.IsNotNull(iRec5); // sixth (I6) GDMIndividualRecord iRec6 = context.CreatePersonEx("Mary", "", "Jones", GDMSex.svFemale, false); Assert.IsNotNull(iRec6); evt = context.CreateEventEx(iRec6, GEDCOMTagName.BIRT, "12 FEB 1650", "Far Forest"); GDMFamilyRecord famRec2 = context.Tree.CreateFamily(); Assert.IsNotNull(famRec2); famRec2.AddSpouse(iRec3); //famRec2.AddSpouse(iRec4); famRec2.AddChild(iRec5); famRec2.AddChild(iRec6); // group for tests GDMGroupRecord groupRec = context.Tree.CreateGroup(); groupRec.GroupName = "GroupTest"; Assert.IsNotNull(groupRec, "group1 != null"); groupRec.AddMember(iRec); // location for tests GDMLocationRecord locRec = context.Tree.CreateLocation(); locRec.LocationName = "Test Location"; locRec.Map.Lati = 5.11111; locRec.Map.Long = 7.99999; Assert.IsNotNull(locRec, "locRec != null"); // repository for tests GDMRepositoryRecord repoRec = context.Tree.CreateRepository(); repoRec.RepositoryName = "Test repository"; Assert.IsNotNull(repoRec, "repoRec != null"); // research for tests GDMResearchRecord resRec = context.Tree.CreateResearch(); resRec.ResearchName = "Test research"; Assert.IsNotNull(resRec, "resRec != null"); // source for tests GDMSourceRecord srcRec = context.Tree.CreateSource(); srcRec.ShortTitle = "Test source"; Assert.IsNotNull(srcRec, "srcRec != null"); iRec.AddSource(srcRec, "p1", 0); // note for tests GDMNoteRecord noteRec = context.Tree.CreateNote(); noteRec.SetNoteText("Test note"); Assert.IsNotNull(noteRec, "noteRec != null"); iRec.AddNote(noteRec); // task for tests GDMTaskRecord tskRec = context.Tree.CreateTask(); tskRec.Goal = "Test task"; Assert.IsNotNull(tskRec, "tskRec != null"); // media for tests GDMMultimediaRecord mediaRec = context.Tree.CreateMultimedia(); mediaRec.FileReferences.Add(new GDMFileReferenceWithTitle(mediaRec)); GDMFileReferenceWithTitle fileRef = mediaRec.FileReferences[0]; fileRef.Title = "Test multimedia"; fileRef.LinkFile("sample.png"); Assert.IsNotNull(mediaRec, "mediaRec != null"); iRec.AddMultimedia(mediaRec); // communication for tests GDMCommunicationRecord commRec = context.Tree.CreateCommunication(); commRec.CommName = "Test communication"; Assert.IsNotNull(commRec, "commRec != null"); }
private void WriteEventList(PedigreePerson person, ExtList <PedigreeEvent> evList) { evList.QuickSort(EventsCompare); int evtNum = evList.Count; for (int i = 0; i < evtNum; i++) { GDMCustomEvent evt = evList[i].Event; if (evt != null && Equals(evList[i].IRec, person.IRec)) { var evtType = evt.GetTagType(); if (evtType == GEDCOMTagType.BIRT) { evList.Exchange(i, 0); } else if (evtType == GEDCOMTagType.DEAT) { evList.Exchange(i, evtNum - 1); } } } fWriter.BeginList(); var dateFormat = GlobalOptions.Instance.DefDateFormat; for (int i = 0; i < evtNum; i++) { PedigreeEvent evObj = evList[i]; GDMCustomEvent evt = evObj.Event; string li; if (evObj.IRec == person.IRec) { var evtName = evt.GetTagName(); int ev = GKUtils.GetPersonEventIndex(evtName); string st; if (ev == 0) { st = evt.Classification; } else { st = (ev > 0) ? LangMan.LS(GKData.PersonEvents[ev].Name) : evtName; } string dt = GKUtils.GEDCOMEventToDateStr(evt, dateFormat, false); li = dt + ": " + st + "."; if (evt.Place.StringValue != "") { li = li + " " + LangMan.LS(LSID.LSID_Place) + ": " + evt.Place.StringValue; } fWriter.AddListItem(" " + li, fTextFont); } else { string dt = (evt == null) ? "?" : GKUtils.GEDCOMEventToDateStr(evt, dateFormat, false); string st = (evObj.IRec.Sex == GDMSex.svMale) ? LangMan.LS(LSID.LSID_HeWasBorn) : LangMan.LS(LSID.LSID_SheWasBorn); li = string.Format("{0}: {1} {2}", dt, st, GKUtils.GetNameString(evObj.IRec, true, false)); PedigreePerson prs = FindPerson(evObj.IRec); string id = (prs != null) ? prs.Id : ""; fWriter.AddListItemLink(" " + li + " ", fTextFont, id, fLinkFont); } } fWriter.EndList(); }
public PedigreeEvent(GDMIndividualRecord iRec, GDMCustomEvent evt) { IRec = iRec; Event = evt; Date = (evt == null) ? UDN.CreateEmpty() : evt.Date.GetUDN(); }
private void WriteExcessFmt(PedigreePerson person) { fWriter.AddParagraph(LangMan.LS(LSID.LSID_Sex) + ": " + GKUtils.SexStr(person.IRec.Sex), fTextFont); string st = GKUtils.GetLifeExpectancyStr(person.IRec); if (st != "?" && st != "") { fWriter.AddParagraph(LangMan.LS(LSID.LSID_LifeExpectancy) + ": " + st, fTextFont); } GDMFamilyRecord fam = person.IRec.GetParentsFamily(); if (fam != null) { GDMIndividualRecord father = fam.Husband.Individual; if (father != null) { fWriter.AddParagraphLink(LangMan.LS(LSID.LSID_Father) + ": " + GKUtils.GetNameString(father, true, false) + " ", fTextFont, idLink(father), fLinkFont); } GDMIndividualRecord mother = fam.Wife.Individual; if (mother != null) { fWriter.AddParagraphLink(LangMan.LS(LSID.LSID_Mother) + ": " + GKUtils.GetNameString(mother, true, false) + " ", fTextFont, idLink(mother), fLinkFont); } } ExtList <PedigreeEvent> evList = new ExtList <PedigreeEvent>(true); try { int i; if (person.IRec.Events.Count > 0) { fWriter.AddParagraph(LangMan.LS(LSID.LSID_Events) + ":", fTextFont); int num = person.IRec.Events.Count; for (i = 0; i < num; i++) { GDMCustomEvent evt = person.IRec.Events[i]; if (!(evt is GDMIndividualAttribute) || fOptions.PedigreeOptions.IncludeAttributes) { evList.Add(new PedigreeEvent(person.IRec, evt)); } } WriteEventList(person, evList); } int num2 = person.IRec.SpouseToFamilyLinks.Count; for (i = 0; i < num2; i++) { GDMFamilyRecord family = person.IRec.SpouseToFamilyLinks[i].Family; if (!fBase.Context.IsRecordAccess(family.Restriction)) { continue; } GDMIndividualRecord spRec; string unk; if (person.IRec.Sex == GDMSex.svMale) { spRec = family.Wife.Individual; st = LangMan.LS(LSID.LSID_Wife) + ": "; unk = LangMan.LS(LSID.LSID_UnkFemale); } else { spRec = family.Husband.Individual; st = LangMan.LS(LSID.LSID_Husband) + ": "; unk = LangMan.LS(LSID.LSID_UnkMale); } string sps; if (spRec != null) { sps = st + GKUtils.GetNameString(spRec, true, false) + GKUtils.GetPedigreeLifeStr(spRec, fOptions.PedigreeOptions.Format) /* + this.idLink(this.FindPerson(irec))*/; } else { sps = st + unk; } fWriter.AddParagraph(sps, fTextFont); evList.Clear(); int childrenCount = family.Children.Count; for (int j = 0; j < childrenCount; j++) { GDMIndividualRecord child = family.Children[j].Individual; evList.Add(new PedigreeEvent(child, child.FindEvent(GEDCOMTagType.BIRT))); } WriteEventList(person, evList); } } finally { evList.Dispose(); } if (fOptions.PedigreeOptions.IncludeNotes && person.IRec.Notes.Count != 0) { fWriter.AddParagraph(LangMan.LS(LSID.LSID_RPNotes) + ":", fTextFont); fWriter.BeginList(); int notesCount = person.IRec.Notes.Count; for (int i = 0; i < notesCount; i++) { GDMNotes note = person.IRec.Notes[i]; fWriter.AddListItem(" " + GKUtils.MergeStrings(note.Lines), fTextFont); } fWriter.EndList(); } }
public void LoadPlaces() { try { PlacesCache.Instance.Load(); IProgressController progress = AppHost.Progress; GDMTree tree = fBase.Context.Tree; fView.MapBrowser.InitMap(); fView.PersonsCombo.BeginUpdate(); fView.PlacesTree.BeginUpdate(); progress.ProgressInit(LangMan.LS(LSID.LSID_LoadingLocations), tree.RecordsCount); try { fBaseRoot = fView.PlacesTree.AddNode(null, LangMan.LS(LSID.LSID_RPLocations), null); fPlaces.Clear(); var personValues = new StringList(); int num = tree.RecordsCount; for (int i = 0; i < num; i++) { GDMRecord rec = tree[i]; bool res = rec is GDMIndividualRecord && IsSelected(rec); if (res) { GDMIndividualRecord ind = rec as GDMIndividualRecord; int pCnt = 0; int num2 = ind.Events.Count; for (int j = 0; j < num2; j++) { GDMCustomEvent ev = ind.Events[j]; if (ev.Place.StringValue != "") { AddPlace(ev.Place, ev); pCnt++; } } if (pCnt > 0) { personValues.AddObject(GKUtils.GetNameString(ind, true, false) + " [" + pCnt.ToString() + "]", ind); } } progress.ProgressStep(); } fView.PlacesTree.Expand(fBaseRoot); personValues.Sort(); fView.PersonsCombo.Clear(); fView.PersonsCombo.AddItem(LangMan.LS(LSID.LSID_NotSelected), null); fView.PersonsCombo.AddStrings(personValues); fView.SelectPlacesBtn.Enabled = true; } finally { progress.ProgressDone(); fView.PlacesTree.EndUpdate(); fView.PersonsCombo.EndUpdate(); PlacesCache.Instance.Save(); } } catch (Exception ex) { Logger.LogWrite("MapsViewerWin.PlacesLoad(): " + ex.Message); } }
private void SetEvent(GDMRecordWithEvents record, string evName, string date) { int[] val = new int[3]; GDMCustomEvent evt = fBase.Context.CreateEventEx(record, evName, "", ""); try { string prefix = ""; if (date.IndexOf("п.") == 0) { prefix = "AFT "; date = date.Remove(0, 2); } else if (date.IndexOf("после") == 0) { prefix = "AFT "; date = date.Remove(0, 5); } else if (date.IndexOf("до") == 0) { prefix = "BEF "; date = date.Remove(0, 2); } else if (date.IndexOf("ок.") == 0) { prefix = "ABT "; date = date.Remove(0, 3); } else if (date.IndexOf("около") == 0) { prefix = "ABT "; date = date.Remove(0, 5); } date = date.Trim(); string tmp = ""; string[] toks = date.Split('.'); if (toks.Length > 3) { throw new ImporterException("date failed"); } string ym = ""; for (int i = 0; i < toks.Length; i++) { tmp = toks[i]; int x = tmp.IndexOf("/"); if (x >= 0) { ym = tmp.Substring(x + 1, tmp.Length - x - 1); tmp = tmp.Remove(x, ym.Length + 1); } val[i] = int.Parse(tmp); } if (toks.Length != 1) { if (toks.Length != 2) { if (toks.Length == 3) { tmp = val[0].ToString() + " " + GEDCOMConsts.GEDCOMMonthArray[val[1] - 1] + " " + val[2].ToString(); } } else { tmp = GEDCOMConsts.GEDCOMMonthArray[val[0] - 1] + " " + val[1].ToString(); } } else { tmp = val[0].ToString(); } tmp = prefix + tmp; if (ym != "") { tmp = tmp + "/" + ym; } evt.Date.ParseString(tmp); } catch (Exception) { fLog.Add(">>>> " + fLangMan.LS(ILS.LSID_ParseError_DateInvalid) + " \"" + date + "\""); } }
private static void CheckIndividualRecord(IBaseContext baseContext, GDMTree tree, GEDCOMFormat format, GDMIndividualRecord iRec) { if (format == GEDCOMFormat.gf_Native) { for (int i = 0, num = iRec.Events.Count; i < num; i++) { GDMCustomEvent evt = iRec.Events[i]; CheckEventPlace(evt); CheckAttrCompatible(tree, format, iRec, evt); CheckRecord_RepairTag(tree, format, evt); baseContext.CollectEventValues(evt); } for (int i = 0, num = iRec.UserReferences.Count; i < num; i++) { CheckURefCompatible(iRec, iRec.UserReferences[i]); } for (int i = 0, num = iRec.PersonalNames.Count; i < num; i++) { CheckPersonalName(iRec, iRec.PersonalNames[i], baseContext); } } else { for (int i = 0, num = iRec.Events.Count; i < num; i++) { GDMCustomEvent evt = iRec.Events[i]; CheckIndividualEvent(evt, format); CheckTagWithLists(tree, format, evt); } for (int i = 0, num = iRec.ChildToFamilyLinks.Count; i < num; i++) { CheckPointerWithNotes(tree, format, iRec.ChildToFamilyLinks[i]); } for (int i = 0, num = iRec.SpouseToFamilyLinks.Count; i < num; i++) { CheckPointerWithNotes(tree, format, iRec.SpouseToFamilyLinks[i]); } for (int i = 0, num = iRec.Associations.Count; i < num; i++) { CheckPointerWithNotes(tree, format, iRec.Associations[i]); } } for (int i = iRec.ChildToFamilyLinks.Count - 1; i >= 0; i--) { if (iRec.ChildToFamilyLinks[i].Family == null) { iRec.ChildToFamilyLinks.DeleteAt(i); } } for (int i = iRec.SpouseToFamilyLinks.Count - 1; i >= 0; i--) { if (iRec.SpouseToFamilyLinks[i].Family == null) { iRec.SpouseToFamilyLinks.DeleteAt(i); } } baseContext.ImportNames(iRec); }
public override void Fetch(GDMRecord aRec) { fRec = (aRec as GDMIndividualRecord); if (fRec == null) { return; } buf_fullname = GKUtils.GetNameString(fRec, true, false); buf_bd = null; buf_dd = null; buf_residence = ""; buf_religion = ""; buf_nationality = ""; buf_education = ""; buf_occupation = ""; buf_caste = ""; buf_mili = ""; buf_mili_ind = ""; buf_mili_dis = ""; buf_mili_rank = ""; buf_title = ""; GlobalOptions gOptions = GlobalOptions.Instance; int num = fRec.Events.Count; for (int i = 0; i < num; i++) { GDMCustomEvent ev = fRec.Events[i]; GEDCOMTagType evtType = ev.GetTagType(); if (evtType == GEDCOMTagType.BIRT && buf_bd == null) { buf_bd = ev; } else if (evtType == GEDCOMTagType.DEAT && buf_dd == null) { buf_dd = ev; } else if (evtType == GEDCOMTagType.RESI && buf_residence == "") { buf_residence = GKUtils.GetPlaceStr(ev, gOptions.PlacesWithAddress); } else if (evtType == GEDCOMTagType.RELI && buf_religion == "") { buf_religion = ev.StringValue; } else if (evtType == GEDCOMTagType.NATI && buf_nationality == "") { buf_nationality = ev.StringValue; } else if (evtType == GEDCOMTagType.EDUC && buf_education == "") { buf_education = ev.StringValue; } else if (evtType == GEDCOMTagType.OCCU && buf_occupation == "") { buf_occupation = ev.StringValue; } else if (evtType == GEDCOMTagType.CAST && buf_caste == "") { buf_caste = ev.StringValue; } else if (evtType == GEDCOMTagType._MILI && buf_mili == "") { buf_mili = ev.StringValue; } else if (evtType == GEDCOMTagType._MILI_IND && buf_mili_ind == "") { buf_mili_ind = ev.StringValue; } else if (evtType == GEDCOMTagType._MILI_DIS && buf_mili_dis == "") { buf_mili_dis = ev.StringValue; } else if (evtType == GEDCOMTagType._MILI_RANK && buf_mili_rank == "") { buf_mili_rank = ev.StringValue; } else if (evtType == GEDCOMTagType.TITL && buf_title == "") { buf_title = ev.StringValue; } } }
private void GetSimplePersonStat(StatsMode mode, List <StatsItem> values, GDMIndividualRecord iRec) { string iName = GKUtils.GetNameString(iRec, true, false); switch (mode) { case StatsMode.smAncestors: values.Add(new StatsItem(iName, GKUtils.GetAncestorsCount(iRec) - 1)); break; case StatsMode.smDescendants: values.Add(new StatsItem(iName, GKUtils.GetDescendantsCount(iRec) - 1)); break; case StatsMode.smDescGenerations: values.Add(new StatsItem(iName, GKUtils.GetDescGenerations(iRec))); break; case StatsMode.smChildsCount: values.Add(new StatsItem(iName, iRec.GetTotalChildsCount())); break; case StatsMode.smFirstbornAge: values.Add(new StatsItem(iName, GKUtils.GetFirstbornAge(iRec, GKUtils.GetFirstborn(iRec)))); break; case StatsMode.smMarriages: values.Add(new StatsItem(iName, GKUtils.GetMarriagesCount(iRec))); break; case StatsMode.smMarriageAge: values.Add(new StatsItem(iName, GKUtils.GetMarriageAge(iRec))); break; case StatsMode.smSurnames: case StatsMode.smNames: case StatsMode.smPatronymics: GetIndiName(mode, values, iRec); break; case StatsMode.smAge: CheckVal(values, GKUtils.GetAgeStr(iRec, -1)); break; case StatsMode.smLifeExpectancy: CheckVal(values, GKUtils.GetLifeExpectancyStr(iRec)); break; case StatsMode.smBirthYears: case StatsMode.smBirthTenYears: case StatsMode.smBirthPlaces: GetEventField(mode, values, iRec, GEDCOMTagName.BIRT); break; case StatsMode.smDeathYears: case StatsMode.smDeathTenYears: case StatsMode.smDeathPlaces: GetEventField(mode, values, iRec, GEDCOMTagName.DEAT); break; case StatsMode.smChildsDistribution: CheckVal(values, iRec.GetTotalChildsCount().ToString()); break; case StatsMode.smResidences: CheckVal(values, GKUtils.GetResidencePlace(iRec, false)); break; case StatsMode.smOccupation: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName.OCCU)); break; case StatsMode.smReligious: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName.RELI)); break; case StatsMode.smNational: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName.NATI)); break; case StatsMode.smEducation: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName.EDUC)); break; case StatsMode.smCaste: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName.CAST)); break; case StatsMode.smHobby: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName._HOBBY)); break; case StatsMode.smAward: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName._AWARD)); break; case StatsMode.smMili: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName._MILI)); break; case StatsMode.smMiliInd: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName._MILI_IND)); break; case StatsMode.smMiliDis: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName._MILI_DIS)); break; case StatsMode.smMiliRank: CheckVal(values, GKUtils.GetAttributeValue(iRec, GEDCOMTagName._MILI_RANK)); break; case StatsMode.smCertaintyIndex: CheckVal(values, string.Format("{0:0.00}", iRec.GetCertaintyAssessment())); break; case StatsMode.smBirthByMonth: GDMCustomEvent ev = iRec.FindEvent(GEDCOMTagType.BIRT); if (ev != null) { var dtx = ev.Date.Value as GDMDate; if (dtx != null && dtx.Month > 0) { CheckVal(values, dtx.Month.ToString()); } } break; case StatsMode.smDemography: { int lifeExp = GKUtils.GetLifeExpectancy(iRec); if (lifeExp > -1) { string v = Convert.ToString(lifeExp / 5 * 5); CheckVal(values, v, iRec.Sex); } break; } } }
public PlaceRef(GDMCustomEvent evt) { Event = evt; Date = (evt == null) ? new DateTime(0) : evt.Date.GetDateTime(); }