public static DispatcherData Run(DispatcherData data) { var beforePipe = dicPipeLines.Values.Where(x => x.PipeType == PipeType.Before); var afterPipe = dicPipeLines.Values.Where(x => x.PipeType == PipeType.After); foreach (IPipeLine pipeLine in beforePipe) { ResponseBase resp = pipeLine.Execute(data.Request); if (resp.IsSuccess) { continue; } data.Response = resp; return(data); } Execute(data); foreach (IPipeLine pipeLine in afterPipe) { ResponseBase resp = pipeLine.Execute(data.Request); if (resp.IsSuccess) { continue; } data.Response = resp; return(data); } return(data); }
private static RequestBase GetRequestFromMessage(DispatcherData data) { var assembly = Assembly.Load(data.AssemblyName); Type requestType = assembly.GetTypes().FirstOrDefault(x => x.FullName == data.ClassName); var requestObj = JsonConvert.DeserializeObject(data.Message, requestType); return((RequestBase)requestObj); }
public static void Execute(DispatcherData data) { string applicationdDirectory = _configuration.GetValue <string>("ApplicationDirectory"); var assemly = Assembly.Load(data.AssemblyName); Type requestType = assemly.GetTypes().FirstOrDefault(x => x.FullName == data.ClassName); AssemblyData assemblyData = ReflectionHelper.GetServerAssemblyData(requestType, applicationdDirectory); data.Response = ExecuteAction(assemblyData.Type, data.Request.MethodName, new object[1] { data.Request }); }
public static ResponseBase Dispatch(DispatcherData data) { ResponseBase returnData = null; try { if (data == null || string.IsNullOrEmpty(data.Message)) { return(returnData = new ResponseBase(null, false, "Request can not be empty!")); } data.Request = GetRequestFromMessage(data); var response = PipeManager.Run(data); returnData = response.Response; } catch (Exception exception) { returnData = new ResponseBase(null, false, exception.ToString()); } return(returnData); }