Creating a reminder about task end date using a script

You can create a reminder about a task end date using the script below. After its execution, a user will receive a notification which specifies a task and the time remaining until its end. The task to remind of will be stored in a context variable.

Script with PublicAPI

Note
Documentation on PublicAPI is available here
Attention
The script below is relevant for ELMA up to 3.12.1 inclusive.

Namespace:

using EleWise.ELMA.Model.Entities.EntityReferences;

Script:

var r = ReferenceOnEntity.Create(context.Task); //create a link to a task        
var rem = PublicAPI.Portal.Objects.Common.Reminder.Create(); //create a reminder
rem.RefObject = r; //link to the task to remind of
rem.RemindDate = context.SendTime; //time to send the reminder at
rem.RemindTo = context.Interval; //time left until the task end, which is specified in the reminder
rem.PropertyName = "StartDate"; //for a task it may be StartDate or EndDate
rem.Save(); //save the reminder

Script without PublicAPI

For the script to work correctly, add assemblies:
EleWise.ELMA.Documents.Docflow
EleWise.ELMA.Projects
EleWise.ELMA.CRM

Namespaces:

using EleWise.ELMA.Common.Models;
using EleWise.ELMA.Model.Entities.EntityReferences;
using EleWise.ELMA.Tasks.Models;
using EleWise.ELMA.Model.Services;

Script:

var r = ReferenceOnEntity.Create(context.Task); //create a link to a task      
var rem = InterfaceActivator.Create<Reminder>(); //create a reminder
rem.RefObject = r; //link to the task to remind of
rem.RemindDate = context.SendTime; //time to send the reminder at
rem.RemindTo = context.Interval; //time left until the task end, which is specified in the reminder
rem.PropertyName = "StartDate"; //for a task it may be StartDate or EndDate
rem.Save(); //save the reminder