public static bool AddIndividualPortrait(IBaseWindow baseWin, ChangeTracker localUndoman, GDMIndividualRecord iRec) { bool result = false; GDMMultimediaRecord mmRec = baseWin.Context.SelectRecord(GDMRecordType.rtMultimedia, null) as GDMMultimediaRecord; if (mmRec == null) { return(false); } // remove previous portrait link GDMMultimediaLink mmLink = iRec.GetPrimaryMultimediaLink(); if (mmLink != null) { mmLink.IsPrimary = false; } // set new portrait link mmLink = iRec.SetPrimaryMultimediaLink(mmRec); // select portrait area using (var selectDlg = AppHost.ResolveDialog <IPortraitSelectDlg>(baseWin)) { selectDlg.MultimediaLink = mmLink; result = AppHost.Instance.ShowModalX(selectDlg, false); } if (result) { result = localUndoman.DoOrdinaryOperation(OperationType.otIndividualPortraitAttach, iRec, mmLink); } return(result); }
public static bool AddIndividualMother(IBaseWindow baseWin, ChangeTracker localUndoman, GDMIndividualRecord person) { bool result = false; GDMIndividualRecord mother = baseWin.Context.SelectPerson(person, TargetMode.tmChild, GDMSex.svFemale); if (mother != null) { GDMFamilyRecord family = baseWin.Context.GetChildFamily(person, true, mother); if (family != null) { if (family.Wife.Value == null) { // new family result = localUndoman.DoOrdinaryOperation(OperationType.otFamilySpouseAttach, family, mother); } else { // selected family with wife Logger.LogWrite("BaseController.AddMother(): fail, because family already has mother"); result = true; } } } return(result); }
public static bool AddIndividualFather(IBaseWindow baseWin, ChangeTracker localUndoman, GDMIndividualRecord person) { bool result = false; GDMIndividualRecord father = baseWin.Context.SelectPerson(person, TargetMode.tmChild, GDMSex.svMale); if (father != null) { GDMFamilyRecord family = baseWin.Context.GetChildFamily(person, true, father); if (family != null) { var husb = baseWin.Context.Tree.GetPtrValue <GDMIndividualRecord>(family.Husband); if (husb == null) { // new family result = localUndoman.DoOrdinaryOperation(OperationType.otFamilySpouseAttach, family, father); } else { // selected family with husband Logger.WriteError("BaseController.AddFather(): fail, because family already has father"); result = true; } } } return(result); }
public static bool DeleteIndividualPortrait(IBaseWindow baseWin, ChangeTracker localUndoman, GDMIndividualRecord iRec) { GDMMultimediaLink mmLink = iRec.GetPrimaryMultimediaLink(); if (mmLink != null) { return(localUndoman.DoOrdinaryOperation(OperationType.otIndividualPortraitDetach, iRec, mmLink)); } return(false); }
public static bool AddFamilyWife(IBaseWindow baseWin, ChangeTracker localUndoman, GDMFamilyRecord family) { bool result = false; GDMIndividualRecord wife = baseWin.Context.SelectPerson(family.Husband.Individual, TargetMode.tmSpouse, GDMSex.svFemale); if (wife != null && family.Wife.IsEmpty()) { result = localUndoman.DoOrdinaryOperation(OperationType.otFamilySpouseAttach, family, wife); } return(result); }
public static bool AddFamilyHusband(IBaseWindow baseWin, ChangeTracker localUndoman, GDMFamilyRecord family) { bool result = false; GDMIndividualRecord husband = baseWin.Context.SelectPerson(null, TargetMode.tmNone, GDMSex.svMale); if (husband != null && family.Husband.StringValue == "") { result = localUndoman.DoOrdinaryOperation(OperationType.otFamilySpouseAttach, family, husband); } return(result); }
public static bool AddFamilyWife(IBaseWindow baseWin, ChangeTracker localUndoman, GEDCOMFamilyRecord family) { bool result = false; GEDCOMIndividualRecord wife = baseWin.Context.SelectPerson(null, TargetMode.tmNone, GEDCOMSex.svFemale); if (wife != null && family.Wife.StringValue == "") { result = localUndoman.DoOrdinaryOperation(OperationType.otFamilySpouseAttach, family, wife); } return(result); }
public static bool AddFamilyHusband(IBaseWindow baseWin, ChangeTracker localUndoman, GDMFamilyRecord family) { bool result = false; var wife = baseWin.Context.Tree.GetPtrValue(family.Wife); GDMIndividualRecord husband = baseWin.Context.SelectPerson(wife, TargetMode.tmSpouse, GDMSex.svMale); if (husband != null && family.Husband.IsEmpty()) { result = localUndoman.DoOrdinaryOperation(OperationType.otFamilySpouseAttach, family, husband); } return(result); }
public static bool DeleteIndividualFather(IBaseWindow baseWin, ChangeTracker localUndoman, GDMIndividualRecord person) { bool result = false; if (AppHost.StdDialogs.ShowQuestionYN(LangMan.LS(LSID.LSID_DetachFatherQuery))) { GDMFamilyRecord family = baseWin.Context.GetChildFamily(person, false, null); if (family != null) { GDMIndividualRecord father = family.Husband.Individual; result = localUndoman.DoOrdinaryOperation(OperationType.otFamilySpouseDetach, family, father); } } return(result); }
public static bool DeleteFamilyWife(IBaseWindow baseWin, ChangeTracker localUndoman, GDMFamilyRecord family) { bool result = false; GDMIndividualRecord wife = family.Wife.Individual; if (!baseWin.Context.IsAvailableRecord(wife)) { return(false); } if (AppHost.StdDialogs.ShowQuestionYN(LangMan.LS(LSID.LSID_DetachWifeQuery))) { result = localUndoman.DoOrdinaryOperation(OperationType.otFamilySpouseDetach, family, wife); } return(result); }
public static bool DeleteFamilyHusband(IBaseWindow baseWin, ChangeTracker localUndoman, GDMFamilyRecord family) { bool result = false; GDMIndividualRecord husband = baseWin.Context.Tree.GetPtrValue(family.Husband); if (!baseWin.Context.IsAvailableRecord(husband)) { return(false); } if (AppHost.StdDialogs.ShowQuestionYN(LangMan.LS(LSID.LSID_DetachHusbandQuery))) { result = localUndoman.DoOrdinaryOperation(OperationType.otFamilySpouseDetach, family, husband); } return(result); }
public static bool ModifySourceCitation(IBaseWindow baseWin, ChangeTracker undoman, IGEDCOMStructWithLists _struct, ref GEDCOMSourceCitation cit) { bool result; try { baseWin.Context.BeginUpdate(); GEDCOMTree tree = baseWin.Context.Tree; using (var dlg = AppHost.Container.Resolve <ISourceCitEditDlg>()) { dlg.InitDialog(baseWin); bool exists = cit != null; if (!exists) { cit = new GEDCOMSourceCitation(tree, _struct as GEDCOMObject, "", ""); } dlg.SourceCitation = cit; result = AppHost.Instance.ShowModalX(dlg, false); if (!exists) { if (result) { //_struct.SourceCitations.Add(cit); result = undoman.DoOrdinaryOperation(OperationType.otRecordSourceCitAdd, (GEDCOMObject)_struct, cit); } else { cit.Dispose(); } } } } finally { baseWin.Context.EndUpdate(); } return(result); }
public static bool ModifySourceCitation(IBaseWindow baseWin, ChangeTracker undoman, IGDMStructWithSourceCitations _struct, ref GDMSourceCitation cit) { bool result; try { baseWin.Context.BeginUpdate(); using (var dlg = AppHost.ResolveDialog <ISourceCitEditDlg>(baseWin)) { bool exists = cit != null; if (!exists) { cit = new GDMSourceCitation(); } dlg.SourceCitation = cit; result = AppHost.Instance.ShowModalX(dlg, false); if (!exists) { if (result) { result = undoman.DoOrdinaryOperation(OperationType.otRecordSourceCitAdd, (GDMObject)_struct, cit); } else { cit.Dispose(); } } } } finally { baseWin.Context.EndUpdate(); } return(result); }