コード例 #1
0
 public override bool DoesMatchInput(string input)
 {
     string[] splitBySeperator = input.Split(separator: Separator);
     if (splitBySeperator != null && splitBySeperator.Length != 2)
     {
         return(false);
     }
     return
         (OtherCalculations.Any(predicate: m => m.DoesMatchInput(input: splitBySeperator.First())) &&
          OtherCalculations.Any(predicate: m => m.DoesMatchInput(input: splitBySeperator.Last())));
 }
コード例 #2
0
        public override DateTimeRange CalculateFromInput(string input = "")
        {
            string[] splitBySeperator = input
                                        .Split(separator: Separator)
                                        .Take(count: 2)
                                        .ToArray();

            string startInput = splitBySeperator.First();
            string endInput   = splitBySeperator.Last();

            DateTimeRange startDateTimeRange =
                OtherCalculations
                .FirstOrDefault(predicate: m => m.DoesMatchInput(input: startInput))
                ?.CalculateFromInput(input: startInput) ?? DateTimeRange.Empty;

            DateTimeRange endDateTimeRange =
                OtherCalculations
                .FirstOrDefault(predicate: m => m.DoesMatchInput(input: endInput))
                ?.CalculateFromInput(input: endInput) ?? DateTimeRange.Empty;

            return(new DateTimeRange(
                       start: startDateTimeRange.Start,
                       end: endDateTimeRange.End));
        }