HistoryController.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. using LotteryWebApp.Common;
  2. using LotteryWebApp.Extensions;
  3. using LotteryWebApp.Models;
  4. using LotteryWebApp.Service;
  5. using Microsoft.AspNetCore.Hosting;
  6. using Microsoft.AspNetCore.Mvc;
  7. using Microsoft.Extensions.Configuration;
  8. using System;
  9. using System.Collections.Generic;
  10. namespace LotteryWebApp.Controllers
  11. {
  12. [AutoValidateAntiforgeryToken]
  13. public class HistoryController : BaseController
  14. {
  15. private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));
  16. IConfiguration configuration;
  17. private readonly IWebHostEnvironment webHostEnvironment;
  18. APIFunctions api = new APIFunctions();
  19. public HistoryController(IConfiguration _configuration, IWebHostEnvironment hostEnvironment)
  20. {
  21. configuration = _configuration;
  22. webHostEnvironment = hostEnvironment;
  23. }
  24. public String GetParameter(String key)
  25. {
  26. return configuration.GetSection(key).Value;
  27. }
  28. public IActionResult Index(string winType, string gameId)
  29. {
  30. if (!CheckAuthToken())
  31. {
  32. return Redirect(GetParameter(Constants.SUB_DOMAIN) + "/Account/Login");
  33. }
  34. HttpContext.Session.SetComplexData("navigator", Constants.MY_TICKET_NAVIGATOR);
  35. History_ViewModel model = new History_ViewModel();
  36. try
  37. {
  38. String msisdn = HttpContext.Session.GetComplexData<String>("msisdn");
  39. String token = HttpContext.Session.GetComplexData<String>("token");
  40. model.gameId = gameId != null ? gameId : Constants.GameId.Direct4D;
  41. model.winType = winType != null ? winType : Constants.NOT_DRAW_CODE;
  42. }
  43. catch (Exception ex)
  44. {
  45. log.Error(ex);
  46. }
  47. return View(model);
  48. }
  49. [ValidateAntiForgeryToken]
  50. public IActionResult UserTicket(string winType, string gameId, string seqpage)
  51. {
  52. if (!CheckAuthToken())
  53. {
  54. return Redirect(GetParameter(Constants.SUB_DOMAIN) + "/Account/Login");
  55. }
  56. HistoryUserTicket_ViewModel model = new HistoryUserTicket_ViewModel();
  57. model.tickets = new List<Ticket>();
  58. try
  59. {
  60. String msisdn = HttpContext.Session.GetComplexData<String>("msisdn");
  61. String token = HttpContext.Session.GetComplexData<String>("token");
  62. model.gameId = gameId != null ? gameId : Constants.GameId.Direct4D;
  63. model.winType = winType != null ? winType : Constants.NOT_DRAW_CODE;
  64. HttpContext.Session.SetComplexData("gameId", model.gameId);
  65. UserTicketRequest userTicketRequest = new UserTicketRequest();
  66. userTicketRequest.msisdn = msisdn;
  67. userTicketRequest.token = token;
  68. userTicketRequest.gameId = ConvertToListGameID(model.gameId);
  69. userTicketRequest.type = model.winType;
  70. userTicketRequest.id = Constants.ALL_DATA;
  71. userTicketRequest.rowsOnPage = Constants.ROW_ON_PAGE;
  72. userTicketRequest.seqPage = seqpage != null ? seqpage : "1";
  73. userTicketRequest.order = Constants.DECS;
  74. UserTicketResponse userTicketResponse = api.GetUserTicketApi(configuration, userTicketRequest);
  75. if (userTicketResponse.responseCode == Code.SUCCESS)
  76. {
  77. if (userTicketResponse.listTicket != null)
  78. {
  79. model.tickets = userTicketResponse.listTicket;
  80. // append
  81. List<Ticket> listTickets = HttpContext.Session.GetComplexData<List<Ticket>>("listTicket");
  82. if(listTickets != null && listTickets.Count > 0)
  83. {
  84. listTickets.AddRange(userTicketResponse.listTicket);
  85. }
  86. else
  87. {
  88. listTickets = userTicketResponse.listTicket;
  89. }
  90. HttpContext.Session.SetComplexData("listTicket", listTickets);
  91. HttpContext.Session.SetComplexData("winType", model.winType);
  92. }
  93. }
  94. }
  95. catch (Exception ex)
  96. {
  97. log.Error(ex);
  98. }
  99. return PartialView("UserTicket", model);
  100. }
  101. [ValidateAntiForgeryToken]
  102. public IActionResult TicketDetail(string id)
  103. {
  104. if (!CheckAuthToken())
  105. {
  106. return Redirect(GetParameter(Constants.SUB_DOMAIN) + "/Account/Login");
  107. }
  108. HistoryTicketDetail_ViewModel model = new HistoryTicketDetail_ViewModel();
  109. try
  110. {
  111. String msisdn = HttpContext.Session.GetComplexData<String>("msisdn");
  112. String token = HttpContext.Session.GetComplexData<String>("token");
  113. String winType = HttpContext.Session.GetComplexData<String>("winType");
  114. String gameId = HttpContext.Session.GetComplexData<String>("gameId");
  115. List<Ticket> tickets = HttpContext.Session.GetComplexData<List<Ticket>>("listTicket");
  116. Ticket ticket = tickets.Find(c => c.id == id);
  117. if (ticket != null)
  118. {
  119. model.ticket = ticket;
  120. }
  121. model.winType = winType;
  122. model.msisdn = msisdn;
  123. model.type = gameId;
  124. }
  125. catch (Exception ex)
  126. {
  127. log.Error(ex);
  128. }
  129. return PartialView("TicketDetail", model);
  130. }
  131. }
  132. }