private static void InputChanged(object sender, DependencyPropertyChangedEventArgs e)
{
var m = (sender) as Model;
m.Triggers.Clear();
TextToScheduleResults results = null;
TextToScheduleFactory parserFactory = new TextToScheduleFactory();
var englishParser = parserFactory.CreateEnglishParser();
var germanParser = parserFactory.CreateGermanParser();
ITextToSchedule textToSchedule = new MultiTextToSchedule(
parserFactory.CreateEnglishParser(),
parserFactory.CreateGermanParser(),
parserFactory.CreateCronParser());
string text = m.Input;
results = textToSchedule.Parse(text, m.TimeZone);
if (results != null)
{
List<DateTimeOffset> list = new List<DateTimeOffset>();
foreach (var groups in results.RegisterGroups)
{
var trigger = (IOperableTrigger)groups.TriggerBuilder.Build();
var dates = TriggerUtils.ComputeFireTimes(trigger, groups.Calendar, MaxResultsToReturn);
foreach (var d in dates)
{
list.Add(TimeZoneUtil.ConvertTime(d, m.TimeZone));
}
}
//sort the list
list.Sort();
foreach (var item in list.Take(MaxResultsToReturn))
{
m.Triggers.Add(item.ToString("ddd, MM/dd/yyyy hh:mm:ss tt (zzz)"));
}
}
}