Function1.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.IO;
  3. using System.Threading.Tasks;
  4. using Microsoft.AspNetCore.Mvc;
  5. using Microsoft.AspNetCore.Http;
  6. using Microsoft.Extensions.Logging;
  7. using Newtonsoft.Json;
  8. using Microsoft.Azure.Functions.Worker;
  9. using Microsoft.Azure.Functions.Worker.Http;
  10. using System.Collections.Generic;
  11. using System.Net;
  12. using TEAMModelOS.SDK.DI;
  13. using TEAMModelOS.SDK.Models;
  14. using TEAMModelOS.SDK.Extension;
  15. using System.Text.Json;
  16. namespace FunctionApp1
  17. {
  18. public class Function1
  19. {
  20. private readonly AzureCosmosFactory _azureCosmos;
  21. public Function1(AzureCosmosFactory azureCosmos) {
  22. _azureCosmos = azureCosmos;
  23. }
  24. [Function("Common")]
  25. public async Task Common([CosmosDBTriggerAttribute(
  26. databaseName: "TEAMModelOS",
  27. containerName: "Common",
  28. Connection = "Azure:Cosmos:ConnectionString",
  29. LeaseContainerName = "leases",
  30. LeaseContainerPrefix = "TEAMModelOS",
  31. CreateLeaseContainerIfNotExists =true)]string data, ILogger log)
  32. {
  33. try {
  34. var teacher = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<Teacher>("1595321354", new Azure.Cosmos.PartitionKey("Base"));
  35. Console.WriteLine(teacher.ToJsonString());
  36. Console.WriteLine(data);
  37. } catch (Exception ex) {
  38. Console.WriteLine($"{ex.Message}{ex.StackTrace}");
  39. }
  40. }
  41. [Function("GroupChange")]
  42. public async Task GroupChangeFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "group-change", Connection = "Azure:ServiceBus:ConnectionString")] string msg) {
  43. var teacher = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<Teacher>("1595321354", new Azure.Cosmos.PartitionKey("Base"));
  44. }
  45. [Function("Function1")]
  46. public async Task<HttpResponseData> Run(
  47. [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestData req,
  48. FunctionContext context)
  49. {
  50. string name = req.ReadAsString();
  51. string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
  52. dynamic data = JsonConvert.DeserializeObject(requestBody);
  53. name = name ?? data?.name;
  54. string responseMessage = string.IsNullOrEmpty(name)
  55. ? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
  56. : $"Hello, {name}. This HTTP triggered function executed successfully.";
  57. var response= req.CreateResponse(HttpStatusCode.OK);
  58. //response.Headers.Add("Content-Type", "application/json; charset=utf-8");
  59. Teacher teacher = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<Teacher>("1595321354", new Azure.Cosmos.PartitionKey("Base"));
  60. await response.WriteAsJsonAsync(teacher);
  61. return response;
  62. }
  63. }
  64. }