Esempio n. 1
0
        public static bool AddIndividualPortrait(IBaseWindow baseWin, GEDCOMIndividualRecord iRec)
        {
            bool result = false;

            GEDCOMMultimediaRecord mmRec = baseWin.Context.SelectRecord(GEDCOMRecordType.rtMultimedia, null) as GEDCOMMultimediaRecord;

            if (mmRec == null)
            {
                return(false);
            }

            // remove previous portrait link
            GEDCOMMultimediaLink mmLink = iRec.GetPrimaryMultimediaLink();

            if (mmLink != null)
            {
                mmLink.IsPrimary = false;
            }

            // set new portrait link
            mmLink = iRec.SetPrimaryMultimediaLink(mmRec);

            // select portrait area
            using (var selectDlg = AppHost.Container.Resolve <IPortraitSelectDlg>())
            {
                selectDlg.InitDialog(baseWin);
                selectDlg.MultimediaLink = mmLink;
                result = AppHost.Instance.ShowModalX(selectDlg, false);
            }

            return(result);
        }
Esempio n. 2
0
        private void SetMultimediaLink(GEDCOMMultimediaLink value)
        {
            fMultimediaLink = value;
            if (fMultimediaLink == null || fMultimediaLink.Value == null)
            {
                return;
            }

            GEDCOMMultimediaRecord mmRec = (GEDCOMMultimediaRecord)fMultimediaLink.Value;

            IImage img = fBase.Context.LoadMediaImage(mmRec.FileReferences[0], false);

            if (img == null)
            {
                return;
            }

            imageView1.OpenImage(((ImageHandler)img).Handle);

            if (fMultimediaLink.IsPrimaryCutout)
            {
                ExtRect rt = fMultimediaLink.CutoutPosition.Value;
                imageView1.SelectionRegion = new RectangleF(rt.Left, rt.Top, rt.GetWidth(), rt.GetHeight());
            }
        }
Esempio n. 3
0
        public void Test_Video()
        {
            string targetName = TestUtils.GetTempFilePath("test_video.3gp");

            Assembly assembly = typeof(CoreTests).Assembly;
            Stream   vidstm   = assembly.GetManifestResourceStream("GKTests.Resources.test_video.3gp");

            GKUtils.CopyFile(vidstm, new FileInfo(targetName), null);
            Assert.IsTrue(File.Exists(targetName));

            GEDCOMMultimediaRecord mmRecV = fBase.Context.Tree.CreateMultimedia();

            mmRecV.AddTag("FILE", "", null);
            var fileRefV = mmRecV.FileReferences[0];

            fileRefV.Title = "File Title 2";
            fileRefV.LinkFile(targetName);
            fileRefV.MediaType        = GEDCOMMediaType.mtVideo;
            fileRefV.MultimediaFormat = GEDCOMMultimediaFormat.mfMKV;

            fDialog.FileRef = fileRefV;
            Assert.AreEqual(fileRefV, fDialog.FileRef);

            fDialog.SetViewMedia(targetName);
            fDialog.Refresh();

            ClickButton("btnPlay", fDialog);
            ClickButton("btnPause", fDialog);
            ClickButton("btnMute", fDialog);
            ClickButton("btnStop", fDialog);

            KeyDownForm(fDialog.Name, Keys.Escape);
        }
Esempio n. 4
0
        public static bool AddIndividualPortrait(IBaseWindow baseWin, ChangeTracker localUndoman, GEDCOMIndividualRecord iRec)
        {
            bool result = false;

            GEDCOMMultimediaRecord mmRec = baseWin.Context.SelectRecord(GEDCOMRecordType.rtMultimedia, null) as GEDCOMMultimediaRecord;

            if (mmRec == null)
            {
                return(false);
            }

            // remove previous portrait link
            GEDCOMMultimediaLink mmLink = iRec.GetPrimaryMultimediaLink();

            if (mmLink != null)
            {
                mmLink.IsPrimary = false;
            }

            // set new portrait link
            mmLink = iRec.SetPrimaryMultimediaLink(mmRec);

            // select portrait area
            using (var selectDlg = AppHost.Container.Resolve <IPortraitSelectDlg>(baseWin)) {
                selectDlg.MultimediaLink = mmLink;
                result = AppHost.Instance.ShowModalX(selectDlg, false);
            }

            if (result)
            {
                result = localUndoman.DoOrdinaryOperation(OperationType.otIndividualPortraitAttach, iRec, mmLink);
            }

            return(result);
        }
Esempio n. 5
0
        public void ShowMedia(GEDCOMMultimediaRecord mediaRec, bool modal)
        {
            if (mediaRec == null)
            {
                throw new ArgumentNullException("mediaRec");
            }

            GEDCOMFileReferenceWithTitle fileRef = mediaRec.FileReferences[0];
            MultimediaKind mmKind = GKUtils.GetMultimediaKind(fileRef.MultimediaFormat);

            if (mmKind == MultimediaKind.mkNone)
            {
                return;
            }

            bool externalViewer = !GlobalOptions.Instance.EmbeddedMediaPlayer &&
                                  ((mmKind == MultimediaKind.mkAudio || mmKind == MultimediaKind.mkVideo));

            if (externalViewer)
            {
                string targetFile = fContext.MediaLoad(fileRef);
                GKUtils.LoadExtFile(targetFile);
            }
            else
            {
                //var mediaViewer = AppHost.Container.Resolve<IMediaViewerWin>(this);
                MediaViewerWin mediaViewer = new MediaViewerWin(this);
                try {
                    try {
                        mediaViewer.FileRef = fileRef;
                        if (modal)
                        {
                            mediaViewer.Show();
                        }
                        else
                        {
                            mediaViewer.ShowInTaskbar = true;
                            mediaViewer.Show();
                        }
                    } finally {
                        if (modal)
                        {
                            mediaViewer.Dispose();
                        }
                    }
                } catch (Exception ex) {
                    if (mediaViewer != null)
                    {
                        mediaViewer.Dispose();
                    }
                    Logger.LogWrite("BaseWinSDI.ShowMedia(): " + ex.Message);
                }
            }
        }
Esempio n. 6
0
        public override void Setup()
        {
            base.Setup();

            WFAppHost.ConfigureBootstrap(false);

            fBase             = new BaseWindowStub();
            fMultimediaRecord = new GEDCOMMultimediaRecord(fBase.Context.Tree, fBase.Context.Tree, "", "");
            fMultimediaRecord.FileReferences.Add(new GEDCOMFileReferenceWithTitle(fBase.Context.Tree, fMultimediaRecord, "", ""));

            fDialog          = new MediaEditDlg(fBase);
            fDialog.MediaRec = fMultimediaRecord;
            fDialog.Show();
        }
Esempio n. 7
0
        private void SetMediaRec(GEDCOMMultimediaRecord value)
        {
            fMediaRec = value;
            try {
                fNotesList.ListModel.DataOwner   = fMediaRec;
                fSourcesList.ListModel.DataOwner = fMediaRec;

                ControlsRefresh();
                //ActiveControl = txtName;
                txtName.Focus();
            } catch (Exception ex) {
                Logger.LogWrite("MediaEditDlg.SetMediaRec(): " + ex.Message);
            }
        }
Esempio n. 8
0
        public static bool ModifyMedia(IBaseWindow baseWin, ref GEDCOMMultimediaRecord mediaRec)
        {
            bool result;

            try {
                baseWin.Context.BeginUpdate();
                GEDCOMTree tree = baseWin.Context.Tree;

                using (var dlg = AppHost.Container.Resolve <IMediaEditDlg>())
                {
                    dlg.InitDialog(baseWin);

                    bool exists = mediaRec != null;
                    if (!exists)
                    {
                        mediaRec = new GEDCOMMultimediaRecord(tree, tree, "", "");
                        mediaRec.FileReferences.Add(new GEDCOMFileReferenceWithTitle(tree, mediaRec, "", ""));
                        mediaRec.InitNew();
                    }

                    try {
                        baseWin.Context.LockRecord(mediaRec);

                        dlg.MediaRec = mediaRec;
                        result       = (AppHost.Instance.ShowModalX(dlg, false));
                    } finally {
                        baseWin.Context.UnlockRecord(mediaRec);
                    }

                    if (!exists)
                    {
                        if (result)
                        {
                            tree.AddRecord(mediaRec);
                        }
                        else
                        {
                            mediaRec.Dispose();
                            mediaRec = null;
                        }
                    }
                }
            } finally {
                baseWin.Context.EndUpdate();
            }

            return(result);
        }
Esempio n. 9
0
 public void SelectSummaryLink(string linkName)
 {
     if (linkName.StartsWith("view_"))
     {
         string xref = linkName.Remove(0, 5);
         GEDCOMMultimediaRecord mmRec = fContext.Tree.XRefIndex_Find(xref) as GEDCOMMultimediaRecord;
         if (mmRec != null)
         {
             fView.ShowMedia(mmRec, false);
         }
     }
     else
     {
         SelectRecordByXRef(linkName);
     }
 }
Esempio n. 10
0
        private void LoadList()
        {
            GEDCOMRecord record;
            var          enumerator = fBase.Context.Tree.GetEnumerator(GEDCOMRecordType.rtMultimedia);

            while (enumerator.MoveNext(out record))
            {
                GEDCOMMultimediaRecord       mediaRec = (GEDCOMMultimediaRecord)record;
                GEDCOMFileReferenceWithTitle fileRef  = mediaRec.FileReferences[0];

                MultimediaKind mmKind = GKUtils.GetMultimediaKind(fileRef.MultimediaFormat);
                if (mmKind == MultimediaKind.mkImage)
                {
                    fFileRefs.Add(fileRef);
                }
            }
        }
Esempio n. 11
0
        public override void Setup()
        {
            base.Setup();

            fBase = new BaseWindowStub();

            GEDCOMMultimediaRecord mmRec = fBase.Context.Tree.CreateMultimedia();

            mmRec.AddTag("FILE", "", null);
            fileRef       = mmRec.FileReferences[0];
            fileRef.Title = "File Title 2";
            fileRef.LinkFile("shaytan_plant.jpg");
            fileRef.MediaType = GEDCOMMediaType.mtPhoto;

            fDialog = new MediaViewerWin(fBase);
            fDialog.Show();
        }
Esempio n. 12
0
        private bool ProcessRecordMediaAdd(bool redo)
        {
            IGEDCOMStructWithLists swl      = fObj as IGEDCOMStructWithLists;
            GEDCOMMultimediaRecord mediaRec = fNewVal as GEDCOMMultimediaRecord;

            bool result = (swl != null && mediaRec != null);

            if (result)
            {
                if (redo)
                {
                    GEDCOMMultimediaLink mmLink = swl.AddMultimedia(mediaRec);
                    fOldVal = mmLink;
                }
                else
                {
                    GEDCOMMultimediaLink mmLink = fOldVal as GEDCOMMultimediaLink;
                    swl.MultimediaLinks.Delete(mmLink);
                }
            }
            return(result);
        }
Esempio n. 13
0
        public override void UpdateView()
        {
            if (fMultimediaLink == null || fMultimediaLink.Value == null)
            {
                return;
            }

            GEDCOMMultimediaRecord mmRec = (GEDCOMMultimediaRecord)fMultimediaLink.Value;

            IImage img = fBase.Context.LoadMediaImage(mmRec.FileReferences[0], false);

            if (img == null)
            {
                return;
            }

            fView.ImageCtl.OpenImage(img);

            if (fMultimediaLink.IsPrimaryCutout)
            {
                fView.ImageCtl.SelectionRegion = fMultimediaLink.CutoutPosition.Value;
            }
        }
Esempio n. 14
0
        public void Test_MediaLoadSave()
        {
            string sourFile = TestUtils.PrepareTestFile("shaytan_plant.jpg");

            string gedFile = TestUtils.GetTempFilePath("test_mm.ged");

            using (BaseContext ctx = new BaseContext(null)) {
                Assert.IsTrue(ctx.IsUnknown());

                Assert.AreEqual(false, ctx.MediaSave(null, "", MediaStoreType.mstReference));
                Assert.AreEqual(null, ctx.LoadMediaImage(null, false));
                Assert.AreEqual(null, ctx.LoadMediaImage(null, 0, 0, ExtRect.Empty, false));
                Assert.AreEqual(null, ctx.GetPrimaryBitmap(null, 0, 0, false));
                Assert.AreEqual(null, ctx.GetPrimaryBitmapUID(null));

                ctx.FileSave(gedFile);
                Assert.AreEqual(true, ctx.CheckBasePath()); // need path for archive and storage

                var mmRecR = new GEDCOMMultimediaRecord(ctx.Tree, ctx.Tree, "", "");
                mmRecR.FileReferences.Add(new GEDCOMFileReferenceWithTitle(ctx.Tree, mmRecR, "", ""));
                Assert.AreEqual(true, ctx.MediaSave(mmRecR.FileReferences[0], sourFile, MediaStoreType.mstReference));
                Assert.IsNotNull(ctx.LoadMediaImage(mmRecR.FileReferences[0], false));
                Assert.IsNotNull(ctx.MediaLoad(mmRecR.FileReferences[0]));

                var mmRecA = new GEDCOMMultimediaRecord(ctx.Tree, ctx.Tree, "", "");
                mmRecA.FileReferences.Add(new GEDCOMFileReferenceWithTitle(ctx.Tree, mmRecA, "", ""));
                Assert.AreEqual(true, ctx.MediaSave(mmRecA.FileReferences[0], sourFile, MediaStoreType.mstArchive));
                Assert.IsNotNull(ctx.LoadMediaImage(mmRecA.FileReferences[0], false));
                Assert.IsNotNull(ctx.MediaLoad(mmRecA.FileReferences[0]));

                var mmRecS = new GEDCOMMultimediaRecord(ctx.Tree, ctx.Tree, "", "");
                mmRecS.FileReferences.Add(new GEDCOMFileReferenceWithTitle(ctx.Tree, mmRecS, "", ""));
                Assert.AreEqual(true, ctx.MediaSave(mmRecS.FileReferences[0], sourFile, MediaStoreType.mstStorage));
                Assert.IsNotNull(ctx.LoadMediaImage(mmRecS.FileReferences[0], false));
                Assert.IsNotNull(ctx.MediaLoad(mmRecS.FileReferences[0]));
            }
        }
Esempio n. 15
0
        public override void UpdateContents()
        {
            var dataOwner = fDataOwner as IGEDCOMStructWithLists;

            if (fSheetList == null || dataOwner == null)
            {
                return;
            }

            try
            {
                fSheetList.ClearItems();

                foreach (GEDCOMMultimediaLink mmLink in dataOwner.MultimediaLinks)
                {
                    GEDCOMMultimediaRecord mmRec = mmLink.Value as GEDCOMMultimediaRecord;
                    if (mmRec == null)
                    {
                        continue;
                    }

                    if (mmRec.FileReferences.Count == 0)
                    {
                        continue;
                    }

                    GEDCOMFileReferenceWithTitle fileRef = mmRec.FileReferences[0];

                    fSheetList.AddItem(mmLink, new object[] { fileRef.Title,
                                                              LangMan.LS(GKData.MediaTypes[(int)fileRef.MediaType]) });
                }
            }
            catch (Exception ex)
            {
                Logger.LogWrite("MediaLinksListModel.UpdateContents(): " + ex.Message);
            }
        }
Esempio n. 16
0
        public void Test_LMMultimedia()
        {
            var listManager = new MultimediaListMan(fContext);

            Assert.IsNotNull(listManager);

            GEDCOMMultimediaRecord mediaRec = fContext.Tree.XRefIndex_Find("O1") as GEDCOMMultimediaRecord;

            listManager.Fetch(mediaRec);

            listManager.QuickFilter = "*";
            Assert.IsTrue(listManager.CheckFilter());
            listManager.QuickFilter = "*media*";
            Assert.IsTrue(listManager.CheckFilter());
            listManager.QuickFilter = "*xxxx*";
            Assert.IsFalse(listManager.CheckFilter());

            var lvMock = new ListViewMock();

            listManager.UpdateColumns(lvMock);
            var listItem = new GKListItem("", null);

            listManager.UpdateItem(0, listItem, mediaRec);
        }
Esempio n. 17
0
 public void ShowMedia(GEDCOMMultimediaRecord mediaRec, bool modal)
 {
 }
Esempio n. 18
0
        public static GEDCOMRecord AddRecord(IBaseWindow baseWin, GEDCOMRecordType rt, Target target)
        {
            bool         result = false;
            GEDCOMRecord rec    = null;

            switch (rt)
            {
            case GEDCOMRecordType.rtIndividual:
            {
                // FIXME: legacy code, checkit
                if (target == null)
                {
                    target            = new Target();
                    target.TargetMode = TargetMode.tmParent;
                }

                GEDCOMIndividualRecord indivRec = null;
                result = ModifyIndividual(baseWin, ref indivRec, target.TargetIndividual, target.TargetMode, target.NeedSex);
                rec    = indivRec;
                break;
            }

            case GEDCOMRecordType.rtFamily:
            {
                if (target == null)
                {
                    target = new Target();
                }

                TargetMode famTarget = (target.TargetMode != TargetMode.tmFamilyChild) ? TargetMode.tmNone : target.TargetMode;

                GEDCOMFamilyRecord fam = null;
                result = ModifyFamily(baseWin, ref fam, famTarget, target.TargetIndividual);
                rec    = fam;
                break;
            }

            case GEDCOMRecordType.rtNote:
            {
                GEDCOMNoteRecord note = null;
                result = ModifyNote(baseWin, ref note);
                rec    = note;
                break;
            }

            case GEDCOMRecordType.rtMultimedia:
            {
                GEDCOMMultimediaRecord mmRec = null;
                result = ModifyMedia(baseWin, ref mmRec);
                rec    = mmRec;
                break;
            }

            case GEDCOMRecordType.rtSource:
            {
                GEDCOMSourceRecord src = null;
                result = ModifySource(baseWin, ref src);
                rec    = src;
                break;
            }

            case GEDCOMRecordType.rtRepository:
            {
                GEDCOMRepositoryRecord rep = null;
                result = ModifyRepository(baseWin, ref rep);
                rec    = rep;
                break;
            }

            case GEDCOMRecordType.rtGroup:
            {
                GEDCOMGroupRecord grp = null;
                result = ModifyGroup(baseWin, ref grp);
                rec    = grp;
                break;
            }

            case GEDCOMRecordType.rtResearch:
            {
                GEDCOMResearchRecord rsr = null;
                result = ModifyResearch(baseWin, ref rsr);
                rec    = rsr;
                break;
            }

            case GEDCOMRecordType.rtTask:
            {
                GEDCOMTaskRecord tsk = null;
                result = ModifyTask(baseWin, ref tsk);
                rec    = tsk;
                break;
            }

            case GEDCOMRecordType.rtCommunication:
            {
                GEDCOMCommunicationRecord comm = null;
                result = ModifyCommunication(baseWin, ref comm);
                rec    = comm;
                break;
            }

            case GEDCOMRecordType.rtLocation:
            {
                GEDCOMLocationRecord loc = null;
                result = ModifyLocation(baseWin, ref loc);
                rec    = loc;
                break;
            }
            }

            return((result) ? rec : null);
        }
Esempio n. 19
0
        public static bool EditRecord(IBaseWindow baseWin, GEDCOMRecord rec)
        {
            bool result = false;

            switch (rec.RecordType)
            {
            case GEDCOMRecordType.rtIndividual:
                GEDCOMIndividualRecord ind = rec as GEDCOMIndividualRecord;
                result = ModifyIndividual(baseWin, ref ind, null, TargetMode.tmNone, GEDCOMSex.svNone);
                break;

            case GEDCOMRecordType.rtFamily:
                GEDCOMFamilyRecord fam = rec as GEDCOMFamilyRecord;
                result = ModifyFamily(baseWin, ref fam, TargetMode.tmNone, null);
                break;

            case GEDCOMRecordType.rtNote:
                GEDCOMNoteRecord note = rec as GEDCOMNoteRecord;
                result = ModifyNote(baseWin, ref note);
                break;

            case GEDCOMRecordType.rtMultimedia:
                GEDCOMMultimediaRecord mmRec = rec as GEDCOMMultimediaRecord;
                result = ModifyMedia(baseWin, ref mmRec);
                break;

            case GEDCOMRecordType.rtSource:
                GEDCOMSourceRecord src = rec as GEDCOMSourceRecord;
                result = ModifySource(baseWin, ref src);
                break;

            case GEDCOMRecordType.rtRepository:
                GEDCOMRepositoryRecord rep = rec as GEDCOMRepositoryRecord;
                result = ModifyRepository(baseWin, ref rep);
                break;

            case GEDCOMRecordType.rtGroup:
                GEDCOMGroupRecord grp = rec as GEDCOMGroupRecord;
                result = ModifyGroup(baseWin, ref grp);
                break;

            case GEDCOMRecordType.rtResearch:
                GEDCOMResearchRecord rsr = rec as GEDCOMResearchRecord;
                result = ModifyResearch(baseWin, ref rsr);
                break;

            case GEDCOMRecordType.rtTask:
                GEDCOMTaskRecord tsk = rec as GEDCOMTaskRecord;
                result = ModifyTask(baseWin, ref tsk);
                break;

            case GEDCOMRecordType.rtCommunication:
                GEDCOMCommunicationRecord comm = rec as GEDCOMCommunicationRecord;
                result = ModifyCommunication(baseWin, ref comm);
                break;

            case GEDCOMRecordType.rtLocation:
                GEDCOMLocationRecord loc = rec as GEDCOMLocationRecord;
                result = ModifyLocation(baseWin, ref loc);
                break;
            }

            return(result);
        }
Esempio n. 20
0
        public void Test_ShowXInfo()
        {
            StringList summary = new StringList();

            summary.Clear();
            GKUtils.ShowFamilyInfo(fContext, null, null);
            GEDCOMFamilyRecord famRec = fContext.Tree.XRefIndex_Find("F1") as GEDCOMFamilyRecord;

            GKUtils.ShowFamilyInfo(fContext, famRec, summary);

            summary.Clear();
            GKUtils.ShowGroupInfo(null, null);
            GEDCOMGroupRecord grpRec = fContext.Tree.XRefIndex_Find("G1") as GEDCOMGroupRecord;

            GKUtils.ShowGroupInfo(grpRec, summary);

            summary.Clear();
            GKUtils.ShowMultimediaInfo(null, null);
            GEDCOMMultimediaRecord mmRec = fContext.Tree.XRefIndex_Find("O1") as GEDCOMMultimediaRecord;

            GKUtils.ShowMultimediaInfo(mmRec, summary);

            summary.Clear();
            GKUtils.ShowNoteInfo(null, null);
            GEDCOMNoteRecord noteRec = fContext.Tree.XRefIndex_Find("N1") as GEDCOMNoteRecord;

            GKUtils.ShowNoteInfo(noteRec, summary);

            summary.Clear();
            GKUtils.ShowPersonInfo(fContext, null, null);
            GEDCOMIndividualRecord indRec = fContext.Tree.XRefIndex_Find("I1") as GEDCOMIndividualRecord;

            GKUtils.ShowPersonInfo(fContext, indRec, summary);

            summary.Clear();
            GKUtils.ShowSourceInfo(null, null);
            GEDCOMSourceRecord srcRec = fContext.Tree.XRefIndex_Find("S1") as GEDCOMSourceRecord;

            GKUtils.ShowSourceInfo(srcRec, summary);

            summary.Clear();
            GKUtils.ShowRepositoryInfo(null, null);
            GEDCOMRepositoryRecord repRec = fContext.Tree.XRefIndex_Find("R1") as GEDCOMRepositoryRecord;

            GKUtils.ShowRepositoryInfo(repRec, summary);

            summary.Clear();
            GKUtils.ShowResearchInfo(null, null);
            GEDCOMResearchRecord resRec = fContext.Tree.XRefIndex_Find("RS1") as GEDCOMResearchRecord;

            GKUtils.ShowResearchInfo(resRec, summary);

            summary.Clear();
            GKUtils.ShowTaskInfo(null, null);
            GEDCOMTaskRecord taskRec = fContext.Tree.XRefIndex_Find("TK1") as GEDCOMTaskRecord;

            GKUtils.ShowTaskInfo(taskRec, summary);

            summary.Clear();
            GKUtils.ShowCommunicationInfo(null, null);
            GEDCOMCommunicationRecord commRec = fContext.Tree.XRefIndex_Find("CM1") as GEDCOMCommunicationRecord;

            GKUtils.ShowCommunicationInfo(commRec, summary);

            summary.Clear();
            GKUtils.ShowLocationInfo(null, null);
            GEDCOMLocationRecord locRec = fContext.Tree.XRefIndex_Find("L1") as GEDCOMLocationRecord;

            GKUtils.ShowLocationInfo(locRec, summary);
        }
Esempio n. 21
0
        public static void FillContext(IBaseContext context)
        {
            // a null result if the record is not defined
            GEDCOMCustomEvent evt = context.CreateEventEx(null, "BIRT", "xxxxx", "xxxxx");

            Assert.IsNull(evt);

            // first individual
            GEDCOMIndividualRecord iRec = context.CreatePersonEx("Ivan", "Ivanovich", "Ivanov", GEDCOMSex.svMale, true);

            Assert.IsNotNull(iRec);

            evt = iRec.FindEvent("BIRT");
            Assert.IsNotNull(evt);
            evt.Date.ParseString("28 DEC 1990");
            evt.Place.StringValue = "Ivanovo";

            GEDCOMCustomEvent evtd = context.CreateEventEx(iRec, "DEAT", "28 DEC 2010", "Ivanovo");

            Assert.IsNotNull(evtd);

            // second individual, wife
            GEDCOMIndividualRecord iRec2 = context.CreatePersonEx("Maria", "Petrovna", "Ivanova", GEDCOMSex.svFemale, true);

            evt = iRec2.FindEvent("BIRT");
            Assert.IsNotNull(evt);
            evt.Date.ParseString("17 MAR 1990");
            evt.Place.StringValue = "Ivanovo";

            iRec.AddAssociation("spouse", iRec2);

            // third individual, child
            GEDCOMIndividualRecord iRec3 = context.CreatePersonEx("Anna", "Ivanovna", "Ivanova", GEDCOMSex.svFemale, true);

            evt = iRec3.FindEvent("BIRT");
            Assert.IsNotNull(evt);
            evt.Date.ParseString("11 FEB 2010");
            evt.Place.StringValue = "Ivanovo";

            // their family
            GEDCOMFamilyRecord famRec = context.Tree.CreateFamily();

            Assert.IsNotNull(famRec);
            famRec.AddSpouse(iRec);
            famRec.AddSpouse(iRec2);
            famRec.AddChild(iRec3);

            context.CreateEventEx(famRec, "MARR", "01 JAN 2000", "unknown");

            // individual outside the family
            GEDCOMIndividualRecord iRec4 = context.CreatePersonEx("Alex", "", "Petrov", GEDCOMSex.svMale, true);

            evt = iRec4.FindEvent("BIRT");
            Assert.IsNotNull(evt);
            evt.Date.ParseString("15 JUN 1989");
            evt.Place.StringValue = "Far Forest";

            evt = context.CreateEventEx(iRec4, "RESI", "12 FEB", "Far Forest");
            Assert.IsNotNull(evt);

            // fifth
            GEDCOMIndividualRecord iRec5 = context.CreatePersonEx("Anna", "", "Jones", GEDCOMSex.svFemale, false);

            Assert.IsNotNull(iRec5);

            // group for tests
            GEDCOMGroupRecord groupRec = context.Tree.CreateGroup();

            groupRec.GroupName = "GroupTest";
            Assert.IsNotNull(groupRec, "group1 != null");
            groupRec.AddMember(iRec);

            // location for tests
            GEDCOMLocationRecord 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
            GEDCOMRepositoryRecord repoRec = context.Tree.CreateRepository();

            repoRec.RepositoryName = "Test repository";
            Assert.IsNotNull(repoRec, "repoRec != null");

            // research for tests
            GEDCOMResearchRecord resRec = context.Tree.CreateResearch();

            resRec.ResearchName = "Test research";
            Assert.IsNotNull(resRec, "resRec != null");

            // source for tests
            GEDCOMSourceRecord srcRec = context.Tree.CreateSource();

            srcRec.FiledByEntry = "Test source";
            Assert.IsNotNull(srcRec, "srcRec != null");
            iRec.AddSource(srcRec, "p1", 0);

            // note for tests
            GEDCOMNoteRecord noteRec = context.Tree.CreateNote();

            noteRec.SetNoteText("Test note");
            Assert.IsNotNull(noteRec, "noteRec != null");
            iRec.AddNote(noteRec);

            // task for tests
            GEDCOMTaskRecord tskRec = context.Tree.CreateTask();

            tskRec.Goal = "Test task";
            Assert.IsNotNull(tskRec, "tskRec != null");

            // media for tests
            GEDCOMMultimediaRecord mediaRec = context.Tree.CreateMultimedia();

            mediaRec.AddTag("FILE", "", null);
            GEDCOMFileReferenceWithTitle fileRef = mediaRec.FileReferences[0];

            fileRef.Title = "Test multimedia";
            fileRef.LinkFile("sample.png");
            Assert.IsNotNull(mediaRec, "mediaRec != null");
            iRec.AddMultimedia(mediaRec);

            // communication for tests
            GEDCOMCommunicationRecord commRec = context.Tree.CreateCommunication();

            commRec.CommName = "Test communication";
            Assert.IsNotNull(commRec, "commRec != null");
        }
Esempio n. 22
0
 public override void Fetch(GEDCOMRecord aRec)
 {
     fRec = (aRec as GEDCOMMultimediaRecord);
 }