public static IRestRequest AddFile(this IRestRequest request, FileParameter parameter)
 {
     return request.AddOrUpdateParameter(parameter);
 }
 /// <summary>
 /// Add a file parameter to a REST request
 /// </summary>
 /// <param name="request">The REST request to add this parameter to</param>
 /// <param name="name">Name of the parameter</param>
 /// <param name="input">File content</param>
 /// <param name="fileName">File name</param>
 /// <param name="contentType">Content type for the parameter (only applicable to a Body parameter)</param>
 /// <returns>The REST request to allow call chains</returns>
 public static IRestRequest AddFile(this IRestRequest request, string name, Stream input, string fileName, string contentType)
 {
     return request.AddOrUpdateParameter(FileParameter.Create(name, input, fileName, contentType));
 }
 /// <summary>
 /// Add a file parameter to a REST request
 /// </summary>
 /// <param name="request">The REST request to add this parameter to</param>
 /// <param name="name">Name of the parameter</param>
 /// <param name="bytes">File content</param>
 /// <param name="fileName">File name</param>
 /// <returns>The REST request to allow call chains</returns>
 public static IRestRequest AddFile(this IRestRequest request, string name, byte[] bytes, string fileName)
 {
     return request.AddOrUpdateParameter(FileParameter.Create(name, bytes, fileName));
 }
 /// <summary>
 /// Add or update a parameter to a REST request
 /// </summary>
 /// <param name="request">The REST request to add this parameter to</param>
 /// <param name="name">Name of the parameter</param>
 /// <param name="value">Value of the parameter</param>
 /// <param name="type">Type of the parameter</param>
 /// <param name="contentType">Content type for the parameter (only applicable to a Body parameter)</param>
 /// <returns>The REST request to allow call chains</returns>
 public static IRestRequest AddOrUpdateParameter(this IRestRequest request, string name, object value, ParameterType type, string contentType)
 {
     return request.AddOrUpdateParameter(new Parameter { Name = name, Value = value, Type = type, ContentType = contentType });
 }
        /// <summary>
        /// Add or update a parameter to a REST request
        /// </summary>
        /// <param name="request">The REST request to add this parameter to</param>
        /// <param name="name">Name of the parameter</param>
        /// <param name="value">Value of the parameter</param>
        /// <param name="type">Type of the parameter</param>
        /// <returns>The REST request to allow call chains</returns>
        public static IRestRequest AddOrUpdateParameter(this IRestRequest request, string name, object value, ParameterType type)
        {
            if (type == ParameterType.RequestBody && !string.IsNullOrEmpty(name))
            {
                return request.AddOrUpdateParameter(null, value, ParameterType.RequestBody, name);
            }

            return request.AddOrUpdateParameter(new Parameter { Name = name, Value = value, Type = type });
        }
 /// <summary>
 /// Add or updates a parameter to a REST request
 /// </summary>
 /// <param name="request">The REST request to add or update this parameter to</param>
 /// <param name="name">Name of the parameter</param>
 /// <param name="value">Value of the parameter</param>
 /// <returns>The REST request to allow call chains</returns>
 public static IRestRequest AddOrUpdateParameter(this IRestRequest request, string name, object value)
 {
     return request.AddOrUpdateParameter(new Parameter { Name = name, Value = value, Type = ParameterType.GetOrPost });
 }