選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

DocumentsController.cs 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using Microsoft.AspNetCore.Mvc;
  2. using BlackRock.Reporting.API.Mediator.DocumentMediator;
  3. using BlackRock.Reporting.API.Core.Models;
  4. namespace BlackRock.Reporting.API.Controllers
  5. {
  6. //[Authorize]
  7. [Route("api/[controller]")]
  8. public class DocumentsController : ControllerBase
  9. {
  10. private readonly IDocumentMediator mediator;
  11. public DocumentsController(IDocumentMediator mediator)
  12. {
  13. this.mediator = mediator ?? throw new ArgumentNullException(nameof(mediator));
  14. }
  15. // GET: api/documents/Page=2&PageSize=25
  16. [HttpGet("{id}")]
  17. public async Task<IActionResult> GetDocumentById(int id)
  18. {
  19. var result = await mediator.GetDocument(id);
  20. if (!result.IsSuccess)
  21. return BadRequest();
  22. if (result.Data == null)
  23. return NotFound("Id is not valid");
  24. return Ok(result.Data);
  25. }
  26. // GET: api/documents
  27. [HttpGet]
  28. public async Task<IActionResult> GetDocuments(SortFilter query)
  29. {
  30. var result = await mediator.GetDocuments(query);
  31. if (!result.IsSuccess)
  32. return BadRequest();
  33. if (result.Data == null)
  34. return NotFound();
  35. return Ok(result.Data);
  36. }
  37. // POST: api/documents
  38. [HttpPost]
  39. public async Task<IActionResult> CreateDocument([FromBody] CreateDocumentForm form)
  40. {
  41. if (!ModelState.IsValid)
  42. return BadRequest(ModelState);
  43. var result = await mediator.CreateDocument(form);
  44. if (!result.IsSuccess)
  45. return BadRequest(result.Error);
  46. return Ok(result.Data);
  47. }
  48. // PUT: api/documents/{id}
  49. [HttpPut]
  50. public async Task<IActionResult> UpdateDocument(int id, [FromBody] UpdateDocumentForm form)
  51. {
  52. if (!ModelState.IsValid)
  53. return BadRequest(ModelState);
  54. //form.Id = id;
  55. var result = await mediator.UpdateDocument(form);
  56. if (!result.IsSuccess)
  57. return BadRequest(result.Error);
  58. return Accepted();
  59. }
  60. // DELETE: api/documents/{id}
  61. [HttpDelete]
  62. public async Task<IActionResult> DeleteDocument(int id)
  63. {
  64. var result = await mediator.DeleteDocument(id);
  65. if (!result.IsSuccess)
  66. return BadRequest(result.Error);
  67. return NoContent();
  68. }
  69. }
  70. }