public void RegisterProcessUnit(string Context, IPipedProcessUnit unit) { OperatorAuthentication.AuthedAction(Context, () => { FileInfo fi = new FileInfo(Assembly.GetAssembly(unit.GetType()).FullName); processUnits.Add(MappedType.CreateFrom(unit)); Trace.WriteLine(Language.Query("LWMS.Pipeline.Register.R", "Registered R Unit: {0}", unit.GetType().ToString())); }, false, true, PermissionID.RTRegisterRProcessUnit, PermissionID.RuntimeAll); }
public void Init(params MappedType[] units) { if (units.Length == 0) { FileInfo fi = new FileInfo(Assembly.GetAssembly(typeof(DefaultProcessUnit)).FullName); _processUnits.Add(MappedType.CreateFrom(new DefaultProcessUnit())); } else { _processUnits = new List <MappedType>(units); } }
public PipelineData Process(PipelineData Input) { { HttpListenerRoutedContext context = Input.PrimaryData as HttpListenerRoutedContext; if (requests is null) { requests = ApplicationConfiguration.Current.GetValueArray("RoutedRequests"); } if (RouteTargets == null) { var targets = ApplicationConfiguration.Current.GetValueArray("RouteTargets"); RouteTargets = new List <MappedType>(); //Initialize the targets. foreach (var item in targets) { var parted = item.Split(','); FileInfo fi = new(parted[0]); var asm = DomainManager.LoadFromFile(context.PipelineAuth, fi.FullName); var t = asm.GetType(parted[1]); MappedType mappedType = MappedType.CreateFrom(t); RouteTargets.Add(mappedType); } } else if (RouteTargets.Count is 0) { var targets = ApplicationConfiguration.Current.GetValueArray("RouteTargets"); foreach (var item in targets) { var parted = item.Split(','); FileInfo fi = new(parted[0]); var asm = DomainManager.LoadFromFile(context.PipelineAuth, fi.FullName); var t = asm.GetType(parted[1]); MappedType mappedType = MappedType.CreateFrom(t); RouteTargets.Add(mappedType); } } var path0 = context.Request.Url.LocalPath.Substring(1); //Dispose the first '/' if (path0 is not "") //Ignore when the path is empty to prevent potential problems when performing matching. { for (int i = 0; i < requests.Length; i++) { if (path0.ToUpper().StartsWith(requests[i].ToUpper()))//Ignore case { (Input.SecondaryData as HttpPipelineArguments).isHandled = (RouteTargets[i].TargetObject as IHttpEventHandler).Handle(context, requests[i]); return(Input); } } } } return(Input); }
/// <summary> /// Register and initialize a specified module. /// </summary> /// <param name="item"></param> /// <returns></returns> public static bool Register(string AuthContext, string item) { bool __ = false; try { OperatorAuthentication.AuthedAction(AuthContext, () => { try { var asm = Assembly.LoadFrom(item); FileInfo fi = new(item); var TPS = asm.GetTypes(); foreach (var TP in TPS) { if (typeof(IManageCommand).IsAssignableFrom(TP)) { var MC = (IManageCommand)Activator.CreateInstance(TP); Trace.WriteLine(Language.Query("LWMS.Commands.Found", "Found Manage Command:{0},{1}", MC.CommandName, TP.ToString())); ManageCommands.Add(MC.CommandName, MappedType.CreateFrom(MC)); var alias = MC.Alias; foreach (var MCA in alias) { ManageCommandAliases.Add(MCA, MappedType.CreateFrom(MC)); } } } __ = true; } catch (Exception) { Trace.Write(Language.Query("LWMS.Commands.Error.LoadModule", "Cannot load management module: {0}", item)); } }, false, true, PermissionID.RegisterCmdModule, PermissionID.CmdModuleAll); } catch (Exception) { Trace.Write(Language.Query("LWMS.Commands.Error.LoadModule", "Cannot load management module: {0}", item)); } return(__); }