private RestRequest CreateRequest(string resourceUrl, RestComplexRequest request) { var restRequest = new RestRequest(resourceUrl, request.Method); if (request.UrlSegments != null) { foreach (var element in request.UrlSegments) { restRequest.AddUrlSegment(element.Key, element.Value); } } if (request.Parameters != null) { foreach (var element in request.Parameters) { restRequest.AddParameter(element.Key, element.Value); } } if (request.ExtraHeaders != null) { foreach (var element in request.ExtraHeaders) { restRequest.AddHeader(element.Key, element.Value); } } if (request.GetType() == typeof(RestComplexDataRequest)) { var dataRequest = (request as RestComplexDataRequest); if (dataRequest != null) { if (dataRequest.ContentType != null) { if (dataRequest.ContentType == RestDataContentType.Json) { restRequest.RequestFormat = DataFormat.Json; restRequest.JsonSerializer = new JsonCustomSerializer(); restRequest.AddBody(dataRequest.Content); } else if (dataRequest.ContentType == RestDataContentType.Xml) { restRequest.RequestFormat = DataFormat.Xml; restRequest.AddBody(dataRequest.Content); } else if (dataRequest.ContentType == RestDataContentType.UrlEncode) { var content = (dataRequest.Content as Dictionary <string, string>); restRequest.RequestFormat = DataFormat.Json; foreach (var element in content) { restRequest.AddParameter(element.Key, element.Value, ParameterType.GetOrPost); } restRequest.AddBody(dataRequest.Content); } } } } return(restRequest); }
protected Task <T> MakeAsyncRequest <T>(string resourceUrl, RestComplexRequest request) { var taskCompletionSource = new TaskCompletionSource <T>(); var restRequest = CreateRequest(resourceUrl, request); MakeRequestCallAsync(taskCompletionSource, restRequest); return(taskCompletionSource.Task); }
public Task <string> DeleteAsync(string owner, string reposlug) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); var request = new RestComplexRequest(Method.DELETE, segments, null, null); var task = MakeAsyncRequest <string>(DEFAULT_SPECIFIC_REPOSITORY_RESOURCE, request); return(task); }
public Task <PaginatedResponse <Repository> > GetAllPublicAsync(PaginatedRequest paginatedRequest) { var parameters = CreateDefaultPaginationParameters(paginatedRequest); var restRequest = new RestComplexRequest(Method.GET, null, parameters); var task = MakeAsyncRequest <PaginatedResponse <Repository> >(string.Empty, restRequest); return(task); }
public Task <PaginatedResponse <BranchRestriction> > GetAllAsync(string owner, string reposlug, PaginatedRequest request) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); var parameters = CreateDefaultPaginationParameters(request); var restRequest = new RestComplexRequest(Method.GET, segments, parameters, null); var task = MakeAsyncRequest <PaginatedResponse <BranchRestriction> >(BRANCH_RESTRICTIONS_RESOURCE, restRequest); return(task); }
public Task <PullRequest> GetAsync(string owner, string reposlug, long id) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); segments.Add(PULL_REQUEST_ID_SEGMENT, id.ToString()); var request = new RestComplexRequest(Method.GET, segments, null, null); var task = MakeAsyncRequest <PullRequest>(SPECIFIED_PULL_REQUEST_RESOURCE, request); return(task); }
public Task <PaginatedResponse <Repository> > GetForksAsync(string owner, string reposlug, PaginatedRequest paginatedRequest) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); var parameters = CreateDefaultPaginationParameters(paginatedRequest); var restRequest = new RestComplexRequest(Method.GET, segments, parameters); var task = MakeAsyncRequest <PaginatedResponse <Repository> >(FORKS_REPOSITORY_RESOURCE, restRequest); return(task); }
public Task <ApprovalStatus> ApproveAsync(string owner, string repoSlug, string revision) { var segments = CreateDefaultSegmentsDictionary(owner, repoSlug); segments.Add(REVISION_SEGMENT, revision); var restRequest = new RestComplexRequest(Method.POST, segments, null, null); var task = MakeAsyncRequest <ApprovalStatus>(APPROVE_COMMENT_RESOURCE, restRequest); return(task); }
public Task <Commit> GetAsync(string owner, string repoSlug, string revision) { var segments = CreateDefaultSegmentsDictionary(owner, repoSlug); segments.Add(REVISION_SEGMENT, revision); var restRequest = new RestComplexRequest(Method.GET, segments, null, null); var task = MakeAsyncRequest <Commit>(SPECIFIED_COMMIT_RESOURCE, restRequest); return(task); }
public Task <string> DeleteAsync(string owner, string reposlug, string id) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); segments.Add(ID_SEGMENT, id); var restRequest = new RestComplexRequest(Method.DELETE, segments, null, null); var task = MakeAsyncRequest <string>(SPECIFIED_RESTRICTION_RESOURCE, restRequest); return(task); }
public Task <string> GetPatchAsync(string owner, string reposlug, string spec) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); segments.Add(SPEC_SEGMENT, spec); var restRequest = new RestComplexRequest(Method.GET, segments, null, null); var task = MakeAsyncRequest <string>(PATCH_RESOURCE, restRequest); return(task); }
public Task <PaginatedResponse <Activity> > GetAllActivityAsync(string owner, string reposlug, PaginatedRequest paginatedRequest) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); var parameters = CreateDefaultPaginationParameters(paginatedRequest); var request = new RestComplexRequest(Method.GET, segments, parameters); var task = MakeAsyncRequest <PaginatedResponse <Activity> >(ACTIVITY_PULL_REQUEST_RESOURCE, request); return(task); }
public Task <PaginatedResponse <Repository> > GetRepositoriesAsync(string teamName, PaginatedRequest request) { var segments = new Dictionary <string, string>() { { TEAM_NAME_SEGMENT, teamName } }; var restRequest = new RestComplexRequest(Method.GET, segments, null); var task = MakeAsyncRequest <PaginatedResponse <Repository> >(TEAM_REPOSITORIES_RESOURCE, restRequest); return(task); }
public Task <PaginatedResponse <User> > GetFollowingAsync(string teamName, PaginatedRequest request) { var segments = new Dictionary <string, string>() { { TEAM_NAME_SEGMENT, teamName } }; var restRequest = new RestComplexRequest(Method.GET, segments, null); var task = MakeAsyncRequest <PaginatedResponse <User> >(TEAM_FOLLOWING_RESOURCE, restRequest); return(task); }
public Task <Team> GetProfileAsync(string teamName) { var segments = new Dictionary <string, string>() { { TEAM_NAME_SEGMENT, teamName } };; var request = new RestComplexRequest(Method.GET, segments, null); var task = MakeAsyncRequest <Team>(TEAM_NAME_RESOURCE, request); return(task); }
public Task <Team> GetProfileAsync(string user) { var segments = new Dictionary <string, string>() { { USERNAME_SEGMENT, user } }; var restRequest = new RestComplexRequest(Method.GET, segments, null); var task = MakeAsyncRequest <Team>(USER_RESOURCE, restRequest); return(task); }
protected Task <T> MakeAsyncRequest <T>(string resourceUrl, RestComplexRequest request, Dictionary <string, string> files) { var taskCompletionSource = new TaskCompletionSource <T>(); var restRequest = CreateRequest(resourceUrl, request); foreach (var element in files) { restRequest.AddFile(element.Key, element.Value); } MakeRequestCallAsync(taskCompletionSource, restRequest); return(taskCompletionSource.Task); }
public Task <PaginatedResponse <Comment> > GetCommentsAsync(string owner, string reposlug, long pullRequestId, PaginatedRequest paginatedRequest) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); segments.Add(PULL_REQUEST_ID_SEGMENT, pullRequestId.ToString()); var parameters = CreateDefaultPaginationParameters(paginatedRequest); var request = new RestComplexRequest(Method.GET, segments, parameters); var task = MakeAsyncRequest <PaginatedResponse <Comment> >(COMMENTS_PULL_REQUEST_RESOURCE, request); return(task); }
public Task <PaginatedResponse <Repository> > GetAllAsync(string owner, PaginatedRequest paginatedRequest) { var segments = new Dictionary <string, string>() { { OWNER_SEGMENT, owner } }; var parameters = CreateDefaultPaginationParameters(paginatedRequest); var restRequest = new RestComplexRequest(Method.GET, segments, parameters); var task = MakeAsyncRequest <PaginatedResponse <Repository> >(DEFAULT_OWNER_RESOURCE, restRequest); return(task); }
public Task <PaginatedResponse <Comment> > GetCommentsAsync(string owner, string repoSlug, string revision, PaginatedRequest paginatedRequest) { var segments = CreateDefaultSegmentsDictionary(owner, repoSlug); segments.Add(REVISION_SEGMENT, revision); var parameters = CreateDefaultPaginationParameters(paginatedRequest); var restRequest = new RestComplexRequest(Method.GET, segments, parameters, null); var task = MakeAsyncRequest <PaginatedResponse <Comment> >(SPECIFIED_COMMIT_COMMENTS_RESOURCE, restRequest); return(task); }
public Task <PaginatedResponse <User> > GetFollowingAsync(string user, PaginatedRequest request) { var segments = new Dictionary <string, string>() { { USERNAME_SEGMENT, user } }; var parameters = CreateDefaultPaginationParameters(request); var restRequest = new RestComplexRequest(Method.GET, segments, parameters); var task = MakeAsyncRequest <PaginatedResponse <User> >(FOLLOWING_RESOURCE, restRequest); return(task); }
public Task <PullRequest> DeclineAsync(string owner, string reposlug, long pullRequestId, string message = "") { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); segments.Add(PULL_REQUEST_ID_SEGMENT, pullRequestId.ToString()); var parameters = new Dictionary <string, string>(); parameters.Add(MESSAGE_PARAMETER, message); var request = new RestComplexRequest(Method.POST, segments, parameters, null); var task = MakeAsyncRequest <PullRequest>(DECLINE_PULL_REQUEST_RESOURCE, request); return(task); }
public Task <PaginatedResponse <PullRequest> > GetAllAsync(string owner, string reposlug, IEnumerable <PullRequestState> statesValues, PaginatedRequest paginatedRequest) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); var parameters = CreateDefaultPaginationParameters(paginatedRequest); var states = new MultiValueRequestParameter <PullRequestState>("state", statesValues); parameters.Add(states.Name, states.ParameterValue); var request = new RestComplexRequest(Method.GET, segments, parameters); var task = MakeAsyncRequest <PaginatedResponse <PullRequest> >(DEFAULT_PULL_REQUEST_RESOURCE, request); return(task); }
public Task <PullRequest> AcceptAsync(string owner, string reposlug, long pullRequestId, string message = "", bool closeSourceBranch = false) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); segments.Add(PULL_REQUEST_ID_SEGMENT, pullRequestId.ToString()); var parameters = new Dictionary <string, string>(); parameters.Add(MESSAGE_PARAMETER, message); parameters.Add(CLOSE_SOURCE_BRANCH_PARAMETER, closeSourceBranch.ToString()); var request = new RestComplexRequest(Method.POST, segments, parameters, null); var task = MakeAsyncRequest <PullRequest>(MERGE_PULL_REQUEST_RESOURCE, request); return(task); }
public Task <string> GetDiffAsync(string owner, string reposlug, long id, long numberOfContextLines = 3L) { var segments = CreateDefaultSegmentsDictionary(owner, reposlug); segments.Add(PULL_REQUEST_ID_SEGMENT, id.ToString()); Dictionary <string, string> parameters = null; if (numberOfContextLines != 3L) { parameters = new Dictionary <string, string>(); parameters.Add(NUMBER_OF_CONTEXT_LINES_PARAMETER, numberOfContextLines.ToString()); } var request = new RestComplexRequest(Method.GET, segments, parameters, null); var task = MakeAsyncRequest <string>(DIFF_SPECIFIED_PULL_REQUEST_RESOURCE, request); return(task); }
public Task <PaginatedResponse <Commit> > GetAllAsync(string owner, string repoSlug, PaginatedRequest paginatedRequest, CommitGetOptionalParameters optional) { var segments = CreateDefaultSegmentsDictionary(owner, repoSlug); var parameters = CreateDefaultPaginationParameters(paginatedRequest); var resourceUrl = string.Empty; if (optional.BranchOrTag != null) { resourceUrl = COMMITS_DEFAULT_RESOURCE; segments.Add(optional.BranchOrTag.Name, optional.BranchOrTag.Value); } else { resourceUrl = COMMITS_DEFAULT_RESOURCE; } var restRequest = new RestComplexRequest(Method.GET, segments, parameters, null); var task = MakeAsyncRequest <PaginatedResponse <Commit> >(resourceUrl, restRequest); return(task); }