public static T Request <T>(string commandName, Server server, object arguments, out CommandResponse commandResponse, bool waitForResponse = true, ProxyRequestType requestType = ProxyRequestType.Xml, JsonSerializerSettings settings = null) { try { commandResponse = new CommandResponse(); if (requestType == ProxyRequestType.Json) { arguments = JsonConvert.SerializeObject(arguments); } if (!server.ModuleApiGateway.ExecuteModuleCommand(commandName, arguments, ref commandResponse, waitForResponse)) { throw new Exception("Proxy command execution failed."); } switch (requestType) { case ProxyRequestType.Xml: { var xmlToObject = (T)ObjectXml.XmlToObject(commandResponse.Response.ToString(), typeof(T)); return(xmlToObject); } case ProxyRequestType.Json: if (settings == null) { settings = Utilities.NoErrorJsonSettings; } Console.WriteLine("Respoinse = " + commandResponse.Response); return(JsonConvert.DeserializeObject <T>(commandResponse.Response.ToString())); default: throw new ArgumentOutOfRangeException(nameof(requestType), requestType, null); } } catch (Exception e) { Logger.Fatal(e); commandResponse = new CommandResponse { SerializedException = e.Message }; return(Activator.CreateInstance <T>()); } }
public virtual void Request(object arguments, int serverId, out CommandResponse commandResponse, ProxyRequestType requestType = ProxyRequestType.Xml) { ProxyManager.Request <object>(CommandName, new Server(serverId), arguments, out commandResponse, requestType: requestType); }
public virtual T Request <T>(object arguments, int serverId, out CommandResponse commandResponse, ProxyRequestType requestType = ProxyRequestType.Xml) { return(ProxyManager.Request <T>(CommandName, Server.GetServerFromCache(serverId), arguments, out commandResponse, requestType: requestType)); }
public virtual T Request <T>(object arguments, Server server, out CommandResponse commandResponse, ProxyRequestType requestType = ProxyRequestType.Xml) { return(ProxyManager.Request <T>(CommandName, server, arguments, out commandResponse, requestType: requestType)); }