API
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

TimeshareWeekController.cs 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. using Microsoft.AspNetCore.Mvc;
  2. using System.Transactions;
  3. using UnivateProperties_API.Containers.Timeshare;
  4. using UnivateProperties_API.Model.Timeshare;
  5. using UnivateProperties_API.Repository;
  6. using UnivateProperties_API.Repository.Timeshare;
  7. namespace UnivateProperties_API.Controllers.Timeshare
  8. {
  9. [Route("api/[controller]")]
  10. [ApiController]
  11. public class TimeshareWeekController : ControllerBase
  12. {
  13. private readonly IRepository<TimeshareWeek> _Repo;
  14. public TimeshareWeekController(IRepository<TimeshareWeek> repo)
  15. {
  16. _Repo = repo;
  17. }
  18. [HttpGet]
  19. public IActionResult Get()
  20. {
  21. var items = (_Repo as WeekRepository).GetDtoListAll();
  22. return new OkObjectResult(items);
  23. }
  24. [HttpGet("{id}")]
  25. public IActionResult Get(int id)
  26. {
  27. var item = (_Repo as WeekRepository).GetMyDetailed(x => x.Id == id);
  28. return new OkObjectResult(item);
  29. }
  30. [HttpGet("getAvailResort")]
  31. public IActionResult GetAvailResort()
  32. {
  33. if (_Repo is WeekRepository)
  34. {
  35. var item = (_Repo as WeekRepository).GetAvailResort();
  36. return new OkObjectResult(item);
  37. }
  38. else return new OkResult();
  39. }
  40. [HttpGet("getMyWeek/{id}")]
  41. public IActionResult GetMyWeek(int id)
  42. {
  43. if (_Repo is WeekRepository)
  44. {
  45. var item = (_Repo as WeekRepository).GetMyWeeks(id);
  46. return new OkObjectResult(item);
  47. }
  48. else return new OkResult();
  49. }
  50. [HttpGet("getNeedApproval")]
  51. public IActionResult GetNeedApproval()
  52. {
  53. if (_Repo is WeekRepository)
  54. {
  55. var item = (_Repo as WeekRepository).GetNeedApproval();
  56. return new OkObjectResult(item);
  57. }
  58. else return new OkResult();
  59. }
  60. [HttpGet("getBy")]
  61. public IActionResult GetBy(WeekFilterDto week)
  62. {
  63. var item = (_Repo as WeekRepository).GetBy(week);
  64. return new OkObjectResult(item);
  65. }
  66. [HttpPost]
  67. public IActionResult Post([FromBody] TimeshareWeek item)
  68. {
  69. using (var scope = new TransactionScope())
  70. {
  71. _Repo.Insert(item);
  72. scope.Complete();
  73. return CreatedAtAction(nameof(Get), new { id = item.Id }, item);
  74. }
  75. }
  76. [HttpPut("{id}")]
  77. public IActionResult Put([FromBody] TimeshareWeek item)
  78. {
  79. if (item != null)
  80. {
  81. using (var scope = new TransactionScope())
  82. {
  83. _Repo.Update(item);
  84. scope.Complete();
  85. return new OkResult();
  86. }
  87. }
  88. return new NoContentResult();
  89. }
  90. [HttpDelete("{id}")]
  91. public IActionResult Delete(int id)
  92. {
  93. _Repo.RemoveAtId(id);
  94. return new OkResult();
  95. }
  96. [HttpPost("verifyweek/{id}")]
  97. public IActionResult Post(int id)
  98. {
  99. using (var scope = new TransactionScope())
  100. {
  101. (_Repo as WeekRepository).VerifyWeek(id);
  102. scope.Complete();
  103. return new OkResult();
  104. }
  105. }
  106. [HttpPost("publishweek/{id}")]
  107. public IActionResult Publishweek(int id)
  108. {
  109. using (var scope = new TransactionScope())
  110. {
  111. (_Repo as WeekRepository).VerifyWeek(id);
  112. scope.Complete();
  113. return new OkResult();
  114. }
  115. }
  116. [HttpGet("getTenderWeeks")]
  117. public IActionResult GetTenderWeeks()
  118. {
  119. var item = (_Repo as WeekRepository).GetTenderWeeks();
  120. return new OkObjectResult(item);
  121. }
  122. }
  123. }