Table of Contents

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
object
ControllerBase
SectionInstructorsController

Constructors

SectionInstructorsController(IMediator)

public SectionInstructorsController(IMediator mediator)

Parameters

mediator IMediator

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

command AssignInstructorToSectionsCommand
cancellationToken CancellationToken

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

groupId Guid
cancellationToken CancellationToken

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

instructorId Guid
cancellationToken CancellationToken

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

sectionId Guid
instructorId Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>