WeatherForecastController.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using Microsoft.AspNetCore.Mvc;
  2. using Microsoft.Azure.Cosmos;
  3. using System.Net;
  4. using System.Text.Json;
  5. using TEAMModelOS.SDK.DI;
  6. using TEAMModelOS.SDK.Extension;
  7. namespace AzureCosmosDBEmulator.Controllers
  8. {
  9. [ApiController]
  10. [Route("[controller]")]
  11. public class WeatherForecastController : ControllerBase
  12. {
  13. private readonly AzureCosmosFactory _azureCosmos;
  14. private static readonly string[] Summaries = new[]
  15. {
  16. "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
  17. };
  18. private readonly ILogger<WeatherForecastController> _logger;
  19. public WeatherForecastController(ILogger<WeatherForecastController> logger, AzureCosmosFactory azureCosmos)
  20. {
  21. _logger = logger;
  22. _azureCosmos = azureCosmos;
  23. }
  24. [HttpGet]
  25. public async Task<IActionResult> Get()
  26. {
  27. //https://cosmosdb.teammodel.cn/_explorer/index.html
  28. //var result= await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<dynamic>("select value c from c where 1=1");
  29. //return Ok(new { result.list });
  30. CosmosClient client = null ;
  31. Database database = null;
  32. Container container = null ;
  33. try
  34. {
  35. CosmosClientOptions options = new()
  36. {
  37. HttpClientFactory = () => new HttpClient(new HttpClientHandler()
  38. {
  39. ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
  40. }),
  41. ConnectionMode = ConnectionMode.Gateway,
  42. };
  43. client = new CosmosClient("AccountEndpoint=https://163.228.141.122:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==",
  44. options);
  45. database = client.GetDatabase(Constant.TEAMModelOS);
  46. // await database.CreateContainerIfNotExistsAsync(new ContainerProperties() { Id="School", PartitionKeyPath="/code"});
  47. container=database.GetContainer(Constant.Common);
  48. }
  49. catch (Exception ex) {
  50. Console.WriteLine(ex);
  51. }
  52. try
  53. {
  54. var items = container.GetItemQueryStreamIterator(
  55. queryText: "select value c from c where 1=1", continuationToken: null,
  56. requestOptions: null);
  57. while (items.HasMoreResults)
  58. {
  59. var response = await items.ReadNextAsync();
  60. if (response.Content!=null)
  61. {
  62. return Ok(new {json= JsonDocument.Parse(response.Content).RootElement });
  63. }
  64. }
  65. }
  66. catch (Exception ex)
  67. {
  68. Console.WriteLine(ex);
  69. }
  70. return Ok();
  71. }
  72. }
  73. }