Workflow - Plugin - Developer Guide - Advanced Plugin

Published on Monday, 17 July 2017

In this Article I'm going to explain some more advanced features of Plugin creation.

Table of Contents

There is another Interface you can use to conditionally show a Plugin.

public class ProtirusPlugin : IConditionalPlugin

Implement the following method

ShowPlugin

This is from the Developer Guide.

public bool ShowPlugin()
{
    // To Update
    return (CurrentProjectHolder.GetInstance().Project.GetProjectType() == ProjectTypeEnum.maestro);
}

Gets a value indicating if the plugin should be displayed.

ProjectTypeEnum doesn't exist anymore but searching in the DLLs I found

namespace LogicBase.Tool.Common
public enum ProductType
{
    Maestro,
    Harmony,
    Metronome,
    Divo,
    Composer,
    Universal
}

Or

LogicBase.Tool
public static class ProjectType

string[] strArrays = new string[] { 
  ".Workflow", ".Decision", ".Integration", ".WebForms", 
  ".WinForms", ".Harmony", ".Maestro", ".Virtuoso", 
  ".Metronome", ".Monitoring", ".Composer", ".WinComposer" 
};

Pull in the following

using LogicBase.Core.Utilities;

Looking into this I couldn't find the matching Projects so I'm going to check the ProjectType another way.

ProjectTypeData ptd = CurrentProjectHolder.GetInstance().Project.ProjectSetupData.ProjectType;
Guid projectTypeId = ptd.ProjectTypeId;
string projectTypeName = ptd.ProjectTypeName;
Debug.Print(string.Format(@"ProjectTypeId {0} | ProjectTypeName {1}", projectTypeId, projectTypeName));
  • Decision Only LogicBase.Core.Models.Decision.DescisionProject, LogicBase.Core
  • Forms (Web) LogicBase.Core.Models.Dialog.FormDialogProject, LogicBase.Core
  • Monitoring LogicBase.Core.Models.Monitoring.MonitoringProject, LogicBase.Core
  • App LogicBase.Core.Models.Flexi.FlexiProject, LogicBase.Core
  • WorkflowProject LogicBase.Core.Models.Workflow.WorkflowProject, LogicBase.Core
  • Int Integration

Protirus