Exemple #1
0
        static List <Pullenti.Ner.ReferentToken> _createRefs(List <DateExToken.DateExItemToken> its)
        {
            List <Pullenti.Ner.ReferentToken> res = new List <Pullenti.Ner.ReferentToken>();

            Pullenti.Ner.Date.DateReferent own = null;
            for (int i = 0; i < its.Count; i++)
            {
                DateExToken.DateExItemToken    it = its[i];
                Pullenti.Ner.Date.DateReferent d  = new Pullenti.Ner.Date.DateReferent();
                if (it.IsValueRelate)
                {
                    d.IsRelative = true;
                }
                if (own != null)
                {
                    d.Higher = own;
                }
                if (it.Typ == DateExToken.DateExItemTokenType.Day)
                {
                    d.Day = it.Value;
                }
                else if (it.Typ == DateExToken.DateExItemTokenType.DayOfWeek)
                {
                    d.DayOfWeek = it.Value;
                }
                else if (it.Typ == DateExToken.DateExItemTokenType.Hour)
                {
                    d.Hour = it.Value;
                    if (((i + 1) < its.Count) && its[i + 1].Typ == DateExToken.DateExItemTokenType.Minute && !its[i + 1].IsValueRelate)
                    {
                        d.Minute = its[i + 1].Value;
                        i++;
                    }
                }
                else if (it.Typ == DateExToken.DateExItemTokenType.Minute)
                {
                    d.Minute = it.Value;
                }
                else if (it.Typ == DateExToken.DateExItemTokenType.Month)
                {
                    d.Month = it.Value;
                }
                else if (it.Typ == DateExToken.DateExItemTokenType.Quartal)
                {
                    d.Quartal = it.Value;
                }
                else if (it.Typ == DateExToken.DateExItemTokenType.Week)
                {
                    d.Week = it.Value;
                }
                else if (it.Typ == DateExToken.DateExItemTokenType.Year)
                {
                    d.Year = it.Value;
                }
                else
                {
                    continue;
                }
                res.Add(new Pullenti.Ner.ReferentToken(d, it.BeginToken, it.EndToken));
                own    = d;
                it.Src = d;
            }
            if (res.Count > 0)
            {
                res[0].Tag = own;
            }
            return(res);
        }
Exemple #2
0
        static List <DateExToken.DateExItemToken> _createDateEx(Pullenti.Ner.Date.DateReferent dr)
        {
            List <DateExToken.DateExItemToken> res = new List <DateExToken.DateExItemToken>();

            for (; dr != null; dr = dr.Higher)
            {
                int n;
                foreach (Pullenti.Ner.Slot s in dr.Slots)
                {
                    DateExToken.DateExItemToken it = new DateExToken.DateExItemToken(null, null)
                    {
                        Typ = DateExToken.DateExItemTokenType.Undefined
                    };
                    if (dr.GetStringValue(Pullenti.Ner.Date.DateReferent.ATTR_ISRELATIVE) == "true")
                    {
                        it.IsValueRelate = true;
                    }
                    if (s.TypeName == Pullenti.Ner.Date.DateReferent.ATTR_YEAR)
                    {
                        it.Typ = DateExToken.DateExItemTokenType.Year;
                        if (int.TryParse(s.Value as string, out n))
                        {
                            it.Value = n;
                        }
                    }
                    else if (s.TypeName == Pullenti.Ner.Date.DateReferent.ATTR_QUARTAL)
                    {
                        it.Typ = DateExToken.DateExItemTokenType.Quartal;
                        if (int.TryParse(s.Value as string, out n))
                        {
                            it.Value = n;
                        }
                    }
                    else if (s.TypeName == Pullenti.Ner.Date.DateReferent.ATTR_MONTH)
                    {
                        it.Typ = DateExToken.DateExItemTokenType.Month;
                        if (int.TryParse(s.Value as string, out n))
                        {
                            it.Value = n;
                        }
                    }
                    else if (s.TypeName == Pullenti.Ner.Date.DateReferent.ATTR_WEEK)
                    {
                        it.Typ = DateExToken.DateExItemTokenType.Week;
                        if (int.TryParse(s.Value as string, out n))
                        {
                            it.Value = n;
                        }
                    }
                    else if (s.TypeName == Pullenti.Ner.Date.DateReferent.ATTR_DAYOFWEEK)
                    {
                        it.Typ = DateExToken.DateExItemTokenType.DayOfWeek;
                        if (int.TryParse(s.Value as string, out n))
                        {
                            it.Value = n;
                        }
                    }
                    else if (s.TypeName == Pullenti.Ner.Date.DateReferent.ATTR_DAY)
                    {
                        it.Typ = DateExToken.DateExItemTokenType.Day;
                        if (int.TryParse(s.Value as string, out n))
                        {
                            it.Value = n;
                        }
                    }
                    else if (s.TypeName == Pullenti.Ner.Date.DateReferent.ATTR_HOUR)
                    {
                        it.Typ = DateExToken.DateExItemTokenType.Hour;
                        if (int.TryParse(s.Value as string, out n))
                        {
                            it.Value = n;
                        }
                    }
                    else if (s.TypeName == Pullenti.Ner.Date.DateReferent.ATTR_MINUTE)
                    {
                        it.Typ = DateExToken.DateExItemTokenType.Minute;
                        if (int.TryParse(s.Value as string, out n))
                        {
                            it.Value = n;
                        }
                    }
                    if (it.Typ != DateExToken.DateExItemTokenType.Undefined)
                    {
                        res.Insert(0, it);
                    }
                }
            }
            res.Sort();
            return(res);
        }