首页 > 解决方案 > 如何在代码中使用调度程序约会

问题描述

我正在尝试使用DevExpress Scheduler 控件来安排任务,但当控件不可用时,我无法弄清楚如何在代码后面使用 apointments。

目前我正在使用此类从控件中序列化约会集合

public enum Type { Normal, Pattern, Occurrence, ChangedOccurrence, DeleteOccurrence }

public class TaskA
{
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
    public string Recurrence { get; set; } // recurrence info in xml format
    public Type Type { get; set; }
}

我可以使用以下代码重新构造RecurrenceInfo :

var recurrence = new RecurrenceInfo();
recurrence.FromXml(taskA.Recurrence);

但那又如何呢?例如,如何测试任务 A 是否应该在 10 分钟内开始,同时List<TaskA>手头有实例?

为什么有人会问这么难?有反复出现:

并且那些具有复杂的内部表示(没有记录实施细节)。例如,我需要检查Id以查找特定重复发生的已删除事件,并Index从日期中查找(我猜)一天Start

这里用json来说明:

"Scheduler": {
  "TaskA": [
    {
      "Start": "0001-01-01T07:00:00",
      "End": "0001-01-01T17:00:00",
      "Recurrence": "<RecurrenceInfo End=\"12/31/9999 23:59:59\" WeekDays=\"62\" Id=\"a02837e5-787b-4797-a44d-adbe8aef2fdf\" OccurrenceCount=\"1\" Range=\"2\" Type=\"1\" Version=\"2\" />",
      "Type": "Pattern"
    },
    {
      "Start": "2021-07-20T04:00:00",
      "End": "2021-07-20T06:00:00",
      "Recurrence": "<RecurrenceInfo Start=\"07/20/2021 04:00:00\" Id=\"8ca29855-e78a-41fd-b9af-9316b06ea0c4\" FirstDayOfWeek=\"0\" Version=\"2\" />",
      "Type": "Pattern"
    },
    {
      "Start": "2021-07-21T04:00:00",
      "End": "2021-07-21T06:00:00",
      "Recurrence": "<RecurrenceInfo Id=\"8ca29855-e78a-41fd-b9af-9316b06ea0c4\" Index=\"1\" />",
      "Type": "DeleteOccurrence"
    },
    {
      "Start": "2021-07-22T07:00:00",
      "End": "2021-07-22T17:00:00",
      "Recurrence": "<RecurrenceInfo Id=\"a02837e5-787b-4797-a44d-adbe8aef2fdf\" Index=\"527138\" />",
      "Type": "DeleteOccurrence"
    },
    {
      "Start": "2021-07-19T07:00:00",
      "End": "2021-07-19T14:00:00",
      "Recurrence": "<RecurrenceInfo Id=\"a02837e5-787b-4797-a44d-adbe8aef2fdf\" Index=\"527135\" />",
      "Type": "ChangedOccurrence"
    }
  ]

祝你好运,弄清楚 TaskA 什么时候开始今天。

我希望应该有一个助手类或一些标准程序来简化对给定日期/时间的测试,以针对预约集合进行测试。某种命中测试。但我找不到关于这个话题的任何东西。教程没有帮助。例如,在这一项中,约会是使用非常类似于我的TaskA数据结构到数据库中的存储,但省略了后端部分。

标签: c#devexpressschedulerrecurrenceappointment

解决方案


推荐阅读