This one is a complicated one but let’s just focus on BPMs right now.
If we could Create a Shared Code Location even if its for the time being Lambdas/Funcs/Actions and Reference it in the BPMs like-so Ice.ExecuteSharedFunction(“YourGistName”, [ Array of params ]); or even have the Compiler In-Line it. Support Shared LINQ Expressions.
Atleast we can Maintain it at 1 location instead of Duplicating it.
Stuff Like:
// Initialize Logger
string LogFile = "";
Action<string> log = (m) =>
{
if ( !string.IsNullOrEmpty(LogFile) ) {
Ice.Lib.writeFileLib.FileWriteLine(LogFile, string.Format("{0} - {1}", DateTime.Now, m));
}
else {
Ice.Diagnostics.Log.WriteEntry(m);
}
};
// Initialize Helpers
Func<string, string> CleanFileName = (fileName) => {
return System.IO.Path.GetInvalidFileNameChars().Aggregate(fileName, (current, c) => current.Replace(c.ToString(), string.Empty));
};