HypernovaDesktop Components · docs
Binarymission
WPF › Project Management › ScheduleInput

ScheduleInput

class.NET 6 / 8 / 10.NET Framework 4.8Binarymission.WPF.Controls.ProjectManagement

Everything ProjectScheduler.Schedule() needs to schedule a plan: the tasks, the links between them, the project's first day and the working calendar.

public sealed class ScheduleInput

Remarks

Every property is optional; an input with nothing set schedules an empty plan. The charts build one of these from their own Tasks, Links, ProjectStart, WorkingWeek and Holidays properties, so an application that schedules the same plan with the same settings gets the same dates the charts draw.

Examples

ProjectSchedule schedule = ProjectScheduler.Schedule(new ScheduleInput
{
    Tasks = tasks,
    Links = links,
    ProjectStart = new DateTime(2026, 11, 2),
    WorkingDays = new[] { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday },
    Holidays = new[] { new DateTime(2026, 12, 25), new DateTime(2026, 12, 28) }
});

See also

Members at a glance

Properties
HolidaysGets or sets the dates that are not worked, such as public holidays and shutdowns.
LinksGets or sets the links between the tasks.
ProjectStartGets or sets the first day work can happen: working-day index 0 of the plan's calendar.
TasksGets or sets the tasks of the plan.
WorkingDaysGets or sets the days of the week that are worked.

Properties

Holidays

public IEnumerable<DateTime> Holidays

Gets or sets the dates that are not worked, such as public holidays and shutdowns.

Value
Dates; only their date part is read. The default is null: none.

ProjectStart

public DateTime? ProjectStart

Gets or sets the first day work can happen: working-day index 0 of the plan's calendar.

Value
A date; only its date part is read, and a day that is not worked is moved to the next working day. The default is null, which takes the earliest planned ProjectTask.Start in the plan, then the earliest planned ProjectTask.Finish, and failing both, today's date.
Remarks

No task is scheduled before it, except one whose ProjectTask.Constraint is TaskConstraintKind.MustStartOn an earlier date.

Tasks

public IEnumerable<ProjectTask> Tasks

Gets or sets the tasks of the plan.

Value
The tasks, in outline order within each parent: subtasks are numbered and shown in the order they appear here. The default is null, an empty plan. Null entries and tasks with no ProjectTask.Id are skipped.

WorkingDays

public IEnumerable<DayOfWeek> WorkingDays

Gets or sets the days of the week that are worked.

Value
The default is null: Monday to Friday (WorkCalendar.DefaultWorkingDays). A list with no valid day in it is read as every day being worked.