// *************** Asynchronous Post ********************* public static void RestPostAsync <TR, TI>(string url, TI data, RestCallBack <TR> callback, ClientConfiguration configuration) { var post = new PostDelegate <TR, TI>(RestPost <TR, TI>); post.BeginInvoke(url, data, configuration, ar => { var result = (AsyncResult)ar; var del = (PostDelegate <TR, TI>)result.AsyncDelegate; var value = default(TR); Exception e = null; try { value = del.EndInvoke(result); } catch (Exception ex) { e = ex; } callback?.Invoke(e, value); }, null); }
// *************** Asynchronous Post ********************* internal void RestPostAsync(string url, string data, RestCallBack <string> callback, ClientConfiguration configuration) { var post = new PostDelegate <string, string>(RestPost); post.BeginInvoke(url, data, configuration, ar => { var result = (AsyncResult)ar; var del = (PostDelegate <string, string>)result.AsyncDelegate; var value = string.Empty; Exception e = null; try { value = del.EndInvoke(result); } catch (Exception ex) { e = ex; } if (callback != null) { callback(e, value); } }, null); }
// *************** Asynchronous Get *************************** internal void RestGetAsync <TR>(string url, RestCallBack <TR> callback, ClientConfiguration configuration) { var get = new GetDelegate <string>(RestGet); get.BeginInvoke(url, configuration, ar => { var result = (AsyncResult)ar; var del = (GetDelegate <TR>)result.AsyncDelegate; var value = default(TR); Exception e = null; try { value = del.EndInvoke(result); } catch (Exception ex) { e = ex; } if (callback != null) { callback(e, value); } }, null); }
// Overload method public static void RestPostAsync <TR, TI>(string url, TI data, RestCallBack <TR> callback) => RestPostAsync <TR, TI>(url, data, callback, DefaultConfiguration);
// Overload method public static void RestGetAsync <TR>(string url, RestCallBack <TR> callback) => RestGetAsync <TR>(url, callback, DefaultConfiguration);
// Overload method internal void RestGetAsync <TR>(string url, RestCallBack <TR> callback) { RestGetAsync <TR>(url, callback, DefaultConfiguration); }
// Overload method internal void RestPostAsync(string url, string data, RestCallBack <string> callback) { RestPostAsync(url, data, callback, DefaultConfiguration); }
// Overload method internal void RestPostAsync <TR, TI>(string url, TI data, RestCallBack <TR> callback) { RestPostAsync <TR, TI>(url, data, callback, DefaultConfiguration); }