IConnectorLtiProvider.cs•3.06 kB
using Api.DigitalPages.Interfaces.Models;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Api.DigitalPages.Interfaces.Connector
{
public interface IConnectorLtiProvider :
IConnectorContextRequired,
IConnectorOAuth1,
IConnectorOAuth2
{
/// <summary>
/// Conectores do learning aceitos para integração.
/// <see cref="IConnectorLearning"/>
/// </summary>
List<Guid> AuthorizedLearningConnectorsIntegration { get; set; }
/// <summary>
/// Extrai informações referente ao conteúdo solicitado.
/// </summary>
/// <param name="json"></param>
/// <param name="baseRequest"></param>
/// <returns></returns>
Task<ILtiLaunchRequest> From(string json, ILtiLaunchRequest baseRequest);
/// <summary>
/// Notifica O LMS solicitante a evolução do usuário.
/// </summary>
/// <param name="course"></param>
/// <param name="request"></param>
/// <returns></returns>
Task<bool> NotifyUpdated(ICourse course, ILtiLaunchRequest request);
/// <summary>
/// Notifica O LMS solicitante a evolução do usuário.
/// </summary>
/// <param name="activity"></param>
/// <param name="request"></param>
/// <returns></returns>
Task<bool> NotifyUpdated(ICourseActivity activity, ILtiLaunchRequest request);
}
public interface ILtiLaunchRequest
{
/// <summary>
/// Id do usuário solicitante.
/// </summary>
public string UserUid { get; set; }
/// <summary>
/// Tipo de conteúdo solicitado.
/// </summary>
public ObjectType ObjectType { get; set; }
/// <summary>
/// Uid do conteúdo solicitado.
/// </summary>
public Guid ObjectUid { get; set; }
/// <summary>
/// Endpoint para recebimento de resultados ou notas
/// </summary>
public string OutcomeServiceUrl { get; set; }
/// <summary>
/// Identificador único para o contexto do curso ou seção dentro do LMS
/// </summary>
public string ContextUid { get; set; }
/// <summary>
/// Um rótulo legível para o contexto (como o nome do curso ou seção).
/// </summary>
public string ContextLabel { get; set; }
/// <summary>
/// O título completo do contexto (por exemplo, o nome completo do curso ou disciplina).
/// </summary>
public string ContextTitle { get; set; }
/// <summary>
/// Define o papel do usuário no contexto, como Instructor (Instrutor) ou Student (Aluno).
/// </summary>
public List<string> Roles { get; set; }
/// <summary>
/// Um dicionário de parâmetros customizados que podem ser definidos pelo LMS ou pela ferramenta.
/// </summary>
public Dictionary<string, string> CustomParameters { get; set; }
}
}