И так создал следующие. Пока меня устраивает. Задача надо было создать планировщик задач для слежения за маршрутом транспорта который дает возможность пользователю настроит параметры слежения.
public class Task
{
public Guid Id { get; set; }
public string Name { get; set; }
public List<TaskTrigger> Triggers { get; set; }
public List<TaskAction> Actions { get; set; }
public TaskCondition Condition { get; set; }
public string Description { get; set; }
}
public class TaskTrigger
{
public Guid Id { get; set; }
public int Repeat { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
}
public class TaskTriggerEvent : TaskTrigger
{
public TaskTriggerEventItem Event { get; set; }
public Transport Transport { get; set; }
}
public class TaskTriggerEventItem
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
public class TaskTriggerShedule : TaskTrigger
{
public int StartupType { get; set; }
}
public class TaskAction
{
public Guid Id { get; set; }
}
public class TaskActionSendEmail : TaskAction
{
public string Email { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
public class TaskActionSendSMS
{
public string Phone { get; set; }
public string Content { get; set; }
}
public class TaskCondition
{
public Guid Id { get; set; }
public bool CheckDeviation { get; set; }
public int Deviation { get; set; }
public bool CheckStartCoordinate { get; set; }
public bool CheckEndCoordinate { get; set; }
public DbGeography StarCoordinate { get; set; }
public DbGeography EndCoordinate { get; set; }
public bool CheckSpeed { get; set; }
public double Speed { get; set; }
}