A interface de plug-in para IReplaceCourseOfferingHandler é usada pelos Adaptadores do IPSIS para oferecer suporte à operação de substituição para as ofertas de curso.
A implementação da interface é D2L.IM.IPSIS.OrgUnits.CourseOfferings.Handlers.IReplaceCourseOfferingHandler.
As listas de configuração a seguir, para a interface ReplaceCourseOfferingHandler, são fornecidas com o produto. Elas são listadas junto com o ponto de extensão ao qual se destinam.
IPSIS, Modelo – Oferta de curso
- ReplaceCourseOfferingReadHandler (Ordem de classificação = 10)
- ReplaceCourseOfferingValidateHandler (Ordem de classificação = 20)
- ReplaceCourseOfferingDisallowParentChangesIfChildrenExistHandler (Ordem de classificação = 30)
- ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler (Ordem de classificação = 40)
- ReplaceCourseOfferingCreateLMSHandler (Ordem de classificação = 50)
- ReplaceCourseOfferingCreateIMHandler (Ordem de classificação = 60)
- ReplaceCourseOfferingSaveLMSHandler (Ordem de classificação = 70)
- ReplaceCourseOfferingSaveIMHandler (Ordem de classificação = 80)
ReplaceCourseOfferingCopyCourseHandler
O ReplaceCourseOfferingCopyCourseHandler configura o sistema para copiar automaticamente o conteúdo de um curso de origem em uma oferta de curso recém-criada por meio da plataforma IPSIS.
Implementação
D2l.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingCopyCourseHandler.
Comportamento esperado
O manipulador executa as seguintes tarefas procurando a unidade organizacional da qual copiar o conteúdo:
- Se a cópia implícita do curso for ativada por meio da IU, ele tenta encontrar a unidade organizacional de onde fazer a cópia de um modelo principal ou de uma oferta de curso terciária que possua um código de OrgUnit correspondente ao código de OrgUnit modelo.
- Se for usada a cópia explícita do curso, ele procura os campos de extensão "CopyCourseSourceExternalId", "CopyCourseParent", "CoupCourseSourceOrgUnitId" ou "CopyCourseSourceOrgUnitCode".
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Se você configurar manualmente a lista ReplaceCourseOfferingHandler, coloque esse manipulador por último.
ReplaceCourseOfferingReadHandler
O ReplaceCourseOfferingReadHandler lê todas as informações relacionadas à oferta de curso existente no Brightspace ou nas tabelas IM do banco de dados a ser usado em outros manipuladores.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingReadHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Tenta ler informações sobre a oferta de curso das tabelas IM.
- Se encontrado, tentará ler qualquer mapeamento no Brightspace para a oferta de curso.
- Se encontrado, tentará ler sobre a oferta de curso no Brightspace.
- Verifica se algum dos principais (Semestre, Modelo ou Departamento) foi especificado na solicitação.
- Se especificado, o manipulador tentará recuperar mapeamentos e detalhes do OrgUnit para cada principal especificado, colocando-os em request.ParentOrgUnits.
- Se um Id do SIS principal mapear para vários OrgUnits da D2L, apenas o primeiro Semestre ou Modelo será usado para cada Id do SIS.
- Se um principal foi especificado, mas não existe no banco de dados, o DataProvider subjacente lançará um OrgUnitMappingNotFoundException, que é capturado e registrado.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Um manipulador Read deve ocorrer antes dos manipuladores Validate.
ReplaceCourseOfferingValidateHandler
Esse manipulador garante que um código e nome válidos sejam atribuídos à oferta de curso e que exista um modelo válido.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingValidateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Verifica se um código e um nome foram especificados para a solicitação. Esses valores devem ser strings com um comprimento maior que 0.
- Se o código ou o nome forem nulos ou vazios, o manipulador lançará um ArgumentNullException e todo o processamento do manipulador será interrompido.
- Pelo menos um modelo principal deve estar presente em request.ParentOrgUnits. Se nenhum modelo principal for encontrado, um ParentNotFoundException será lançado e todo o processamento do manipulador será interrompido.
- Se houver sucesso em tudo, o processamento continuará para o próximo manipulador (Return True).
ReplaceCourseOfferingDisallowParentChangesIfChildrenExistHandler
Esse manipulador pode ser usado para evitar excluir ou trocar um modelo principal acrescentado pelo IPSIS em qualquer oferta que já tenha secundários. Na ausência desse manipulador, é possível atualizar os principais acrescentados pelo IPSIS livremente, o que pode alterar as informações de hierarquia dos antepassados e descendentes da oferta atual.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingParentDepartmentValidateHandler
Comportamento esperado
- Se a oferta já existir (substituir em vez de criar):
- Se for remover ou substituir um OrgUnit principal acrescentado pelo IPSIS, lance uma exceção para impedir que outros manipuladores sejam executados.
Observação: OrgUnits adicionados manualmente sempre serão removidos com ou sem esse manipulador
Notas sobre a configuração
- Esse manipulador deve ser configurado para executar após os manipuladores Validate.
- Esse manipulador deve ser configurado para ser executado antes dos manipuladores Create.
ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler
Esse manipulador atualiza o modelo de curso que é o principal da oferta, para que os principais do departamento sejam especificados na solicitação de oferta.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Lê os departamentos associados ao modelo que é o principal da atual oferta de curso.
- Se um departamento for especificado na oferta que não está atualmente atribuída como principal do modelo de curso, o manipulador o atualizará corretamente.
- Se houver sucesso em tudo, o processamento continuará para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
A qualquer momento após os manipuladores Read.
ReplaceCourseOfferingCreateLMSHandler
Esse manipulador cria ofertas de curso no Brightspace.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingCreateLMSHandler
Comportamento esperado
Esse manipulador só é executado se não houver nenhuma oferta de curso do Brightspace associada à solicitação nas tabelas IM e LMS. O manipulador realiza as seguintes tarefas:
- Cria a oferta de curso usando as informações transmitidas na solicitação (acionando a criação de logs de auditoria automática).
- Se o processo create for bem-sucedido, o manipulador configurará o ReplaceRequestStatus = EntityCreated e o processamento continua para o próximo manipulador.
- Se houver um erro, o manipulador configurará ReplaceRequestStatus = CreateFailed e retornará false.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Notas sobre a configuração
- Esse manipulador é colocado após quaisquer manipuladores Validate.
- O manipulador Create LMS deve ocorrer antes do manipulador Create IM.
ReplaceCourseOfferingCreateIMHandler
Esse manipulador cria a Entidade nas tabelas IM e um mapeamento se estiver definido.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingCreateIMHandler
Comportamento esperado
Esse manipulador só executa se não houver nenhuma Entidade correspondente nas tabelas IM. O manipulador realiza as seguintes tarefas:
- Cria a oferta de curso na Plataforma de IM.
- Cria a hierarquia de IM.
- Se houver um OrgUnit associado à solicitação, o manipulador criará o mapeamento de oferta de curso da Plataforma de IM para a oferta de curso do Brightspace.
- Se houver sucesso em tudo, o manipulador configurará ReplaceRequestStatus = EntityCreated.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Coloque esse manipulador depois de quaisquer manipuladores CreateLMS.
ReplaceCourseOfferingSaveLMSHandler
O ReplaceCourseOfferingSaveLMSHandler salva as alterações feitas na oferta de curso do Brightspace.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingSaveLMSHandler
Comportamento esperado
Esse manipulador só executa se houver alterações a serem salvas para a oferta de curso do Brightspace. O manipulador realiza as seguintes tarefas:
- Remove quaisquer departamentos da solicitação ParentOrgUnits (eles serão adicionados como principais do modelo principal da oferta)
- Atualiza a oferta de curso (acionando a criação de logs de auditoria automática).
- Se houver sucesso em tudo, se ReplaceRequestStatus != EntityCreated, o manipulador configurará ReplaceRequestStatus = EntityUpdated.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo de detalhes possível.
Nota sobre a configuração
Coloque esse manipulador depois de quaisquer manipuladores Create.
ReplaceCourseOfferingSaveIMHandler
O ReplaceCourseOfferingSaveIMHandler salva as alterações feitas na oferta de curso.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingSaveLMSHandler
Comportamento esperado
Esse manipulador só executa se houver alterações a serem salvas para a oferta de curso. O manipulador realiza as seguintes tarefas:
- Remove quaisquer departamentos da solicitação ParentOrgUnits (eles são adicionados como principais do modelo principal da oferta).
- Atualiza a oferta de curso (acionando a criação de logs de auditoria automática).
- Se houver sucesso em tudo, se ReplaceRequestStatus != EntityCreated, o manipulador configurará ReplaceRequestStatus = EntityUpdated.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Coloque esse manipulador depois de quaisquer manipuladores Create.
ReplaceCourseOfferingSaveIMHandler
O manipulador save salva todas as alterações feitas na Entidade de IM e nos mapeamentos. Isso inclui atualizar as informações da hierarquia e propagar as alterações a todos os antepassados e descendentes da oferta determinada.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingSaveIMHandler
Comportamento esperado
Esse manipulador só executa se houver alterações a serem salvas para a Entidade ou os Mapeamentos nas tabelas IM. O manipulador realiza as seguintes tarefas:
- Atualiza a Entidade de IM.
- Atualiza a Hierarquia de IM e atualiza as informações de relação de quaisquer principais/secundários afetados.
- Atualiza os mapeamentos da Entidade de IM.
- Se houver sucesso em tudo, configurará ReplaceRequestStatus = EntityUpdated.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Coloque esse manipulador depois de quaisquer manipuladores SaveLMS.
ReplaceCourseOfferingNameNoUpdateLMSHandler
O ReplaceCourseOfferingNameNoUpdateLMSHandler é usado quando uma organização não desejar que o nome da oferta de curso seja atualizado após a criação inicial. Esse manipulador é necessário se uma organização permitir que os usuários atualizem os nomes dos cursos no Brightspace.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingNameNoUpdateLMSHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que o nome não deve ser atualizado.
- Se houver sucesso em tudo, o processamento continuará para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador está previsto para executar após os manipuladores Read, mas antes dos manipuladores Create.
ReplaceCourseOfferingStatusNoUpdateLMSHandler
Esse manipulador é usado quando uma organização não deseja que o status seja atualizado após a criação inicial.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingStatusNoUpdateLMSHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que o status não deve ser atualizado.
- Se houver sucesso em tudo, o processamento continuará para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador está previsto para executar após os manipuladores read, mas antes de create.
ReplaceCourseOfferingDatesNoUpdateLMSHandler
O ReplaceCourseOfferingDatesNoUpdateLMSHandler é usado quando uma organização não deseja que as datas sejam atualizadas após a criação inicial.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingDatesNoUpdateLMSHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que as datas de início e final não devem ser atualizadas.
- Se houver sucesso em tudo, o processamento continuará para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador está previsto para executar após os manipuladores read, mas antes do manipulador create.
ReplaceCourseOfferingCodeNoUpdateLMSHandler
O ReplaceCourseOfferingCodeNoUpdateLMSHandler é usado quando uma organização não desejar que o código da oferta de curso seja atualizado após a criação inicial. Esse manipulador é necessário se uma instituição permitir que os usuários atualizem os códigos dos cursos no Brightspace.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingCodeNoUpdateLMSHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que o código não deve ser atualizado.
- Se houver sucesso em tudo, o processamento continuará para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador está previsto para executar após os manipuladores read, mas antes de create.
ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler
O ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler atualiza o modelo de curso que é o principal da oferta, para que os principais do departamento sejam especificados na solicitação de oferta.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler
Comportamento esperado
- Lê os departamentos (do Brightspace) associados ao modelo que é o principal da atual oferta de curso.
- Se um departamento for especificado na oferta que não está atualmente atribuída como principal do modelo de curso, atualize-o corretamente.
- Se houver sucesso em tudo, o processamento continuará para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador pode ser usado a qualquer momento após os manipuladores Read.
ReplaceCourseOfferingValidateLMSOrgUnitExistsHandler
Esse manipulador verifica se a unidade organizacional à qual a solicitação corresponde foi excluída no Brightspace.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingValidateLMSOrgUnitExistsHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Tenta obter a unidade organizacional atual.
- Se a unidade organizacional não existir (a solicitação é um create ou a unidade organizacional foi excluída do Brightspace), tente obter o ExternalOrgUnitInfo para a solicitação.
- Se o ExternalOrgUnitInfo for válido, significa que não é um create e a unidade organizacional foi excluída do Brightspace. Um UpdateOrgUnitFailedException é lançado.
- Essa exceção faz o Serviço do LIS responder com invaliddata. Esse foi considerado o código de resposta mais adequado para a situação.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador é colocado após os manipuladores read, normalmente como um dos primeiros manipuladores validate.