123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using Google.Protobuf;
- using Grpc.Core;
- using Grpc.Extension.Abstract;
- using Microsoft.AspNetCore.Authorization;
- using System;
- using System.Collections.Concurrent;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using TEAMModelGrpc.Models;
- using TEAMModelOS.SDK.Helper.Common.JsonHelper;
- using TEAMModelOS.SDK.DI;
- using TEAMModelOS.Service.Models;
- using TEAMModelOS.Service.Services.Interface;
- namespace TEAMModelGrpc.Services
- {
-
- public class KnowledgeService : IGrpcService
- {
- private AzureCosmosFactory cosmosDBV3Repository;
- private IKnowledgeService knowledgeService;
- public KnowledgeService(AzureCosmosFactory cosmosDBV3Repository, IKnowledgeService knowledgeService)
- {
- this.cosmosDBV3Repository = cosmosDBV3Repository;
- this.knowledgeService = knowledgeService;
- }
- /// <summary>
- /// 查询知识点
- /// </summary>
- /// <param name="request"></param>
- /// <param name="responseStream"></param>
- /// <param name="context"></param>
- /// <returns></returns>
- [Authorize]
- public async Task FinKnowledge(Dict request, IServerStreamWriter<Knowledge> responseStream, ServerCallContext context)
- {
- Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
- keyValuePairs = request.ToDict();
- List<Knowledge> knowledges = await cosmosDBV3Repository.FindByDict<Knowledge>(keyValuePairs);
- knowledges.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 SaveKnowledge(IAsyncStreamReader<Knowledge> requestStream, IServerStreamWriter<Knowledge> responseStream, ServerCallContext context)
- {
- //Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
- //keyValuePairs = request.ToDict();
- List<Knowledge> knowledges = new List<Knowledge>();
- await foreach (var message in requestStream.ReadAllAsync())
- {
- knowledges.Add(message);
- }
- await knowledgeService.SaveOrUpdateKnowledge(knowledges);
- knowledges.ForEach(x =>
- {
- responseStream.WriteAsync(x);
- });
- }
- /// <summary>
- /// 删除知识点
- /// </summary>
- /// <param name="listPid"></param>
- /// <param name="context"></param>
- /// <returns></returns>
- [Authorize]
- public async Task<ListPid> DeleteKnowledge(ListPid listPid, ServerCallContext context)
- {
- List<IdPk> idPks = await knowledgeService.DeleteKnowledge(listPid.idPks);//await cosmosDBV3Repository.DeleteAll<Knowledge>(listPid.idPks);
- listPid.idPks = idPks;
- return listPid;
- }
- }
- }
|