public IEnumerable <T> Execute <T>(StackExchangeResourceEnum stackExchangeResourceEnum, List <object> parameters, Dictionary <string, object> data) { var resource = _stackExchangeResourceFactory.FetchResource(stackExchangeResourceEnum, parameters); var client = _restSharpWrapper.CreateRestClient(_url); var request = _restSharpWrapper.CreateRestRequest(resource); var filter = _stackExchangeFilterCreator.CreateFilter(); request.AddParameter("filter", filter); request.AddParameter("key", _key); request.AddParameter("site", _site); if (data != null && data.Keys.Any()) { foreach (var dataItem in data) { request.AddParameter(dataItem.Key, dataItem.Value); } } var response = client.Execute <ItemResponseDto <T> >(request); if (response?.Data == null || response.Data.QuotaRemaining == 0) { return(null); } return(response.Data.Items); }
public string FetchResource(StackExchangeResourceEnum stackExchangeResourceEnum, List <object> parameters) { switch (stackExchangeResourceEnum) { case StackExchangeResourceEnum.GetQuestions: return("questions"); case StackExchangeResourceEnum.LookupQuestions: return($"questions/{parameters[0]}"); case StackExchangeResourceEnum.GetQuestionAnswers: return($"questions/{parameters[0]}/answers"); case StackExchangeResourceEnum.CreateFilter: return("filters/create"); default: throw new ArgumentOutOfRangeException(nameof(stackExchangeResourceEnum), stackExchangeResourceEnum, null); } }
public string FetchResource(StackExchangeResourceEnum stackExchangeResourceEnum) { return(FetchResource(stackExchangeResourceEnum, null)); }
public IEnumerable <T> Execute <T>(StackExchangeResourceEnum stackExchangeResourceEnum) { return(Execute <T>(stackExchangeResourceEnum, null, null)); }
public IEnumerable <T> Execute <T>(StackExchangeResourceEnum stackExchangeResourceEnum, List <object> parameters) { return(Execute <T>(stackExchangeResourceEnum, parameters, null)); }
public IEnumerable <T> Execute <T>(StackExchangeResourceEnum stackExchangeResourceEnum, Dictionary <string, object> data) { return(Execute <T>(stackExchangeResourceEnum, null, data)); }