DaysController.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. using Microsoft.AspNetCore.Mvc;
  2. using economy.Helpers;
  3. using economy.Models;
  4. using economy.Models.Days;
  5. using Anniversary = economy.Models.Days.Anniversary;
  6. using Holiday = economy.Models.Days.Holiday;
  7. using Seasonal = economy.Models.Days.Seasonal;
  8. using Sundry = economy.Models.Days.Sundry;
  9. namespace economy.Controllers
  10. {
  11. public class DaysController : Controller
  12. {
  13. private readonly DataGoKR _dataGoKR;
  14. private Dictionary<string, string> _queryString;
  15. public DaysController(DataGoKR dataGoKR)
  16. {
  17. _dataGoKR = dataGoKR;
  18. _queryString = [];
  19. }
  20. // 공휴일/국경일
  21. public async Task<IActionResult> Holiday(Holiday.Request request)
  22. {
  23. if (!ModelState.IsValid)
  24. {
  25. return BadRequest(ModelState);
  26. }
  27. DaysModel holiday = new DaysModel(_dataGoKR);
  28. Holiday.Response itemList = await holiday.GetHoliday(request);
  29. if (itemList.Body is not null)
  30. {
  31. itemList.Body.Items.ItemList = itemList.Body.Items.ItemList.Select((row, index) =>
  32. {
  33. row.Num += (index + 1);
  34. row.LocDate = Common.StringToDateFormat(row.LocDate);
  35. return row;
  36. }).ToList();
  37. }
  38. var viewModel = new View<Holiday.Request, Holiday.Response>();
  39. viewModel.Request = request;
  40. viewModel.Response = itemList;
  41. // 출력 연도 지정
  42. ViewData["years"] = Enumerable.Range(2000, DateTime.Now.Year - 2000 + 1).Reverse();
  43. ViewData["type"] = "Holiday";
  44. return View(viewModel);
  45. }
  46. // 기념일
  47. public async Task<IActionResult> Anniversary(Anniversary.Request request)
  48. {
  49. if (!ModelState.IsValid)
  50. {
  51. return BadRequest(ModelState);
  52. }
  53. DaysModel anniversary = new DaysModel(_dataGoKR);
  54. Anniversary.Response itemList = await anniversary.GetAnniversary(request);
  55. if (itemList.Body is not null)
  56. {
  57. itemList.Body.Items.ItemList = itemList.Body.Items.ItemList.Select((row, index) =>
  58. {
  59. row.Num += (index + 1);
  60. row.LocDate = Common.StringToDateFormat(row.LocDate);
  61. return row;
  62. }).ToList();
  63. }
  64. var viewModel = new View<Anniversary.Request, Anniversary.Response>();
  65. viewModel.Request = request;
  66. viewModel.Response = itemList;
  67. // 출력 연도 지정
  68. ViewData["years"] = Enumerable.Range(2000, DateTime.Now.Year - 2000 + 1).Reverse();
  69. ViewData["type"] = "Anniversary";
  70. return View(viewModel);
  71. }
  72. // 24절기
  73. public async Task<IActionResult> Seasonal(Seasonal.Request request)
  74. {
  75. if (!ModelState.IsValid)
  76. {
  77. return BadRequest(ModelState);
  78. }
  79. DaysModel seasonal = new DaysModel(_dataGoKR);
  80. Seasonal.Response itemList = await seasonal.GetSeasonal(request);
  81. if (itemList.Body is not null)
  82. {
  83. itemList.Body.Items.ItemList = itemList.Body.Items.ItemList.Select((row, index) =>
  84. {
  85. row.Num += (index + 1);
  86. row.LocDate = Common.StringToDateFormat(row.LocDate);
  87. return row;
  88. }).ToList();
  89. }
  90. var viewModel = new View<Seasonal.Request, Seasonal.Response>();
  91. viewModel.Request = request;
  92. viewModel.Response = itemList;
  93. // 출력 연도 지정
  94. ViewData["years"] = Enumerable.Range(2000, DateTime.Now.Year - 2000 + 1).Reverse();
  95. ViewData["type"] = "Seasonal";
  96. return View(viewModel);
  97. }
  98. // 잡절
  99. public async Task<IActionResult> Sundry(Sundry.Request request)
  100. {
  101. if (!ModelState.IsValid)
  102. {
  103. return BadRequest(ModelState);
  104. }
  105. DaysModel sundry = new DaysModel(_dataGoKR);
  106. Sundry.Response itemList = await sundry.GetSundry(request);
  107. if (itemList.Body is not null)
  108. {
  109. itemList.Body.Items.ItemList = itemList.Body.Items.ItemList.Select((row, index) =>
  110. {
  111. row.Num += (index + 1);
  112. row.LocDate = Common.StringToDateFormat(row.LocDate);
  113. return row;
  114. }).ToList();
  115. }
  116. var viewModel = new View<Sundry.Request, Sundry.Response>();
  117. viewModel.Request = request;
  118. viewModel.Response = itemList;
  119. // 출력 연도 지정
  120. ViewData["years"] = Enumerable.Range(2000, DateTime.Now.Year - 2000 + 1).Reverse();
  121. ViewData["type"] = "Sundry";
  122. return View(viewModel);
  123. }
  124. }
  125. }