/// <summary> /// Processes a request with associated data /// </summary> /// <param name="request">The request to be processed</param> /// <param name="data"> the associated data</param> /// <returns> /// The actual response after processing request /// </returns> public Response Request(Request request, object data) { if (!Registrar.ContainsKey(request.GetType())) { return(null); } var action = Registrar[request.GetType()]; return(InvokeRequest(action, request, data)); }