Exemplo n.º 1
0
        private GEDCOMCustomDate AssembleDate()
        {
            GEDCOMCustomDate result = null;

            GEDCOMCalendar cal1 = GetComboCalendar(cmbDate1Calendar);
            GEDCOMCalendar cal2 = GetComboCalendar(cmbDate2Calendar);

            GEDCOMDate gcd1 = GEDCOMDate.CreateByFormattedStr(txtEventDate1.Text, cal1, true);

            if (gcd1 == null)
            {
                throw new ArgumentNullException("gcd1");
            }

            GEDCOMDate gcd2 = GEDCOMDate.CreateByFormattedStr(txtEventDate2.Text, cal2, true);

            if (gcd2 == null)
            {
                throw new ArgumentNullException("gcd2");
            }

            gcd1.YearBC = btnBC1.Checked;
            gcd2.YearBC = btnBC2.Checked;

            switch (cmbEventDateType.SelectedIndex)
            {
            case 0:
                result = gcd1;
                break;

            case 1:     // BEF gcd2
                result = GEDCOMCustomDate.CreateRange(null, null, null, gcd2);
                break;

            case 2:     // AFT gcd1
                result = GEDCOMCustomDate.CreateRange(null, null, gcd1, null);
                break;

            case 3:     // "BET " + gcd1 + " AND " + gcd2
                result = GEDCOMCustomDate.CreateRange(null, null, gcd1, gcd2);
                break;

            case 4:     // FROM gcd1
                result = GEDCOMCustomDate.CreatePeriod(null, null, gcd1, null);
                break;

            case 5:     // TO gcd2
                result = GEDCOMCustomDate.CreatePeriod(null, null, null, gcd2);
                break;

            case 6:     // FROM gcd1 TO gcd2
                result = GEDCOMCustomDate.CreatePeriod(null, null, gcd1, gcd2);
                break;

            case 7:     // ABT gcd1
                result = GEDCOMCustomDate.CreateApproximated(null, null, gcd1, GEDCOMApproximated.daAbout);
                break;

            case 8:     // CAL gcd1
                result = GEDCOMCustomDate.CreateApproximated(null, null, gcd1, GEDCOMApproximated.daCalculated);
                break;

            case 9:     // EST gcd1
                result = GEDCOMCustomDate.CreateApproximated(null, null, gcd1, GEDCOMApproximated.daEstimated);
                break;
            }

            return(result);
        }