我实际上使用的是Telerik kendo调度程序,而不是iCal文件,但是我需要以不同于调度程序议程列表的方式显示事件列表,并且调度对象和一个物体之间的映射类似,所以我我想我会使用DDay。
创建一个iCalendar对象并在调度表中加载我有代码可以在哪里构建事件列表并过滤掉从系列中删除的事件。我遇到问题的地方是系列中修改了一个事件。
当创建系列中的已修改事件时,数据存储在数据库中的方式会创建新记录,并使用原始记录的事件ID填充 RecurrenceId 字段。
看起来很简单,只需匹配id字段,对吗?问题是DDay中的 RecurrenceId iCal是IDateTime而不是int。我不知道如何处理它因为我们有很多事件同时开始/结束所以抓住原始的开始/结束似乎不可行。除非我误解了实际发生的事情。
如果它是事件中主事件的唯一修改事件,我确实找到了一种处理修改事件的复杂方法。但是,此方法不会考虑可能包含主事件和主数据库的多个修改事件的事件序列。
我想一个可能的解决方案是从调度程序表构建2个列表,其中只有一个列表,它只修改了重复事件和其他主事件。
然后,当我处理事件时,我会对每个事件进行检查,以查看它是否存在于修改后的事件列表中。如果是,则相应地更新事件。然而,这似乎是一个非常kludgy解决方案。即使它会解决所有修改过的场景。我想我在库中遗漏了一些可以解决这个问题的东西。
一如既往,我们将不胜感激为此问题提供任何帮助。
谢谢, 克里斯
答案 0 :(得分:0)
似乎我的测试集数据搞砸了。它的工作方式是主事件将有一个重现异常。因此,如果异常在该范围内进行调用以获取事件,则将跳过/过滤主记录,并且系列的修改事件将保留。此外,如果删除了事件范围中的事件,则事件不会出现在事件范围中。
我的测试数据集中存在一些错误,使其看起来需要额外的过滤步骤。