private static ActivityStatus ToStatus(ReadingUnitStatusVM vm) { return(vm switch { ReadingUnitStatusVM.Active => new CurrentlyActive(), ReadingUnitStatusVM.Planned => new Planned(), ReadingUnitStatusVM.Retired => new Retired(), _ => throw new NotSupportedException("The supplied status wasn't recognized") });
public Task <IActionResult> ChangeStatus([FromQuery] string programId, [FromQuery] string unitId, [FromQuery] ReadingUnitStatusVM newStatus) { return(WorkOnProgram(programId, async program => { var statusToChangeTo = ToStatus(newStatus); await program.ChangeStatus(unitId, statusToChangeTo); return Ok(); })); }