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); }