NP.Lti13Platform.AssignmentGradeServices 1.0.0-preview002

This is a prerelease version of NP.Lti13Platform.AssignmentGradeServices.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package NP.Lti13Platform.AssignmentGradeServices --version 1.0.0-preview002
                    
NuGet\Install-Package NP.Lti13Platform.AssignmentGradeServices -Version 1.0.0-preview002
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NP.Lti13Platform.AssignmentGradeServices" Version="1.0.0-preview002" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NP.Lti13Platform.AssignmentGradeServices" Version="1.0.0-preview002" />
                    
Directory.Packages.props
<PackageReference Include="NP.Lti13Platform.AssignmentGradeServices" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NP.Lti13Platform.AssignmentGradeServices --version 1.0.0-preview002
                    
#r "nuget: NP.Lti13Platform.AssignmentGradeServices, 1.0.0-preview002"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NP.Lti13Platform.AssignmentGradeServices@1.0.0-preview002
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NP.Lti13Platform.AssignmentGradeServices&version=1.0.0-preview002&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=NP.Lti13Platform.AssignmentGradeServices&version=1.0.0-preview002&prerelease
                    
Install as a Cake Tool

NP.Lti13Platform.AssignmentGradeServices

The IMS Assignment and Grade Services spec defines a way that tools can platforms can communicate grades back and forth. This project provides an implementation of the spec.

Features

  • Gets,creates, updates, and deletes line items
  • Gets and creates grades

Getting Started

  1. Add the nuget package to your project:

  2. Add an implementation of the IAssignmentGradeDataService interface:

public class DataService: IAssignmentGradeDataService
{
    ...
}
  1. Add the required services.
builder.Services
    .AddLti13PlatformCore()
    .AddLti13PlatformAssignmentGradeServices()
    .AddDefaultAssignmentGradeService();

builder.Services.AddTransient<IAssignmentGradeDataService, DataService>();
  1. Setup the routing for the LTI 1.3 platform endpoints:
app.UseLti13PlatformAssignmentGradeServices();

IAssignmentGradeDataService

There is no default IAssignmentGradeDataService implementation to allow each project to store the data how they see fit.

The IAssignmentGradeDataService interface is used to manage the persistance of line items and grades.

All of the internal services are transient and therefore the data service may be added at any scope (Transient, Scoped, Singleton).

Defaults

Routing

Default routes are provided for all endpoints. Routes can be configured when calling UseLti13PlatformAssignmentGradeServices().

app.UseLti13PlatformAssignmentGradeServices(config => {
    config.LineItemsUrl = "/lti13/{deploymentId}/{contextId}/lineItems"; // {deploymentId} and {contextId} are required
    config.LineItemUrl = "/lti13/{deploymentId}/{contextId}/lineItems/{lineItemId}"; // {deploymentId}, {contextId}, and {lineItemId} are required
});

IAssignmentGradeService

The IAssignmentGradeService interface is used to get the config for the assignment and grade service. The config is used to tell the tools how to request the members of a context.

There is a default implementation of the IAssignmentGradeService interface that uses a configuration set up on app start. When calling the AddDefaultAssignmentGradeService method, the configuration can be setup at that time. A fallback to the current request scheme and host will be used if no ServiceEndpoint is configured. The Default implementation can be overridden by adding a new implementation of the INameRoleProvisioningService interface and not including the Default. This may be useful if the service URL is dynamic or needs to be determined at runtime.

builder.Services
    .AddLti13PlatformCore()
    .AddLti13PlatformAssignmentGradeServices()
    .AddDefaultAssignmentGradeService(x => { x.ServiceAddress = new Uri("https://<mysite>") });
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on NP.Lti13Platform.AssignmentGradeServices:

Package Downloads
NP.Lti13Platform

A platform implementation of the LTI 1.3 spec. Includes the Core, DeepLinking, Assignment and Grade Services, and Name and Role Provisioning Services specs.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-preview010 115 6/19/2025
1.0.0-preview009 109 6/19/2025
1.0.0-preview008 49 5/24/2025
1.0.0-preview007 136 4/21/2025
1.0.0-preview006 71 1/25/2025
1.0.0-preview005 63 12/26/2024
1.0.0-preview004 72 12/8/2024
1.0.0-preview003 62 11/2/2024
1.0.0-preview002 72 10/26/2024
1.0.0-preview001 58 10/26/2024
0.1.0-preview002 63 10/23/2024
0.1.0-preview001 59 10/23/2024
0.1.0-beta 75 10/23/2024