Exemplo n.º 1
0
        public ENCasual(Config config) : base(config)
        {
            config        = config ?? new Config();
            config.Strict = false;

            Parsers.InsertRange(0, new List <Parser> {
                new ENCasualDateParser(config),
                new ENTimeAgoFormatParser(config),
                new ENTimeLaterFormatParser(config),
                new ENDeadlineFormatParser(config),
                new ENMonthNameLittleEndianParser(config),
                new ENMonthNameMiddleEndianParser(config),
                new ENMonthNameParser(config),
                new ENSlashDateFormatParser(config),
                new ENSlashDateFormatStartWithYearParser(config),
                new ENSlashMonthFormatParser(config),
                new ENCasualMonthParser(config),
                new ENNumericYearParser(config)//,
                //new ENTimeExpressionParser(config)
            });
            //add direction based parsers which could be either backward or forward (or default if nothing is specified by caller)
            var directionBasedParsers = new List <Parser>();

            if (config.Direction == DateTimeDirection.Backward)
            {
                directionBasedParsers.Add(new ENBackwardDeadlineFormatParser(config));
            }
            else if (config.Direction == DateTimeDirection.Forward)
            {
                directionBasedParsers.Add(new ENForwardDeadlineFormatParser(config));
            }
            else
            {
                var backwardConfig = config.Clone() as Config;
                backwardConfig.Direction = DateTimeDirection.Backward;
                directionBasedParsers.Add(new ENBackwardDeadlineFormatParser(backwardConfig));

                var forwardConfig = config.Clone() as Config;
                forwardConfig.Direction = DateTimeDirection.Forward;
                directionBasedParsers.Add(new ENForwardDeadlineFormatParser(forwardConfig));
            }
            Parsers.InsertRange(3, directionBasedParsers);

            Refiners.AddRange(new List <Refiner>
            {
                new ENMergeDateTimeRefiner()
            });
        }
Exemplo n.º 2
0
        public ItemDefinition AppendToDefinition(ItemDefinition definition)
        {
            definition.Title       = Title;
            definition.TemplateKey = TemplateKey;

            foreach (var c in Containables)
            {
                definition.Add(c);
            }

            foreach (var dv in ContentModifiers)
            {
                definition.ContentTransformers.Add(dv);
            }

            foreach (var refiner in Refiners.OrderBy(r => r.RefinementOrder))
            {
                refiner.Refine(definition, new[] { definition });
            }

            return(definition);
        }
Exemplo n.º 3
0
        public ContentRegistration Add(ISortableRefiner refiner)
        {
            Refiners.Add(refiner);

            return(this);
        }