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() }); }
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); }
public ContentRegistration Add(ISortableRefiner refiner) { Refiners.Add(refiner); return(this); }