using RestSharp;
using System;
using System.IO;
using uri_import.FClasses;
namespace uri_import.AClasses
{
public static class RequestLogger
{
private static string RequestsLogPath = Path.Combine(FileActions.ExecFile, "RequestsLog.txt");
///
/// Logs response to RequestsLog.txt file.
///
public static void LogResponse(RestRequest request, RestResponse response, RestClient restClient)
{
StreamWriter writer = new StreamWriter(RequestsLogPath, true);
writer.WriteLine(DateTime.Now.ToString());
writer.WriteLine("Response");
writer.WriteLine("\tStatus code: " + response.StatusCode);
writer.WriteLine("\tContent: " + response.Content);
writer.WriteLine("-----------------------------------------");
writer.WriteLine();
writer.Flush();
writer.Close();
}
///
/// Logs request to RequestsLog.txt file.
///
public static void LogRequest(RestRequest request, RestClient restClient)
{
StreamWriter writer = new StreamWriter(RequestsLogPath, true);
writer.WriteLine(DateTime.Now.ToString());
writer.WriteLine("Request");
writer.WriteLine("\tMethod: " + request.Method);
string parameters = "";
string body = "";
foreach (var parameter in request.Parameters)
{
if (parameter.Type == ParameterType.QueryString)
{
parameters += String.IsNullOrEmpty(parameters) ? "?" : "&";
parameters += parameter.Name + "=" + parameter.Value;
}
if (parameter.Type == ParameterType.RequestBody)
body += parameter.Value;
}
writer.WriteLine("\tURL: " + restClient.BuildUri(request) + parameters);
if (!String.IsNullOrEmpty(body))
writer.WriteLine("\tBody: " + body);
writer.WriteLine("-----------------------------------------");
writer.WriteLine();
writer.Flush();
writer.Close();
}
}
}