Plen.Assign#
The Plen.Assign package turns a pool of workers with skills and a list of task requirements into the Slot list that Project.SuggestAssignments takes. The core package never sees skills. They exist only in this package.
The package depends on Plen.Core only. It's pure .NET, with no I/O and no JSON support. Every public type is in the Plen.Assign namespace. Project, Id and Slot come from the Plen namespace.
using Plen;
using Plen.Assign;
The entry point is the static method SkillLayer.Slots. Pool, Worker and Skill describe who can be assigned. Requirement, with its SkillMatch and SkillOp, describes what each task needs. SkillOp is an enum; the other types are sealed classes with value equality and a DeepClone() method.
The package has no exception types of its own. SkillLayer.Slots throws InputException and ProjectException, so one catch (PlenException) covers it along with the rest of the API.
For a walk-through, see Skills and requirements.
- PoolThe workers that may be assigned, in preference order
- RequirementWhat a task needs from the pool, as a number of slots and the skill matches each one requires
- SkillOne skill of a worker, with a 0/1 or graded value that requirements compare against
- WorkerA resource in a worker pool, with the skill values it has