public override bool Accept()
        {
            try {
                fEvent.Place.StringValue    = fView.Place.Text;
                fEvent.Place.Location.Value = fTempLocation;
                fEvent.Classification       = fView.EventName.Text;
                fEvent.Cause  = fView.Cause.Text;
                fEvent.Agency = fView.Agency.Text;

                GDMCustomDate dt = AssembleDate();
                if (dt == null)
                {
                    throw new ArgumentNullException("dt");
                }

                fEvent.Date.ParseString(dt.StringValue);

                int eventType = fView.EventType.SelectedIndex;
                if (fEvent is GDMFamilyEvent)
                {
                    fEvent.SetName(GKData.FamilyEvents[eventType].Sign);
                }
                else
                {
                    GKData.EventStruct eventProps = GKData.PersonEvents[eventType];
                    fEvent.SetName(eventProps.Sign);
                    if (eventProps.Kind == PersonEventKind.ekFact)
                    {
                        fEvent.StringValue = fView.Attribute.Text;
                    }
                    else
                    {
                        fEvent.StringValue = "";
                    }
                }

                if (fEvent is GDMIndividualEvent)
                {
                    if (GKData.PersonEvents[eventType].Kind == PersonEventKind.ekFact)
                    {
                        GDMIndividualAttribute attr = new GDMIndividualAttribute(fEvent.Owner);
                        attr.Assign(fEvent);
                        fEvent = attr;
                    }
                }

                CommitChanges();

                return(true);
            } catch (Exception ex) {
                Logger.WriteError("EventEditController.Accept()", ex);
                return(false);
            }
        }
Beispiel #2
0
        public void Test_CollectEventValues()
        {
            Assert.IsNotNull(fContext.ValuesCollection);

            fContext.CollectEventValues(null);
            Assert.AreEqual(0, fContext.ValuesCollection.Count);

            GDMIndividualRecord iRec = fContext.Tree.XRefIndex_Find("I1") as GDMIndividualRecord;
            var evt = new GDMIndividualAttribute(iRec, (int)GEDCOMTagType._AWARD, "Congressional Gold Medal");

            fContext.CollectEventValues(evt);
            Assert.AreEqual(1, fContext.ValuesCollection.Count);
        }