SDS2.TaskScheduler.Plugins 1.0.0

dotnet add package SDS2.TaskScheduler.Plugins --version 1.0.0                
NuGet\Install-Package SDS2.TaskScheduler.Plugins -Version 1.0.0                
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="SDS2.TaskScheduler.Plugins" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SDS2.TaskScheduler.Plugins --version 1.0.0                
#r "nuget: SDS2.TaskScheduler.Plugins, 1.0.0"                
#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.
// Install SDS2.TaskScheduler.Plugins as a Cake Addin
#addin nuget:?package=SDS2.TaskScheduler.Plugins&version=1.0.0

// Install SDS2.TaskScheduler.Plugins as a Cake Tool
#tool nuget:?package=SDS2.TaskScheduler.Plugins&version=1.0.0                

Purpose

This package allows you to extend the SDS2 Task Scheduler.

How to Use

In order to add a new plugin into the SDS2 Task Scheduler you will need to create a new .net 6 or .net standard 2.1 library. Once you have the library you can start adding classes. Each class that extends the SDS2Task type will be a plugin that the Task Scheduler can load.

Example

[TaskName("My Plugin")] //The display name in the Task Scheduler
//Task Parameters will define the UI
[TaskParameter(TaskParameterType.Sds2Job, Sds2Job, IsRequired = true)]
[TaskParameter(TaskParameterType.FileLocation, FileLocation, "", true, "*.txt")]
public class MyPlugin: SDS2Task
{
    public const string Sds2Job = "SDS2 Job";
    public const string FileLocation = "File Location";

    private ILogger _logger;

    // Your constructor needs to take in an ILogger<YourClassType>
    public MyPlugin(ILogger<MyPlugin> logger) : base(typeof(MyPlugin))
    {
        _logger = logger;
    }

    // this is where all your plugin logic goes
    // the parameters dictionary will contain all user entered info from the UI
    public override Task ExecuteTask(Dictionary<string, TaskParameter> parameters)
    {
        _logger.LogInformation("Started My Plugin");

        try
        {
            // Plugin Code

            _logger.LogInformation("Completed My Plugin");
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
            _logger.LogError(ex, "Error in My Plugin");
            throw new JobExecutionException("Job failed to execute", ex);
        }

        return Task.CompletedTask;
    }

}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 167 10/6/2023

Init release