changes#
Edits to a live project. SchedulingChanges is the change set that Project.Apply commits, Project.Preview tries on a copy, and Project.Evaluate scores as a candidate. It holds one Changes<TAdd, TUpdate> per record kind (tasks, links, resources, assignments), each with Add, Update and Remove lists.
Adds take full records. Tasks, resources and assignments use the input classes from data, and links use LinkAdd, whose id is optional. Updates are partial: every field of TaskUpdate, LinkUpdate, ResourceUpdate and AssignmentUpdate except Id is a Patch<T>, which keeps, clears or sets the current value.
Project.Apply returns an ApplyReport with the applied and rejected operations, the side effects (cascading removals and generated ids) and the resync flag. Each rejection is a RejectedOperation. Every type here is in the Plen namespace.
- ApplyReportThe outcome of Project.Apply - applied and rejected operations, cascading side effects and the new revision
- AssignmentUpdateEdit to an existing assignment - only the fields you set change
- Changes<TAdd, TUpdate>The add, update and remove lists for one record kind in a SchedulingChanges set
- LinkAddA new link in a change set, with an optional id that Apply generates when it's null
- LinkUpdateA partial edit of one existing link in a live project
- Patch<T>A three-state field of an update record that keeps, clears or sets a value
- RejectedOperationOne operation of a change set that wasn't applied, with its path and the reason
- ResourceUpdateEdit to an existing resource - only the fields you set change
- SchedulingChangesOne set of edits to a live project, grouped into task, link, resource and assignment buckets, with an optional baseline check
- TaskUpdateEdit to an existing task - only the fields you set change