2using System.Collections.Generic;
8 public static partial class ExtensionMethods
10 #region Response Type Specified at Compile Time as Generic Method Type Parameter
22 IEnumerable<Parameter> requestParameters =
null,
41 IEnumerable<Parameter> requestParameters =
null,
44 return API.
RequestAndParse<T>(GetSubResourcePath(subResource, obj), Method.GET, requestParameters, timeout);
58 IEnumerable<Parameter> requestParameters =
null,
62 Method.POST,
API.AddRequestBodyParameters(requestParameters, obj), timeout);
78 IEnumerable<Parameter> requestParameters,
83 Method.POST,
API.AddRequestBodyParameters(requestParameters, data), timeout);
97 IEnumerable<Parameter> requestParameters =
null,
101 API.AddRequestBodyParameters(requestParameters, obj), timeout);
117 IEnumerable<Parameter> requestParameters,
122 Method.PUT,
API.AddRequestBodyParameters(requestParameters, data), timeout);
135 IEnumerable<Parameter> requestParameters =
null,
140 #endregion Response Type Specified at Compile Time as Generic Method Type Parameter
149 IEnumerable<Parameter> requestParameters =
null,
154 #endregion No Response
156 #region Response Type Specified as run-time Type Parameter
168 Type deserializeType,
169 IEnumerable<Parameter> requestParameters =
null,
187 Type deserializeType,
189 IEnumerable<Parameter> requestParameters =
null,
193 Method.GET, requestParameters, timeout);
207 Type deserializeType,
208 IEnumerable<Parameter> requestParameters =
null,
212 Method.POST,
API.AddRequestBodyParameters(requestParameters, obj), timeout);
227 Type deserializeType,
229 IEnumerable<Parameter> requestParameters,
234 Method.POST,
API.AddRequestBodyParameters(requestParameters, data), timeout);
248 Type deserializeType,
249 IEnumerable<Parameter> requestParameters =
null,
253 API.AddRequestBodyParameters(requestParameters, obj), timeout);
268 Type deserializeType,
270 IEnumerable<Parameter> requestParameters,
275 Method.PUT,
API.AddRequestBodyParameters(requestParameters, data), timeout);
288 Type deserializeType,
289 IEnumerable<Parameter> requestParameters =
null,
294 #endregion Response Type Specified as run-time Type Parameter
296 #region Helper Methods
297 private static string GetSubResourcePath(
string subResource,
IAPIResource res)
299 if (String.IsNullOrWhiteSpace(subResource))
300 throw new ArgumentException($
"Invalid Request: {nameof(subResource)} argument cannot be blank.");
301 return $
"{res.Path}/{subResource}";
303 #endregion Helper Methods
API methods / requests made available to the user.
static object RequestAndParse(Type deserializeType, string resource, Method method, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Perform a REST request on the server and serializes the response to the desired run-time type.
static object PutSubResource(this IAPIResource obj, Type deserializeType, string subResource, IEnumerable< Parameter > requestParameters, object data, int? timeout=null)
Performs a PUT of some data on a sub-resource of the current resource.
static T PostSubResource< T >(this IAPIResource obj, string subResource, IEnumerable< Parameter > requestParameters, object data, int? timeout=null)
POSTs some data to a sub-resource of the current resource.
static T GetSubResource< T >(this IAPIResource obj, string subResource, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Perform a GET on a sub-resource of the current resource. Requires the id property to be specified.
static object PostSubResource(this IAPIResource obj, Type deserializeType, string subResource, IEnumerable< Parameter > requestParameters, object data, int? timeout=null)
POSTs some data to a sub-resource of the current resource.
static T PutSubResource< T >(this IAPIResource obj, string subResource, IEnumerable< Parameter > requestParameters, object data, int? timeout=null)
Performs a PUT of some data on a sub-resource of the current resource.
static T Post_AsType< T >(this IAPIResource obj, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Perform a POST on the current resource, returning the server response deserialized to a new object of...
static object Put(this IAPIResource obj, Type deserializeType, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Perform a PUT on the current resource, returning the server response deserialized to a new object of ...
static object Post(this IAPIResource obj, Type deserializeType, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Perform a POST on the current resource, returning the server response deserialized to a new object of...
static object Get(this IAPIResource obj, Type deserializeType, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Perform a GET on the current resource to return the equivalent resource stored on the server....
static T Get_AsType< T >(this IAPIResource obj, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Perform a GET on the current resource to return the equivalent resource stored on the server....
static void Delete(this IAPIResource obj, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Requests for the server to delete the specified object from its resource collection.
static object GetSubResource(this IAPIResource obj, Type deserializeType, string subResource, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Perform a GET on a sub-resource of the current resource. Requires the id property to be specified.
static T Put_AsType< T >(this IAPIResource obj, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Perform a PUT on the current resource, returning the server response deserialized to a new object of ...
static object Delete(this IAPIResource obj, Type deserializeType, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Requests for the server to delete the specified object from its resource collection.
static T Delete< T >(this IAPIResource obj, IEnumerable< Parameter > requestParameters=null, int? timeout=null)
Requests for the server to delete the specified object from its resource collection.
string Path
The relative path to this endpoint from the root URL.
Interface for Base class used by all resources.