12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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.SDK.Module.AzureCosmosDBV3;
- using TEAMModelOS.Service.Models.Syllabus;
- using TEAMModelOS.Service.Services.Syllabus.Interface;
- namespace TEAMModelGrpc.Services
- {
- public class VolumeService :IGrpcService
- {
- private readonly IAzureCosmosDBV3Repository azureCosmosDBRepository;
- private IVolumeService volumeService;
- public VolumeService(IAzureCosmosDBV3Repository azureCosmosDBRepository, IVolumeService volumeService)
- {
- this.azureCosmosDBRepository = azureCosmosDBRepository;
- this.volumeService = volumeService;
- }
- /// <summary>
- /// 保存册别
- /// </summary>
- /// <param name="requestStream"></param>
- /// <param name="responseStream"></param>
- /// <param name="context"></param>
- /// <returns></returns>
- [Authorize]
- public async Task SaveOrUpdateVolume(IAsyncStreamReader<SyllabusVolume> requestStream, IServerStreamWriter<SyllabusVolume> responseStream, ServerCallContext context) {
- List<SyllabusVolume> volumes = new List<SyllabusVolume>();
- await foreach (SyllabusVolume syllabusNode in requestStream.ReadAllAsync())
- {
- List<SyllabusVolume> volume = await volumeService.SaveOrUpdateVolume(syllabusNode);
- volumes.AddRange(volume);
- }
- volumes.ForEach(x => {
- responseStream.WriteAsync(x);
- });
- }
- /// <summary>
- /// 查询册别
- /// </summary>
- /// <param name="request"></param>
- /// <param name="responseStream"></param>
- /// <param name="context"></param>
- /// <returns></returns>
- [Authorize]
- public async Task FindVolume(Dict request, IServerStreamWriter<SyllabusVolume> responseStream, ServerCallContext context) {
- Dictionary<string, object> dict = request.ToDict();
- List<SyllabusVolume> syllabusVolumes = await azureCosmosDBRepository.FindByDict<SyllabusVolume>(dict);
- syllabusVolumes.ForEach(x => {
- responseStream.WriteAsync(x);
- });
- }
- }
- }
|