using System; namespace Flow.Launcher.Plugin { /// /// Allowed plugin languages /// public static class AllowedLanguage { /// /// Python /// public const string Python = "Python"; /// /// Python V2 /// public const string PythonV2 = "Python_v2"; /// /// C# /// public const string CSharp = "CSharp"; /// /// F# /// public const string FSharp = "FSharp"; /// /// Standard .exe /// public const string Executable = "Executable"; /// /// Standard .exe /// public const string ExecutableV2 = "Executable_V2"; /// /// TypeScript /// public const string TypeScript = "TypeScript"; /// /// TypeScript /// public const string TypeScriptV2 = "TypeScript_V2"; /// /// JavaScript /// public const string JavaScript = "JavaScript"; /// /// JavaScript /// public const string JavaScriptV2 = "JavaScript_V2"; /// /// Determines if this language is a .NET language /// /// /// public static bool IsDotNet(string language) { return language.Equals(CSharp, StringComparison.OrdinalIgnoreCase) || language.Equals(FSharp, StringComparison.OrdinalIgnoreCase); } /// /// Determines if this language is a Python language /// /// /// public static bool IsPython(string language) { return language.Equals(Python, StringComparison.OrdinalIgnoreCase) || language.Equals(PythonV2, StringComparison.OrdinalIgnoreCase); } /// /// Determines if this language is a Node.js language /// /// /// public static bool IsNodeJs(string language) { return language.Equals(TypeScript, StringComparison.OrdinalIgnoreCase) || language.Equals(TypeScriptV2, StringComparison.OrdinalIgnoreCase) || language.Equals(JavaScript, StringComparison.OrdinalIgnoreCase) || language.Equals(JavaScriptV2, StringComparison.OrdinalIgnoreCase); } /// /// Determines if this language is a executable language /// /// /// public static bool IsExecutable(string language) { return language.Equals(Executable, StringComparison.OrdinalIgnoreCase) || language.Equals(ExecutableV2, StringComparison.OrdinalIgnoreCase); } /// /// Determines if this language is supported /// /// /// public static bool IsAllowed(string language) { return IsDotNet(language) || IsPython(language) || IsNodeJs(language) || IsExecutable(language); } } }