/// <summary>
    /// Creates an new instance of a request with the specified session.
    /// </summary>
    /// <param name="session">The session to use to issue the request.</param>
    public HyvesRequest(HyvesSession session)
    {
      if (session == null)
      {
        throw new ArgumentNullException("session");
      }

      this.session = session;
      parameters = new HyvesRequestParameterList();
    }
    private static HttpWebRequest CreateRequest(HyvesMethod method, bool useFancyLayout, int page, int resultsPerPage, HyvesSession session, HyvesRequestParameterList parameters)
    {
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(HyvesHttpUri);
      parameters.InitializeRequest(request, method, useFancyLayout, page, resultsPerPage, session);

      return request;
    }
 private static HttpWebRequest CreateRequest(HyvesMethod method, HyvesSession session, HyvesRequestParameterList parameters)
 {
   return CreateRequest(method, session, parameters);
 }
 private static HttpWebRequest CreateRequest(HyvesMethod method, bool useFancyLayout, HyvesSession session, HyvesRequestParameterList parameters)
 {
   return CreateRequest(method, useFancyLayout, session, parameters);
 }
    private static HttpWebRequest CreateRequest(string requestToken, string requestTokenSecret, HyvesExpirationType expirationType, HyvesSession session)
    {
      HyvesRequestParameterList parameters = new HyvesRequestParameterList();
      HyvesMethod method;

      if (string.IsNullOrEmpty(requestToken))
      {
        method = HyvesMethod.AuthRequesttoken;

        StringBuilder methodsStringBuilder = new StringBuilder();

        if (session.Methods.Contains(HyvesMethod.All))
        {
          Array hyvesMethodValues = Enum.GetValues(typeof(HyvesMethod));
          foreach (HyvesMethod hyvesMethod in hyvesMethodValues)
          {
            if (hyvesMethod != HyvesMethod.Unknown)
            {
              methodsStringBuilder.Append(string.Format("{0},", EnumHelper.GetDescription(hyvesMethod)));
            }
          }

          methodsStringBuilder=methodsStringBuilder.Replace(
            string.Format("{0},", EnumHelper.GetDescription(HyvesMethod.All)),
            string.Empty);
        }
        else
        {
          foreach (HyvesMethod hyvesMethod in session.Methods)
          {
            methodsStringBuilder.Append(string.Format("{0},", EnumHelper.GetDescription(hyvesMethod)));
          }
        }

        string methods = methodsStringBuilder.ToString();
        parameters["methods"] = methods.Substring(0, methods.Length - 1);

        parameters["expirationtype"] = EnumHelper.GetDescription(expirationType);
      }
      else
      {
        session.InitializeToken(requestToken, requestTokenSecret, DateTime.MinValue);
        method = HyvesMethod.AuthAccesstoken;
      }

      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(HyvesHttpUri);
      parameters.InitializeRequest(request, method, session);

      return request;
    }