public Response Execute(Command commandToExecute)
{
if (commandToExecute == null)
{
throw new ArgumentNullException("commandToExecute", "commandToExecute cannot be null");
}
CommandInfo info = CommandInfoRepository.Instance.GetCommandInfo(commandToExecute.Name);
HttpWebRequest request = info.CreateWebRequest(this.remoteServerUri, commandToExecute);
request.Timeout = (int)this.serverResponseTimeout.TotalMilliseconds;
request.Accept = RequestAcceptHeader;
if (request.Method == CommandInfo.PostCommand)
{
string payload = commandToExecute.ParametersAsJsonString;
byte[] data = Encoding.UTF8.GetBytes(payload);
request.ContentType = ContentTypeHeader;
System.IO.Stream requestStream = request.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();
}
return CreateResponse(request);
}