Class SectionInstructorsController
- Namespace
- KadicErp.WebApi.Controllers.Academy
- Assembly
- KadicErp.WebApi.dll
US#65 — asignación N:N Sección↔Instructor. Recurso propio, distinto de SectionsController
(CRUD de la Sección, ya no toca instructor) y InstructorsController (perfil/catálogo del
instructor) — CA9/CA10 son instructor-céntricas, CA11 es group-céntrica, ninguna encaja
100% en los otros dos controladores.
[ApiController]
[Route("api/academies/section-instructors")]
[Authorize]
[RequireModule("ACADEMY")]
public class SectionInstructorsController : ControllerBase
- Inheritance
-
objectControllerBaseSectionInstructorsController
Constructors
SectionInstructorsController(IMediator)
public SectionInstructorsController(IMediator mediator)
Parameters
mediatorIMediator
Methods
Assign(AssignInstructorToSectionsCommand, CancellationToken)
CA9 — asigna un instructor a una o varias Secciones de un mismo Grupo (CA8).
[HttpPost("assign")]
[Authorize(Policy = "ACADEMY_SECTIONS_ASSIGN_INSTRUCTOR")]
public Task<IActionResult> Assign(AssignInstructorToSectionsCommand command, CancellationToken cancellationToken)
Parameters
commandAssignInstructorToSectionsCommandcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetGroupSections(Guid, CancellationToken)
CA8/CA11 — alimenta el Drawer de asignación, acotado a un Grupo.
[HttpGet("groups/{groupId:guid}")]
[Authorize(Policy = "ACADEMY_SECTIONS_VIEW")]
public Task<IActionResult> GetGroupSections(Guid groupId, CancellationToken cancellationToken)
Parameters
groupIdGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetInstructorSections(Guid, CancellationToken)
CA12/CA16 — alimenta el acápite "Secciones" de la ficha del instructor.
[HttpGet("instructors/{instructorId:guid}")]
[Authorize(Policy = "ACADEMY_INSTRUCTORS_VIEW")]
public Task<IActionResult> GetInstructorSections(Guid instructorId, CancellationToken cancellationToken)
Parameters
instructorIdGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>
Unassign(Guid, Guid, CancellationToken)
CA5/CA10 — nunca borra la fila, solo la marca inactiva.
[HttpDelete("{sectionId:guid}/instructors/{instructorId:guid}")]
[Authorize(Policy = "ACADEMY_SECTIONS_ASSIGN_INSTRUCTOR")]
public Task<IActionResult> Unassign(Guid sectionId, Guid instructorId, CancellationToken cancellationToken)
Parameters
sectionIdGuidinstructorIdGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>