CourseController.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Http;
  6. using Microsoft.AspNetCore.Mvc;
  7. using Org.BouncyCastle.Ocsp;
  8. using TEAMModelOS.SDK.Context.Exception;
  9. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
  10. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
  11. using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
  12. using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
  13. using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
  14. using TEAMModelOS.Service.Models.Courses;
  15. namespace TEAMModelOS.Controllers.Courses
  16. {
  17. [Route("api/[controller]")]
  18. [ApiController]
  19. public class CourseController : BaseController
  20. {
  21. private IAzureCosmosDBV3Repository _cosmos;
  22. public CourseController(IAzureCosmosDBV3Repository cosmos)
  23. {
  24. _cosmos = cosmos;
  25. }
  26. [HttpPost("SaveOrUpdateCourse")]
  27. public async Task<BaseJosnRPCResponse> SaveOrUpdateCourse(JosnRPCRequest<List<Course>> request)
  28. {
  29. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  30. List<Course> courses = request.@params;
  31. List<Course> response = await _cosmos.SaveOrUpdateAll<Course>(courses);
  32. if (response.Count > 0) builder.Data(response).Extend(new Dictionary<string, object> { { "count", response.Count } });
  33. else {
  34. throw new BizException("失败", ResponseCode.FAILED);
  35. };
  36. return builder.build();
  37. }
  38. [HttpPost("FindCourse")]
  39. public async Task<BaseJosnRPCResponse> FindCourseByDict(JosnRPCRequest<Dictionary<string, object>> request)
  40. {
  41. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  42. List<Course> data = new List<Course>();
  43. if (request.@params.IsNotEmpty())
  44. {
  45. data = await _cosmos.FindByDict<Course>(request.@params);
  46. }
  47. else
  48. {
  49. throw new BizException("参数异常", ResponseCode.PARAMS_ERROR);
  50. }
  51. return builder.Data(data).Extend(new Dictionary<string, object> { { "count", data.Count } }).build();
  52. }
  53. [HttpPost("DeleteCourse")]
  54. public async Task<BaseJosnRPCResponse> DeleteCourse (JosnRPCRequest<Dictionary<string, object>> request)
  55. {
  56. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  57. if (request.@params.Keys.Count > 0)
  58. {
  59. List<Course> Course = await _cosmos.FindByDict<Course>(request.@params);
  60. await _cosmos.DeleteAll<Course>(Course);
  61. if (Course.Count > 0)
  62. {
  63. builder.Data("删除成功");
  64. }
  65. else
  66. {
  67. throw new BizException("删除失败", ResponseCode.FAILED);
  68. }
  69. }
  70. else {
  71. throw new BizException("参数未定义", ResponseCode.FAILED);
  72. }
  73. return builder.build();
  74. }
  75. }
  76. }