WeatherForecastController.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using Microsoft.AspNetCore.Mvc;
  2. using Microsoft.Extensions.Logging;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Text.Json;
  8. using System.Threading.Tasks;
  9. using TEAMModelOS.Filter;
  10. using TEAMModelOS.SDK.DI;
  11. namespace TEAMModelAPI.Controllers
  12. {
  13. [ApiController]
  14. [Route("weather")]
  15. public class WeatherForecastController : ControllerBase
  16. {
  17. private readonly DingDing _dingDing;
  18. private readonly AzureStorageFactory _azureStorage;
  19. private static readonly string[] Summaries = new[]
  20. {
  21. "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
  22. };
  23. private readonly ILogger<WeatherForecastController> _logger;
  24. public WeatherForecastController(DingDing dingDing, AzureStorageFactory azureStorage, ILogger<WeatherForecastController> logger)
  25. {
  26. _dingDing = dingDing;
  27. _azureStorage = azureStorage;
  28. _logger = logger;
  29. }
  30. [HttpGet]
  31. [ApiToken(Auth ="5")]
  32. public IEnumerable<WeatherForecast> Get()
  33. {
  34. var rng = new Random();
  35. return Enumerable.Range(1, 5).Select(index => new WeatherForecast
  36. {
  37. Date = DateTime.Now.AddDays(index),
  38. TemperatureC = rng.Next(-20, 55),
  39. Summary = Summaries[rng.Next(Summaries.Length)]
  40. })
  41. .ToArray();
  42. }
  43. [HttpGet("aaaa")]
  44. [ApiToken(Auth = "4")]
  45. public IEnumerable<WeatherForecast> Getaaaa()
  46. {
  47. var rng = new Random();
  48. return Enumerable.Range(1, 5).Select(index => new WeatherForecast
  49. {
  50. Date = DateTime.Now.AddDays(index),
  51. TemperatureC = rng.Next(-20, 55),
  52. Summary = Summaries[rng.Next(Summaries.Length)]
  53. })
  54. .ToArray();
  55. }
  56. /// <summary>
  57. /// 删除prefix 不管是内容 模块还是其他试题试卷 评测 问卷投票等都在使用。
  58. ///
  59. /// {"cntr":"","prefix":"res/test"}
  60. /// </summary>
  61. /// <param name="request"></param>
  62. /// <returns></returns>
  63. [HttpPost("delete-prefix")]
  64. public async Task<IActionResult> DeletePrefix(JsonElement json)
  65. {
  66. string blobContainerName = null;
  67. string prefix = null;
  68. if (json.TryGetProperty("cntr", out JsonElement cntr) && cntr.ValueKind.Equals(JsonValueKind.String))
  69. {
  70. blobContainerName = $"{cntr}";
  71. }
  72. if (json.TryGetProperty("prefix", out JsonElement prefixjson) && prefixjson.ValueKind.Equals(JsonValueKind.String))
  73. {
  74. prefix = prefixjson.GetString();
  75. }
  76. if (prefix != null && blobContainerName != null)
  77. {
  78. var list = await _azureStorage.GetBlobContainerClient($"{cntr}").List(prefix);
  79. var status = await _azureStorage.GetBlobServiceClient().DeleteBlobs(_dingDing, blobContainerName, new List<string> { prefix });
  80. string u = "";
  81. string[] uls = System.Web.HttpUtility.UrlDecode($"{prefixjson}", Encoding.UTF8).Split("/");
  82. if (uls != null)
  83. {
  84. u = !string.IsNullOrEmpty(uls[0]) ? uls[0] : uls[1];
  85. }
  86. return Ok(new { list });
  87. }
  88. else
  89. {
  90. return BadRequest();
  91. }
  92. }
  93. }
  94. }