12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using Grpc.Core;
- using Grpc.Extension.Abstract;
- using Microsoft.AspNetCore.Authorization;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using TEAMModelGrpc.Models;
- using TEAMModelOS.Models.SchoolInfo;
- using TEAMModelOS.SDK.DI;
- namespace TEAMModelGrpc.Services
- {
- public class CourseService : IGrpcService
- {
- public AzureCosmosFactory _azureCosmos;
- public CourseService(AzureCosmosFactory azureCosmos)
- {
- _azureCosmos = azureCosmos;
- }
- /// <summary>
- /// 查询课程
- /// </summary>
- /// <param name="request"></param>
- /// <param name="responseStream"></param>
- /// <param name="context"></param>
- /// <returns></returns>
- [Authorize]
- public async Task FindCourseByDict(Dict request, IServerStreamWriter<Course> responseStream, ServerCallContext context)
- {
- Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
- keyValuePairs = request.ToDict();
- List<Course> course = await _azureCosmos.FindByDict<Course>(keyValuePairs);
- course.ForEach(x =>
- {
- responseStream.WriteAsync(x);
- });
- }
- /// <summary>
- /// 保存课程
- /// </summary>
- /// <param name="requestStream"></param>
- /// <param name="responseStream"></param>
- /// <param name="context"></param>
- /// <returns></returns>
- [Authorize]
- public async Task SaveCourse(IAsyncStreamReader<Course> requestStream, IServerStreamWriter<Course> responseStream, ServerCallContext context)
- {
- //Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
- //keyValuePairs = request.ToDict();
- List<Course> knowledges = new List<Course>();
- await foreach (var message in requestStream.ReadAllAsync())
- {
- knowledges.Add(message);
- }
- await _azureCosmos.SaveOrUpdateAll(knowledges);
- knowledges.ForEach(x =>
- {
- responseStream.WriteAsync(x);
- });
- }
- /// <summary>
- /// 删除课程
- /// </summary>
- /// <param name="listPid"></param>
- /// <param name="context"></param>
- /// <returns></returns>
- [Authorize]
- public async Task<ListPid> DeleteCourse(ListPid listPid, ServerCallContext context)
- {
- List<IdPk> idPks = await _azureCosmos.DeleteAll<Course>(listPid.idPks);
- listPid.idPks = idPks;
- return listPid;
- }
- }
- }
|