Esempio n. 1
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);
        }