/// <summary> /// Effettua la chiamata e restituisce il risultato /// </summary> /// <param name="webClient"></param> /// <param name="call"></param> /// <param name="parameters"></param> /// <returns></returns> private ExecutionInfo ExecuteCall(WebClient webClient, string call, IDictionary <string, string> parameters) { ExecutionInfo execInfo = new ExecutionInfo { Name = call }; DateTime startTime = DateTime.Now; CallInfo callInfo = CallInfo.Get(call); if (callInfo == null) { execInfo.ExecTime = TimeSpan.FromSeconds(0); execInfo.Failed = true; return(execInfo); } try { ParseParameters(callInfo, out string request, out string body, parameters); //TODO: in base alla configurazione, effettuare una GET o una POST string res; switch (callInfo.Method) { case "GET": res = webClient.DownloadString(request); break; default: res = webClient.UploadString(request, callInfo.Method, body); break; } } catch (Exception ex) { Console.WriteLine(ex.Message); execInfo.Failed = true; } //TODO: recuperare il risultato ed eventualmente aggiungere o modificare i parametri sul dictionary execInfo.ExecTime = DateTime.Now - startTime; return(execInfo); }