Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

DocumentsController.cs 2.6KB

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