BizRoomController.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Microsoft.Extensions.Configuration;
  4. using Microsoft.Extensions.Options;
  5. using System.Text.Json;
  6. using System.Threading.Tasks;
  7. using TEAMModelOS.Filter;
  8. using TEAMModelOS.Models;
  9. using TEAMModelOS.SDK.DI;
  10. using TEAMModelOS.SDK.Extension;
  11. namespace TEAMModelOS.Controllers
  12. {
  13. [Route("business")]
  14. [ApiController]
  15. public class BizRoomController : ControllerBase
  16. {
  17. private AzureCosmosFactory _azureCosmos;
  18. private readonly DingDing _dingDing;
  19. private readonly Option _option;
  20. private readonly AzureServiceBusFactory _serviceBus;
  21. private readonly AzureStorageFactory _azureStorage;
  22. public IConfiguration _configuration { get; set; }
  23. public BizRoomController(AzureCosmosFactory azureCosmos, DingDing dingDing, IOptionsSnapshot<Option> option, AzureServiceBusFactory serviceBus, AzureStorageFactory azureStorage, IConfiguration configuration)
  24. {
  25. _azureCosmos = azureCosmos;
  26. _dingDing = dingDing;
  27. _option = option?.Value;
  28. _serviceBus = serviceBus;
  29. _configuration = configuration;
  30. _azureStorage = azureStorage;
  31. }
  32. /// <summary>
  33. /// 物理教室列表
  34. /// </summary>
  35. /// <param name="json"></param>
  36. /// <returns></returns>
  37. [ProducesDefaultResponseType]
  38. [HttpPost("get-room-list")]
  39. [ApiToken(Auth = "1401", Name = "物理教室列表",TName = "取得實體教室清單", EName = "Physical Classroom List", RWN = "R", Limit = false)]
  40. public async Task<IActionResult> GetRoomList(JsonElement json)
  41. {
  42. var (id, school) = HttpContext.GetApiTokenInfo();
  43. var responseData = await OpenApiService.GetRoomList(_azureCosmos, _dingDing, id, school, json);
  44. return Ok(new { responseData });
  45. }
  46. /// <summary>
  47. /// 物理教室详细
  48. /// </summary>
  49. /// <param name="json"></param>
  50. /// <returns></returns>
  51. [ProducesDefaultResponseType]
  52. [HttpPost("get-room-info")]
  53. [ApiToken(Auth = "1402", Name = "物理教室详细",TName = "取得實體教室詳細資訊", EName = "Physical Classroom Details", RWN = "R", Limit = false)]
  54. public async Task<IActionResult> GetRoomInfo(JsonElement json)
  55. {
  56. var (id, school) = HttpContext.GetApiTokenInfo();
  57. if (!json.TryGetProperty("roomId", out JsonElement roomId)) return BadRequest();
  58. var responseData = await OpenApiService.GetRoomInfo(_azureCosmos, _dingDing, id, school, json);
  59. return Ok(new { responseData });
  60. }
  61. }
  62. }