PageRenderTime 46ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/Atlassian.Jira/Remote/JiraRemoteServiceWrapper.cs

https://bitbucket.org/miketrebilcock/atlassian.net-sdk
C# | 626 lines | 499 code | 124 blank | 3 comment | 3 complexity | 684c6c8da8e193e2841acd80cea9915a MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.ServiceModel;
  6. using System.Xml;
  7. using RestSharp;
  8. using Newtonsoft.Json.Linq;
  9. namespace Atlassian.Jira.Remote
  10. {
  11. /// <summary>
  12. /// Wraps the auto-generated JiraSoapServiceClient proxy
  13. /// </summary>
  14. internal class JiraRemoteServiceWrapper: IJiraRemoteService
  15. {
  16. private readonly JiraSoapServiceClient _client;
  17. private readonly string _url;
  18. private readonly string _username;
  19. private readonly string _password;
  20. public JiraRemoteServiceWrapper(string jiraBaseUrl)
  21. : this(jiraBaseUrl, null, null)
  22. {
  23. }
  24. public JiraRemoteServiceWrapper(string jiraBaseUrl, string username, string password)
  25. {
  26. _client = JiraRemoteServiceFactory.Create(jiraBaseUrl);
  27. _url = jiraBaseUrl.EndsWith("/") ? jiraBaseUrl : jiraBaseUrl += "/";
  28. _username = username;
  29. _password = password;
  30. }
  31. public string Url
  32. {
  33. get
  34. {
  35. return _url;
  36. }
  37. }
  38. public string GetJsonFromJqlSearch(string jql, int startAt, int maxResults, string[] fields = null)
  39. {
  40. var restClient = new RestClient(_url);
  41. if (!String.IsNullOrEmpty(_username) && !String.IsNullOrEmpty(_password))
  42. {
  43. restClient.Authenticator = new HttpBasicAuthenticator(_username, _password);
  44. }
  45. var request = new RestRequest();
  46. request.Method = Method.POST;
  47. request.Resource = "rest/api/latest/search";
  48. request.RequestFormat = DataFormat.Json;
  49. request.AddBody(new { jql = jql, startAt = startAt, maxResults = maxResults, fields = fields });
  50. var response = restClient.Execute(request);
  51. return response.Content;
  52. }
  53. public int GetIssueCountFromJqlSearch(string jql)
  54. {
  55. var json = JObject.Parse(GetJsonFromJqlSearch(jql, 0, 1, new string[1] { "summary" }));
  56. return (int) json["total"];
  57. }
  58. public string Login(string username, string password)
  59. {
  60. return _client.login(username, password);
  61. }
  62. public RemoteIssue[] GetIssuesFromJqlSearch(string token, string jqlSearch, int maxNumResults)
  63. {
  64. return _client.getIssuesFromJqlSearch(token, jqlSearch, maxNumResults);
  65. }
  66. public RemoteIssue CreateIssue(string token, RemoteIssue newIssue)
  67. {
  68. return _client.createIssue(token, newIssue);
  69. }
  70. public RemoteIssue UpdateIssue(string token, string key, RemoteFieldValue[] fields)
  71. {
  72. return _client.updateIssue(token, key, fields);
  73. }
  74. public RemoteAttachment[] GetAttachmentsFromIssue(string token, string key)
  75. {
  76. return _client.getAttachmentsFromIssue(token, key);
  77. }
  78. public bool AddBase64EncodedAttachmentsToIssue(string token, string key, string[] fileNames, string[] base64EncodedAttachmentData)
  79. {
  80. return _client.addBase64EncodedAttachmentsToIssue(token, key, fileNames, base64EncodedAttachmentData);
  81. }
  82. public RemoteComment[] GetCommentsFromIssue(string token, string key)
  83. {
  84. return _client.getComments(token, key);
  85. }
  86. public void AddComment(string token, string key, RemoteComment comment)
  87. {
  88. _client.addComment(token, key, comment);
  89. }
  90. public RemoteIssueType[] GetIssueTypes(string token, string projectId)
  91. {
  92. if (String.IsNullOrEmpty(projectId))
  93. {
  94. return _client.getIssueTypes(token);
  95. }
  96. else
  97. {
  98. return _client.getIssueTypesForProject(token, projectId);
  99. }
  100. }
  101. public RemotePriority[] GetPriorities(string token)
  102. {
  103. return _client.getPriorities(token);
  104. }
  105. public RemoteResolution[] GetResolutions(string token)
  106. {
  107. return _client.getResolutions(token);
  108. }
  109. public RemoteStatus[] GetStatuses(string token)
  110. {
  111. return _client.getStatuses(token);
  112. }
  113. public RemoteVersion[] GetVersions(string token, string projectKey)
  114. {
  115. return _client.getVersions(token, projectKey);
  116. }
  117. public RemoteComponent[] GetComponents(string token, string projectKey)
  118. {
  119. return _client.getComponents(token, projectKey);
  120. }
  121. public RemoteField[] GetCustomFields(string token)
  122. {
  123. return _client.getCustomFields(token);
  124. }
  125. public RemoteField[] GetFieldsForEdit(string token, string key)
  126. {
  127. return _client.getFieldsForEdit(token, key);
  128. }
  129. public RemoteWorklog AddWorklogAndAutoAdjustRemainingEstimate(string token, string key, RemoteWorklog worklog)
  130. {
  131. return _client.addWorklogAndAutoAdjustRemainingEstimate(token, key, worklog);
  132. }
  133. public RemoteWorklog AddWorklogAndRetainRemainingEstimate(string token, string key, RemoteWorklog worklog)
  134. {
  135. return _client.addWorklogAndRetainRemainingEstimate(token, key, worklog);
  136. }
  137. public RemoteWorklog AddWorklogWithNewRemainingEstimate(string token, string key, RemoteWorklog worklog, string newRemainingEstimate)
  138. {
  139. return _client.addWorklogWithNewRemainingEstimate(token, key, worklog, newRemainingEstimate);
  140. }
  141. public RemoteWorklog[] GetWorkLogs(string token, string key)
  142. {
  143. return _client.getWorklogs(token, key);
  144. }
  145. public RemoteProject[] GetProjects(string token)
  146. {
  147. return _client.getProjectsNoSchemes(token);
  148. }
  149. public RemoteIssue CreateIssueWithParent(string token, RemoteIssue newIssue, string parentIssueKey)
  150. {
  151. return _client.createIssueWithParent(token, newIssue, parentIssueKey);
  152. }
  153. public RemoteFilter[] GetFavouriteFilters(string token)
  154. {
  155. return _client.getFavouriteFilters(token);
  156. }
  157. public RemoteIssue[] GetIssuesFromFilterWithLimit(string token, string filterId, int offset, int maxResults)
  158. {
  159. return _client.getIssuesFromFilterWithLimit(token, filterId, offset, maxResults);
  160. }
  161. public RemoteNamedObject[] GetAvailableActions(string token, string issueKey)
  162. {
  163. return _client.getAvailableActions(token, issueKey);
  164. }
  165. public RemoteIssue ProgressWorkflowAction(string token, string issueKey, string actionId, RemoteFieldValue[] remoteFieldValues)
  166. {
  167. return _client.progressWorkflowAction(token, issueKey, actionId, remoteFieldValues);
  168. }
  169. public void AddActorsToProjectRole(string in0, string[] in1, RemoteProjectRole in2, RemoteProject in3, string in4)
  170. {
  171. _client.addActorsToProjectRole(in0, in1, in2, in3, in4);
  172. }
  173. public void AddDefaultActorsToProjectRole(string in0, string[] in1, RemoteProjectRole in2, string in3)
  174. {
  175. _client.addDefaultActorsToProjectRole(in0, in1, in2, in3);
  176. }
  177. public RemotePermissionScheme AddPermissionTo(string in0, RemotePermissionScheme in1, RemotePermission in2, RemoteEntity in3)
  178. {
  179. return _client.addPermissionTo(in0, in1, in2, in3);
  180. }
  181. public void AddUserToGroup(string in0, RemoteGroup in1, RemoteUser in2)
  182. {
  183. _client.addUserToGroup(in0, in1, in2);
  184. }
  185. public RemoteVersion AddVersion(string in0, string in1, RemoteVersion in2)
  186. {
  187. return _client.addVersion(in0, in1, in2);
  188. }
  189. public void ArchiveVersion(string in0, string in1, string in2, bool in3)
  190. {
  191. _client.archiveVersion(in0, in1, in2, in3);
  192. }
  193. public RemoteGroup CreateGroup(string in0, string in1, RemoteUser in2)
  194. {
  195. return _client.createGroup(in0, in1, in2);
  196. }
  197. public RemoteIssue CreateIssueWithSecurityLevel(string in0, RemoteIssue in1, long in2)
  198. {
  199. return _client.createIssueWithSecurityLevel(in0, in1, in2);
  200. }
  201. public RemotePermissionScheme CreatePermissionScheme(string in0, string in1, string in2)
  202. {
  203. return _client.createPermissionScheme(in0, in1, in2);
  204. }
  205. public RemoteProject CreateProject(string in0, string in1, string in2, string in3, string in4, string in5, RemotePermissionScheme in6, RemoteScheme in7, RemoteScheme in8)
  206. {
  207. return _client.createProject(in0, in1, in2, in3, in4, in5, in6, in7, in8);
  208. }
  209. public RemoteProject CreateProjectFromObject(string in0, RemoteProject in1)
  210. {
  211. return _client.createProjectFromObject(in0, in1);
  212. }
  213. public RemoteProjectRole CreateProjectRole(string in0, RemoteProjectRole in1)
  214. {
  215. return _client.createProjectRole(in0, in1);
  216. }
  217. public RemoteUser CreateUser(string in0, string in1, string in2, string in3, string in4)
  218. {
  219. return _client.createUser(in0, in1, in2, in3, in4);
  220. }
  221. public void DeleteGroup(string in0, string in1, string in2)
  222. {
  223. _client.deleteGroup(in0, in1, in2);
  224. }
  225. public void DeleteIssue(string in0, string in1)
  226. {
  227. _client.deleteIssue(in0, in1);
  228. }
  229. public RemotePermissionScheme DeletePermissionFrom(string in0, RemotePermissionScheme in1, RemotePermission in2, RemoteEntity in3)
  230. {
  231. return _client.deletePermissionFrom(in0, in1, in2, in3);
  232. }
  233. public void DeletePermissionScheme(string in0, string in1)
  234. {
  235. _client.deletePermissionScheme(in0, in1);
  236. }
  237. public void DeleteProject(string in0, string in1)
  238. {
  239. _client.deleteProject(in0, in1);
  240. }
  241. public void DeleteProjectAvatar(string in0, long in1)
  242. {
  243. _client.deleteProjectAvatar(in0, in1);
  244. }
  245. public void DeleteProjectRole(string in0, RemoteProjectRole in1, bool in2)
  246. {
  247. _client.deleteProjectRole(in0, in1, in2);
  248. }
  249. public void DeleteUser(string in0, string in1)
  250. {
  251. _client.deleteUser(in0, in1);
  252. }
  253. public void DeleteWorklogAndAutoAdjustRemainingEstimate(string in0, string in1)
  254. {
  255. _client.deleteWorklogAndAutoAdjustRemainingEstimate(in0, in1);
  256. }
  257. public void DeleteWorklogAndRetainRemainingEstimate(string in0, string in1)
  258. {
  259. _client.deleteWorklogAndRetainRemainingEstimate(in0, in1);
  260. }
  261. public void DeleteWorklogWithNewRemainingEstimate(string in0, string in1, string in2)
  262. {
  263. _client.deleteWorklogWithNewRemainingEstimate(in0, in1, in2);
  264. }
  265. public RemoteComment EditComment(string in0, RemoteComment in1)
  266. {
  267. return _client.editComment(in0, in1);
  268. }
  269. public RemotePermission[] GetAllPermissions(string in0)
  270. {
  271. return _client.getAllPermissions(in0);
  272. }
  273. public RemoteScheme[] GetAssociatedNotificationSchemes(string in0, RemoteProjectRole in1)
  274. {
  275. return _client.getAssociatedNotificationSchemes(in0, in1);
  276. }
  277. public RemoteScheme[] GetAssociatedPermissionSchemes(string in0, RemoteProjectRole in1)
  278. {
  279. return _client.getAssociatedPermissionSchemes(in0, in1);
  280. }
  281. public RemoteComment GetComment(string in0, long in1)
  282. {
  283. return _client.getComment(in0, in1);
  284. }
  285. public RemoteComment[] GetComments(string in0, string in1)
  286. {
  287. return _client.getComments(in0, in1);
  288. }
  289. public RemoteConfiguration GetConfiguration(string in0)
  290. {
  291. return _client.getConfiguration(in0);
  292. }
  293. public RemoteRoleActors GetDefaultRoleActors(string in0, RemoteProjectRole in1)
  294. {
  295. return _client.getDefaultRoleActors(in0, in1);
  296. }
  297. public RemoteField[] GetFieldsForAction(string in0, string in1, string in2)
  298. {
  299. return _client.getFieldsForAction(in0, in1, in2);
  300. }
  301. public RemoteGroup GetGroup(string in0, string in1)
  302. {
  303. return _client.getGroup(in0, in1);
  304. }
  305. public RemoteIssue GetIssue(string in0, string in1)
  306. {
  307. return _client.getIssue(in0, in1);
  308. }
  309. public RemoteIssue GetIssueById(string in0, string in1)
  310. {
  311. return _client.getIssueById(in0, in1);
  312. }
  313. public long GetIssueCountForFilter(string in0, string in1)
  314. {
  315. return _client.getIssueCountForFilter(in0, in1);
  316. }
  317. public RemoteIssue[] GetIssuesFromTextSearchWithLimit(string in0, string in1, int in2, int in3)
  318. {
  319. return _client.getIssuesFromTextSearchWithLimit(in0, in1, in2, in3);
  320. }
  321. public RemoteIssue[] GetIssuesFromTextSearchWithProject(string in0, string[] in1, string in2, int in3)
  322. {
  323. return _client.getIssuesFromTextSearchWithProject(in0, in1, in2, in3);
  324. }
  325. public RemoteIssueType[] GetIssueTypes(string in0)
  326. {
  327. return _client.getIssueTypes(in0);
  328. }
  329. public RemoteIssueType[] GetIssueTypesForProject(string in0, string in1)
  330. {
  331. return _client.getIssueTypesForProject(in0, in1);
  332. }
  333. public RemoteScheme[] GetNotificationSchemes(string in0)
  334. {
  335. return _client.getNotificationSchemes(in0);
  336. }
  337. public RemotePermissionScheme[] GetPermissionSchemes(string in0)
  338. {
  339. return _client.getPermissionSchemes(in0);
  340. }
  341. public RemoteAvatar GetProjectAvatar(string in0, string in1)
  342. {
  343. return _client.getProjectAvatar(in0, in1);
  344. }
  345. public RemoteAvatar[] GetProjectAvatars(string in0, string in1, bool in2)
  346. {
  347. return _client.getProjectAvatars(in0, in1, in2);
  348. }
  349. public RemoteProject GetProjectById(string in0, long in1)
  350. {
  351. return _client.getProjectById(in0, in1);
  352. }
  353. public RemoteProject GetProjectByKey(string in0, string in1)
  354. {
  355. return _client.getProjectByKey(in0, in1);
  356. }
  357. public RemoteProjectRole GetProjectRole(string in0, long in1)
  358. {
  359. return _client.getProjectRole(in0, in1);
  360. }
  361. public RemoteProjectRoleActors GetProjectRoleActors(string in0, RemoteProjectRole in1, RemoteProject in2)
  362. {
  363. return _client.getProjectRoleActors(in0, in1, in2);
  364. }
  365. public RemoteProjectRole[] GetProjectRoles(string in0)
  366. {
  367. return _client.getProjectRoles(in0);
  368. }
  369. public RemoteProject[] GetProjectsNoSchemes(string in0)
  370. {
  371. return _client.getProjectsNoSchemes(in0);
  372. }
  373. public RemoteProject GetProjectWithSchemesById(string in0, long in1)
  374. {
  375. return _client.getProjectWithSchemesById(in0, in1);
  376. }
  377. public DateTime GetResolutionDateById(string in0, long in1)
  378. {
  379. return _client.getResolutionDateById(in0, in1);
  380. }
  381. public DateTime GetResolutionDateByKey(string in0, string in1)
  382. {
  383. return _client.getResolutionDateByKey(in0, in1);
  384. }
  385. public RemoteSecurityLevel GetSecurityLevel(string in0, string in1)
  386. {
  387. return _client.getSecurityLevel(in0, in1);
  388. }
  389. public RemoteSecurityLevel[] GetSecurityLevels(string in0, string in1)
  390. {
  391. return _client.getSecurityLevels(in0, in1);
  392. }
  393. public RemoteScheme[] GetSecuritySchemes(string in0)
  394. {
  395. return _client.getSecuritySchemes(in0);
  396. }
  397. public RemoteServerInfo GetServerInfo(string in0)
  398. {
  399. return _client.getServerInfo(in0);
  400. }
  401. public RemoteIssueType[] GetSubTaskIssueTypes(string in0)
  402. {
  403. return _client.getSubTaskIssueTypes(in0);
  404. }
  405. public RemoteIssueType[] GetSubTaskIssueTypesForProject(string in0, string in1)
  406. {
  407. return _client.getSubTaskIssueTypesForProject(in0, in1);
  408. }
  409. public RemoteUser GetUser(string in0, string in1)
  410. {
  411. return _client.getUser(in0, in1);
  412. }
  413. public RemoteWorklog[] GetWorklogs(string in0, string in1)
  414. {
  415. return _client.getWorklogs(in0, in1);
  416. }
  417. public bool HasPermissionToCreateWorklog(string in0, string in1)
  418. {
  419. return _client.hasPermissionToCreateWorklog(in0, in1);
  420. }
  421. public bool HasPermissionToDeleteWorklog(string in0, string in1)
  422. {
  423. return _client.hasPermissionToDeleteWorklog(in0, in1);
  424. }
  425. public bool HasPermissionToEditComment(string in0, RemoteComment in1)
  426. {
  427. return _client.hasPermissionToEditComment(in0, in1);
  428. }
  429. public bool HasPermissionToUpdateWorklog(string in0, string in1)
  430. {
  431. return _client.hasPermissionToUpdateWorklog(in0, in1);
  432. }
  433. public bool IsProjectRoleNameUnique(string in0, string in1)
  434. {
  435. return _client.isProjectRoleNameUnique(in0, in1);
  436. }
  437. public bool Logout(string in0)
  438. {
  439. return _client.logout(in0);
  440. }
  441. public void RefreshCustomFields(string in0)
  442. {
  443. _client.refreshCustomFields(in0);
  444. }
  445. public void ReleaseVersion(string in0, string in1, RemoteVersion in2)
  446. {
  447. _client.releaseVersion(in0, in1, in2);
  448. }
  449. public void RemoveActorsFromProjectRole(string in0, string[] in1, RemoteProjectRole in2, RemoteProject in3, string in4)
  450. {
  451. _client.removeActorsFromProjectRole(in0, in1, in2, in3, in4);
  452. }
  453. public void RemoveAllRoleActorsByNameAndType(string in0, string in1, string in2)
  454. {
  455. _client.removeAllRoleActorsByNameAndType(in0, in1, in2);
  456. }
  457. public void RemoveAllRoleActorsByProject(string in0, RemoteProject in1)
  458. {
  459. _client.removeAllRoleActorsByProject(in0, in1);
  460. }
  461. public void RemoveDefaultActorsFromProjectRole(string in0, string[] in1, RemoteProjectRole in2, string in3)
  462. {
  463. _client.removeDefaultActorsFromProjectRole(in0, in1, in2, in3);
  464. }
  465. public void RemoveUserFromGroup(string in0, RemoteGroup in1, RemoteUser in2)
  466. {
  467. _client.removeUserFromGroup(in0, in1, in2);
  468. }
  469. public void SetNewProjectAvatar(string in0, string in1, string in2, string in3)
  470. {
  471. _client.setNewProjectAvatar(in0, in1, in2, in3);
  472. }
  473. public void SetProjectAvatar(string in0, string in1, long in2)
  474. {
  475. _client.setProjectAvatar(in0, in1, in2);
  476. }
  477. public RemoteGroup UpdateGroup(string in0, RemoteGroup in1)
  478. {
  479. return _client.updateGroup(in0, in1);
  480. }
  481. public RemoteProject UpdateProject(string in0, RemoteProject in1)
  482. {
  483. return _client.updateProject(in0, in1);
  484. }
  485. public void UpdateProjectRole(string in0, RemoteProjectRole in1)
  486. {
  487. _client.updateProjectRole(in0, in1);
  488. }
  489. public void UpdateWorklogAndAutoAdjustRemainingEstimate(string in0, RemoteWorklog in1)
  490. {
  491. _client.updateWorklogAndAutoAdjustRemainingEstimate(in0, in1);
  492. }
  493. public void UpdateWorklogAndRetainRemainingEstimate(string in0, RemoteWorklog in1)
  494. {
  495. _client.updateWorklogAndRetainRemainingEstimate(in0, in1);
  496. }
  497. public void UpdateWorklogWithNewRemainingEstimate(string in0, RemoteWorklog in1, string in2)
  498. {
  499. _client.updateWorklogWithNewRemainingEstimate(in0, in1, in2);
  500. }
  501. }
  502. }