浏览代码

处理GrpcDocker部署

CrazyIter 5 年之前
父节点
当前提交
d273cfcf24

+ 22 - 0
TEAMModelGrpc/Dockerfile

@@ -0,0 +1,22 @@
+#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
+
+FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
+WORKDIR /app
+EXPOSE 80
+EXPOSE 443
+
+FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
+WORKDIR /src
+COPY ["TEAMModelGrpc/TEAMModelGrpc.csproj", "TEAMModelGrpc/"]
+RUN dotnet restore "TEAMModelGrpc/TEAMModelGrpc.csproj"
+COPY . .
+WORKDIR "/src/TEAMModelGrpc"
+RUN dotnet build "TEAMModelGrpc.csproj" -c Release -o /app/build
+
+FROM build AS publish
+RUN dotnet publish "TEAMModelGrpc.csproj" -c Release -o /app/publish
+
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "TEAMModelGrpc.dll"]

+ 10 - 5
TEAMModelGrpc/Properties/launchSettings.json

@@ -1,12 +1,17 @@
-{
+{
   "profiles": {
     "TEAMModelGrpc": {
       "commandName": "Project",
-      "launchBrowser": false,
-      "applicationUrl": "https://localhost:5001",
       "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": "Development"
-      }
+      },
+      "applicationUrl": "https://localhost:5001"
+    },
+    "Docker": {
+      "commandName": "Docker",
+      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
+      "publishAllPorts": true,
+      "useSSL": true
     }
   }
-}
+}

+ 1 - 1
TEAMModelOS.Grpc/Protos/greet.proto

@@ -1,6 +1,6 @@
 syntax = "proto3";
 
-option csharp_namespace = "TEAMModelOS.Grpc";
+option csharp_namespace = "TEAMModelGrpc";
 
 package greet;
 

+ 2 - 3
TEAMModelOS.Grpc/Services/GreeterService.cs

@@ -4,8 +4,8 @@ using System.Linq;
 using System.Threading.Tasks;
 using Grpc.Core;
 using Microsoft.Extensions.Logging;
-using TEAMModelOS.Grpc;
-namespace TEAMModelOS.Grpc
+
+namespace TEAMModelGrpc
 {
     public class GreeterService : Greeter.GreeterBase
     {
@@ -23,5 +23,4 @@ namespace TEAMModelOS.Grpc
             });
         }
     }
-
 }

+ 0 - 517
TEAMModelGrpc/TEAMModelOS.GRPC.xml

@@ -1,517 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>TEAMModelGrpc</name>
-    </assembly>
-    <members>
-        <member name="T:TEAMModelGrpc.Models.Dict">
-            <summary>
-            请求参数Dict
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.Dict.NMap">
-            <summary>
-            数字Dict
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.Dict.SMap">
-            <summary>
-            字符串Dict
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.Dict.BMap">
-            <summary>
-            布尔Dict
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.Dict.LSMap">
-            <summary>
-            字符串ListMap
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.Dict.LNMap">
-            <summary>
-            数字ListMap
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.Dict.LBMap">
-            <summary>
-            Byte ListMap
-            </summary>
-        </member>
-        <member name="T:TEAMModelGrpc.Models.LSMap">
-            <summary>
-            字符串ListMap
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.LSMap.Key">
-            <summary>
-            数字Dict
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.LSMap.Value">
-            <summary>
-            字符串数组
-            </summary>
-        </member>
-        <member name="T:TEAMModelGrpc.Models.LNMap">
-            <summary>
-            数字ListMap
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.LNMap.Key">
-            <summary>
-            Key
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.LNMap.Value">
-            <summary>
-            数字数组
-            </summary>
-        </member>
-        <member name="T:TEAMModelGrpc.Models.LBMap">
-            <summary>
-            Byte[] Map
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.LBMap.Key">
-            <summary>
-            Key
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.LBMap.Value">
-            <summary>
-            byte数组
-            </summary>
-        </member>
-        <member name="T:TEAMModelGrpc.Models.DictExt">
-            <summary>
-             Dict扩展
-            </summary>
-        </member>
-        <member name="M:TEAMModelGrpc.Models.DictExt.ToDict(TEAMModelGrpc.Models.Dict)">
-            <summary>
-             Dict扩展方法
-            </summary>
-            <param name="dict"></param>
-            <returns></returns>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.ListPid.ids">
-            <summary>
-            key 是pk ,value 是id
-            </summary>
-        </member>
-        <member name="P:TEAMModelGrpc.Models.ListPid.idPks">
-            <summary>
-            返回 删除结果
-            </summary>
-        </member>
-        <member name="T:TEAMModelGrpc.Services.KnowledgeService">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="T:TMDGrpc.CourseService.CourseServiceReflection">
-            <summary>Holder for reflection information generated from Protos/CourseService.proto</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.CourseServiceReflection.Descriptor">
-            <summary>File descriptor for Protos/CourseService.proto</summary>
-        </member>
-        <member name="T:TMDGrpc.CourseService.Dict">
-             <summary>
-            请求参数Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Dict.NMapFieldNumber">
-            <summary>Field number for the "NMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.Dict.NMap">
-             <summary>
-            数字Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Dict.SMapFieldNumber">
-            <summary>Field number for the "SMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.Dict.SMap">
-             <summary>
-            字符串Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Dict.BMapFieldNumber">
-            <summary>Field number for the "BMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.Dict.BMap">
-             <summary>
-            布尔Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Dict.LSMapFieldNumber">
-            <summary>Field number for the "LSMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.Dict.LSMap">
-             <summary>
-            字符串ListMap
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Dict.LNMapFieldNumber">
-            <summary>Field number for the "LNMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.Dict.LNMap">
-             <summary>
-            数字ListMap
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Dict.LBMapFieldNumber">
-            <summary>Field number for the "LBMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.Dict.LBMap">
-             <summary>
-            Byte ListMap
-             </summary>
-        </member>
-        <member name="T:TMDGrpc.CourseService.LBMap">
-             <summary>
-            Byte[] Map
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.LBMap.KeyFieldNumber">
-            <summary>Field number for the "Key" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.LBMap.Key">
-             <summary>
-            Key
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.LBMap.ValueFieldNumber">
-            <summary>Field number for the "Value" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.LBMap.Value">
-             <summary>
-            byte数组
-             </summary>
-        </member>
-        <member name="T:TMDGrpc.CourseService.LNMap">
-             <summary>
-            数字ListMap
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.LNMap.KeyFieldNumber">
-            <summary>Field number for the "Key" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.LNMap.Key">
-             <summary>
-            Key
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.LNMap.ValueFieldNumber">
-            <summary>Field number for the "Value" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.LNMap.Value">
-             <summary>
-            数字数组
-             </summary>
-        </member>
-        <member name="T:TMDGrpc.CourseService.LSMap">
-             <summary>
-            字符串ListMap
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.LSMap.KeyFieldNumber">
-            <summary>Field number for the "Key" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.LSMap.Key">
-             <summary>
-            数字Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.LSMap.ValueFieldNumber">
-            <summary>Field number for the "Value" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.LSMap.Value">
-             <summary>
-            字符串数组
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.BaseInfo.CourseCodeFieldNumber">
-            <summary>Field number for the "courseCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.BaseInfo.CourseNameFieldNumber">
-            <summary>Field number for the "courseName" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.BaseInfo.PeriodCodeFieldNumber">
-            <summary>Field number for the "periodCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.BaseInfo.GradeCodeFieldNumber">
-            <summary>Field number for the "gradeCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.BaseInfo.SubjectCodeFieldNumber">
-            <summary>Field number for the "subjectCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.BaseInfo.NoticeFieldNumber">
-            <summary>Field number for the "notice" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Course.ScopeCodeFieldNumber">
-            <summary>Field number for the "scopeCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Course.BaseInfoFieldNumber">
-            <summary>Field number for the "baseInfo" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Course.AssistTeacherFieldNumber">
-            <summary>Field number for the "assistTeacher" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Course.CourseTimeFieldNumber">
-            <summary>Field number for the "courseTime" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Course.ClassroomFieldNumber">
-            <summary>Field number for the "classroom" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Course.SyllabusFieldNumber">
-            <summary>Field number for the "syllabus" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.Course.IdFieldNumber">
-            <summary>Field number for the "id" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.CourseTime.FrequencyCodeFieldNumber">
-            <summary>Field number for the "frequencyCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.CourseTime.BeginTimeFieldNumber">
-            <summary>Field number for the "beginTime" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.CourseTime.EndTimeFieldNumber">
-            <summary>Field number for the "endTime" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.CourseTime.ClassroomCodeFieldNumber">
-            <summary>Field number for the "classroomCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.CourseService.CourseTime.FrequencyNameFieldNumber">
-            <summary>Field number for the "frequencyName" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.CourseService.CourseService.Descriptor">
-            <summary>Service descriptor</summary>
-        </member>
-        <member name="T:TMDGrpc.CourseService.CourseService.CourseServiceBase">
-            <summary>Base class for server-side implementations of CourseService</summary>
-        </member>
-        <member name="M:TMDGrpc.CourseService.CourseService.BindService(TMDGrpc.CourseService.CourseService.CourseServiceBase)">
-            <summary>Creates service definition that can be registered with a server</summary>
-            <param name="serviceImpl">An object implementing the server-side handling logic.</param>
-        </member>
-        <member name="M:TMDGrpc.CourseService.CourseService.BindService(Grpc.Core.ServiceBinderBase,TMDGrpc.CourseService.CourseService.CourseServiceBase)">
-            <summary>Register service method with a service binder with or without implementation. Useful when customizing the  service binding logic.
-            Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
-            <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
-            <param name="serviceImpl">An object implementing the server-side handling logic.</param>
-        </member>
-        <member name="T:TMDGrpc.KnowledgeService.KnowledgeServiceReflection">
-            <summary>Holder for reflection information generated from Protos/KnowledgeService.proto</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.KnowledgeServiceReflection.Descriptor">
-            <summary>File descriptor for Protos/KnowledgeService.proto</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.HttpStatusCode.Zero">
-            <summary>
-            proto3 requires a zero value as the first item (it can be named anything)
-            </summary>
-        </member>
-        <member name="T:TMDGrpc.KnowledgeService.Dict">
-             <summary>
-            请求参数Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Dict.NMapFieldNumber">
-            <summary>Field number for the "NMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.Dict.NMap">
-             <summary>
-            数字Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Dict.SMapFieldNumber">
-            <summary>Field number for the "SMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.Dict.SMap">
-             <summary>
-            字符串Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Dict.BMapFieldNumber">
-            <summary>Field number for the "BMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.Dict.BMap">
-             <summary>
-            布尔Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Dict.LSMapFieldNumber">
-            <summary>Field number for the "LSMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.Dict.LSMap">
-             <summary>
-            字符串ListMap
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Dict.LNMapFieldNumber">
-            <summary>Field number for the "LNMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.Dict.LNMap">
-             <summary>
-            数字ListMap
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Dict.LBMapFieldNumber">
-            <summary>Field number for the "LBMap" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.Dict.LBMap">
-             <summary>
-            Byte ListMap
-             </summary>
-        </member>
-        <member name="T:TMDGrpc.KnowledgeService.LBMap">
-             <summary>
-            Byte[] Map
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.LBMap.KeyFieldNumber">
-            <summary>Field number for the "Key" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.LBMap.Key">
-             <summary>
-            Key
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.LBMap.ValueFieldNumber">
-            <summary>Field number for the "Value" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.LBMap.Value">
-             <summary>
-            byte数组
-             </summary>
-        </member>
-        <member name="T:TMDGrpc.KnowledgeService.LNMap">
-             <summary>
-            数字ListMap
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.LNMap.KeyFieldNumber">
-            <summary>Field number for the "Key" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.LNMap.Key">
-             <summary>
-            Key
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.LNMap.ValueFieldNumber">
-            <summary>Field number for the "Value" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.LNMap.Value">
-             <summary>
-            数字数组
-             </summary>
-        </member>
-        <member name="T:TMDGrpc.KnowledgeService.LSMap">
-             <summary>
-            字符串ListMap
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.LSMap.KeyFieldNumber">
-            <summary>Field number for the "Key" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.LSMap.Key">
-             <summary>
-            数字Dict
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.LSMap.ValueFieldNumber">
-            <summary>Field number for the "Value" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.LSMap.Value">
-             <summary>
-            字符串数组
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.IdFieldNumber">
-            <summary>Field number for the "id" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.TypeFieldNumber">
-            <summary>Field number for the "type" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.NameFieldNumber">
-            <summary>Field number for the "name" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.AliasFieldNumber">
-            <summary>Field number for the "alias" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.SubjectCodeFieldNumber">
-            <summary>Field number for the "subjectCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.ScopeCodeFieldNumber">
-            <summary>Field number for the "scopeCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.OrderFieldNumber">
-            <summary>Field number for the "order" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.StatusFieldNumber">
-            <summary>Field number for the "status" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.PointsFieldNumber">
-            <summary>Field number for the "points" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.KnowledgeIdFieldNumber">
-            <summary>Field number for the "knowledgeId" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.SourceFieldNumber">
-            <summary>Field number for the "source" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.Knowledge.PeriodFieldNumber">
-            <summary>Field number for the "period" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.IdPk.IdFieldNumber">
-            <summary>Field number for the "id" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.IdPk.PkFieldNumber">
-            <summary>Field number for the "pk" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.IdPk.StatusCodeFieldNumber">
-            <summary>Field number for the "StatusCode" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.KeyValuePair_String_String.KeyFieldNumber">
-            <summary>Field number for the "Key" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.KeyValuePair_String_String.ValueFieldNumber">
-            <summary>Field number for the "Value" field.</summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.ListPid.IdsFieldNumber">
-            <summary>Field number for the "ids" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.ListPid.Ids">
-             <summary>
-            key 是pk ,value 是id
-             </summary>
-        </member>
-        <member name="F:TMDGrpc.KnowledgeService.ListPid.IdPksFieldNumber">
-            <summary>Field number for the "idPks" field.</summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.ListPid.IdPks">
-             <summary>
-            返回 删除结果
-             </summary>
-        </member>
-        <member name="P:TMDGrpc.KnowledgeService.KnowledgeService.Descriptor">
-            <summary>Service descriptor</summary>
-        </member>
-        <member name="T:TMDGrpc.KnowledgeService.KnowledgeService.KnowledgeServiceBase">
-            <summary>Base class for server-side implementations of KnowledgeService</summary>
-        </member>
-        <member name="M:TMDGrpc.KnowledgeService.KnowledgeService.BindService(TMDGrpc.KnowledgeService.KnowledgeService.KnowledgeServiceBase)">
-            <summary>Creates service definition that can be registered with a server</summary>
-            <param name="serviceImpl">An object implementing the server-side handling logic.</param>
-        </member>
-        <member name="M:TMDGrpc.KnowledgeService.KnowledgeService.BindService(Grpc.Core.ServiceBinderBase,TMDGrpc.KnowledgeService.KnowledgeService.KnowledgeServiceBase)">
-            <summary>Register service method with a service binder with or without implementation. Useful when customizing the  service binding logic.
-            Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
-            <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
-            <param name="serviceImpl">An object implementing the server-side handling logic.</param>
-        </member>
-    </members>
-</doc>

+ 0 - 37
TEAMModelOS.Grpc/Models/Dtos/RequestDict.cs

@@ -1,37 +0,0 @@
-using ProtoBuf;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-
-namespace TEAMModelOS.GRPC.Models.Dtos
-{
-    [ProtoContract]
-    public class RequestDict
-    {
-        /// <summary>
-        /// 查询dict
-        /// </summary>
-        [ProtoMember(1)]
-        public Dictionary<string, int> dict { get; set; }
-        [ProtoMember(2)]
-        public Dictionary<string, Cv> cv { get; set; }
-        [ProtoMember(3)]
-        public List<Cv> lsit { get; set; }
-    }
-    [ProtoContract]
-    public class Cv
-    {
-        /// <summary>
-        /// 查询dict
-        /// </summary>
-        [ProtoMember(1)]
-        public string code { get; set; }
-
-        /// <summary>
-        /// 查询dict
-        /// </summary>
-        [ProtoMember(2)]
-        public string val { get; set; }
-    }
-}

+ 0 - 16
TEAMModelOS.Grpc/Models/Dtos/ResponseList.cs

@@ -1,16 +0,0 @@
-//using ProtoBuf;
-//using System;
-//using System.Collections.Generic;
-//using System.Linq;
-//using System.Threading.Tasks;
-
-//namespace TEAMModelOS.GRPC.Models.Dtos
-//{
-//    [ProtoContract]
-//    public class ResponseList<T>
-//    {
-
-//        [ProtoMember(1)]
-//        public List<T> response { get; set; }
-//    }
-//}

+ 0 - 27
TEAMModelOS.Grpc/Program.cs

@@ -1,27 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.Extensions.Hosting;
-
-namespace TEAMModelOS.Grpc
-{
-    public class Program
-    {
-        public static void Main(string[] args)
-        {
-            CreateHostBuilder(args).Build().Run();
-        }
-
-        // Additional configuration is required to successfully run gRPC on macOS.
-        // For instructions on how to configure Kestrel and gRPC clients on macOS, visit https://go.microsoft.com/fwlink/?linkid=2099682
-        public static IHostBuilder CreateHostBuilder(string[] args) =>
-            Host.CreateDefaultBuilder(args)
-                .ConfigureWebHostDefaults(webBuilder =>
-                {
-                    webBuilder.UseStartup<Startup>();
-                });
-    }
-}

+ 0 - 12
TEAMModelOS.Grpc/Properties/launchSettings.json

@@ -1,12 +0,0 @@
-{
-  "profiles": {
-    "TEAMModelOS.Grpc": {
-      "commandName": "Project",
-      "launchBrowser": false,
-      "applicationUrl": "https://localhost:5001",
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development"
-      }
-    }
-  }
-}

+ 0 - 40
TEAMModelOS.Grpc/Protos/KnowledgeService.proto

@@ -1,40 +0,0 @@
-syntax = "proto3";
-option csharp_namespace = "MathGrpc.KnowledgeService";
-package math;
-
-
-service KnowledgeService {
-   rpc FinKnowledge(RequestDict) returns(stream Knowledge);
-
-}
-
-
-
-message Cv {
-   //查询dict
-   string code = 1;
-   //查询dict
-   string val = 2;
-}
-
-message RequestDict {
-   //查询dict
-   map<string,int32> dict = 1;
-   map<string,Cv> cv = 2;
-   repeated Cv lsit = 3;
-}
-
-message Knowledge {
-   string id = 1;
-   int32 type = 2;
-   string name = 3;
-   string alias = 4;
-   string subjectCode = 5;
-   string scopeCode = 6;
-   int32 order = 7;
-   int32 status = 8;
-   repeated string points = 9;
-   string knowledgeId = 10;
-   int32 source = 11;
-   string period = 12;
-}

+ 0 - 73
TEAMModelOS.Grpc/Services/Syllabus/KnowledgeService.cs

@@ -1,73 +0,0 @@
-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 TEAMModelOS.SDK.Helper.Common.JsonHelper;
-using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
-using TEAMModelOS.Service.Models.Syllabus;
-using TEAMModelOS.GRPC.Models.Dtos;
-
-
-namespace TEAMModelOS.GRPC.Services.Syllabus
-{
-    /// <summary>
-    /// 
-    /// </summary>
-    public class KnowledgeService : IGrpcService
-    {
-        public IAzureCosmosDBV3Repository cosmosDBV3Repository;
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="cosmosDBV3Repository"></param>
-        public KnowledgeService(IAzureCosmosDBV3Repository cosmosDBV3Repository)
-        {
-            this.cosmosDBV3Repository = cosmosDBV3Repository;
-        }
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="request"></param>
-        /// <param name="responseStream"></param>
-        /// <param name="context"></param>
-        /// <returns></returns>
-        //[Authorize]
-        public async Task FinKnowledge(RequestDict request, IServerStreamWriter<Knowledge> responseStream, ServerCallContext context)
-        {
-            string a = request.dict.ToJson();
-            Dictionary<string, object> keyValuePairs = JsonNetHelper.FromJson<Dictionary<string, object>>(a);
-            List<Knowledge> knowledges = await cosmosDBV3Repository.FindByDict<Knowledge>(keyValuePairs);
-         
-            knowledges.ForEach(x =>
-            {
-                responseStream.WriteAsync(x);
-            });
-            //ResponseList<Knowledge> listKnowledge = new ResponseList<Knowledge>();
-            //listKnowledge.response = knowledges;
-            //return await Task.FromResult(listKnowledge);
-        }
-        //[Authorize]
-        //public async Task FinKnowledge(string request, IServerStreamWriter<Family> responseStream, ServerCallContext context)
-        //{
-        //    Console.WriteLine("gRPC ");
-        //    string a = request.ToJson();
-        //    Dictionary<string, object> keyValuePairs = JsonNetHelper.FromJson<Dictionary<string, object>>(request);
-        //    List<Family> knowledges = await cosmosDBV3Repository.FindByDict<Family>(keyValuePairs);
-        //    ListKnowledge listKnowledge = new ListKnowledge();
-        //    listKnowledge.knowledges = knowledges;
-        //    knowledges.ForEach(x =>
-        //    {
-        //        responseStream.WriteAsync(x);
-        //    });
-        //    //foreach (Family family in knowledges)
-        //    //{
-        //    //    await responseStream.WriteAsync(family);
-        //    //}
-        //    //return await Task.FromResult(listKnowledge);
-        //}
-
-    }
-}

+ 0 - 83
TEAMModelOS.Grpc/Startup.cs

@@ -1,83 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Linq;
-using System.Text.Json;
-using System.Threading.Tasks;
-using Grpc.Extension.AspNetCore;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-using TEAMModelOS.GRPC.Services.Syllabus;
-using TEAMModelOS.SDK.Context.Configuration;
-using TEAMModelOS.SDK.Module.AzureBlob.Configuration;
-using TEAMModelOS.SDK.Module.AzureCosmosDB.Configuration;
-using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
-using TEAMModelOS.SDK.Module.AzureTable.Implements;
-using TEAMModelOS.SDK.Module.AzureTable.Interfaces;
-
-namespace TEAMModelOS.Grpc
-{
-    public class Startup
-    {
-        private IConfiguration _conf;
-        public Startup(IConfiguration conf, IWebHostEnvironment env)
-        {
-            _conf = conf;
-            BaseConfigModel.SetBaseConfig(_conf, env.ContentRootPath, env.WebRootPath);
-        }
-        // This method gets called by the runtime. Use this method to add services to the container.
-        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
-        public void ConfigureServices(IServiceCollection services)
-        {
-            services.AddGrpc();
-            //添加Grpc扩展
-            services.AddGrpcExtensions(_conf);
-            // Table配置
-            services.AddScoped<IAzureTableDBRepository, AzureTableDBRepository>();
-            //使用Blob配置
-            services.AddAzureBlobStorage().AddConnection(_conf.GetSection("Azure:Blob").Get<AzureBlobOptions>());
-            //使用CosmosDB
-            services.AddAzureCosmosDBV3().AddCosmosDBV3Connection(_conf.GetSection("Azure:CosmosDB").Get<AzureCosmosDBOptions>())
-                .AddCosmosSerializer(new SystemTextJsonCosmosSerializer(new JsonSerializerOptions() { IgnoreNullValues = true }));
-        
-            //注入CSRedis
-            var csredis = new CSRedis.CSRedisClient(_conf.GetSection("Azure:Redis:ConnectionString").Get<string>());
-            RedisHelper.Initialization(csredis);
-        }
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IAzureCosmosDBV3Repository cosmosDBV3Repository)
-        {
-            if (env.IsDevelopment())
-            {
-                app.UseDeveloperExceptionPage();
-            }
-            cosmosDBV3Repository.InitializeDatabase();
-
-            app.UseRouting();
-
-            app.UseEndpoints(endpoints =>
-            {
-                endpoints.MapGrpcService<GreeterService>();
-
-                endpoints.MapGet("/", async context =>
-                {
-                    await context.Response.WriteAsync("Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909");
-                });
-            });
-            //CodeFirst的Grpc(会自动扫描TStartup所在程序集下的IGrpcSerivce)
-            app.UseGrpcExtensions<KnowledgeService>(options =>
-            {
-                //CodeFirst配制
-                options.GlobalPackage = "math";
-                options.ProtoNameSpace = "MathGrpc";
-            })
-            //CodeFirst生成proto
-            .UseProtoGenerate("protos", false);
-        }
-    }
-}

+ 0 - 94
TEAMModelOS.Grpc/TEAMModelOS.GRPC.xml

@@ -1,94 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>TEAMModelOS.Grpc</name>
-    </assembly>
-    <members>
-        <member name="P:TEAMModelOS.GRPC.Models.Dtos.RequestDict.dict">
-            <summary>
-            查询dict
-            </summary>
-        </member>
-        <member name="P:TEAMModelOS.GRPC.Models.Dtos.Cv.code">
-            <summary>
-            查询dict
-            </summary>
-        </member>
-        <member name="P:TEAMModelOS.GRPC.Models.Dtos.Cv.val">
-            <summary>
-            查询dict
-            </summary>
-        </member>
-        <member name="T:TEAMModelOS.GRPC.Services.Syllabus.KnowledgeService">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:TEAMModelOS.GRPC.Services.Syllabus.KnowledgeService.#ctor(TEAMModelOS.SDK.Module.AzureCosmosDBV3.IAzureCosmosDBV3Repository)">
-            <summary>
-            
-            </summary>
-            <param name="cosmosDBV3Repository"></param>
-        </member>
-        <member name="M:TEAMModelOS.GRPC.Services.Syllabus.KnowledgeService.FinKnowledge(TEAMModelOS.GRPC.Models.Dtos.RequestDict,Grpc.Core.IServerStreamWriter{TEAMModelOS.Service.Models.Syllabus.Knowledge},Grpc.Core.ServerCallContext)">
-            <summary>
-            
-            </summary>
-            <param name="request"></param>
-            <param name="responseStream"></param>
-            <param name="context"></param>
-            <returns></returns>
-        </member>
-        <member name="T:TEAMModelOS.Grpc.GreetReflection">
-            <summary>Holder for reflection information generated from Protos/greet.proto</summary>
-        </member>
-        <member name="P:TEAMModelOS.Grpc.GreetReflection.Descriptor">
-            <summary>File descriptor for Protos/greet.proto</summary>
-        </member>
-        <member name="T:TEAMModelOS.Grpc.HelloRequest">
-            <summary>
-            The request message containing the user's name.
-            </summary>
-        </member>
-        <member name="F:TEAMModelOS.Grpc.HelloRequest.NameFieldNumber">
-            <summary>Field number for the "name" field.</summary>
-        </member>
-        <member name="T:TEAMModelOS.Grpc.HelloReply">
-            <summary>
-            The response message containing the greetings.
-            </summary>
-        </member>
-        <member name="F:TEAMModelOS.Grpc.HelloReply.MessageFieldNumber">
-            <summary>Field number for the "message" field.</summary>
-        </member>
-        <member name="T:TEAMModelOS.Grpc.Greeter">
-            <summary>
-            The greeting service definition.
-            </summary>
-        </member>
-        <member name="P:TEAMModelOS.Grpc.Greeter.Descriptor">
-            <summary>Service descriptor</summary>
-        </member>
-        <member name="T:TEAMModelOS.Grpc.Greeter.GreeterBase">
-            <summary>Base class for server-side implementations of Greeter</summary>
-        </member>
-        <member name="M:TEAMModelOS.Grpc.Greeter.GreeterBase.SayHello(TEAMModelOS.Grpc.HelloRequest,Grpc.Core.ServerCallContext)">
-            <summary>
-            Sends a greeting
-            </summary>
-            <param name="request">The request received from the client.</param>
-            <param name="context">The context of the server-side call handler being invoked.</param>
-            <returns>The response to send back to the client (wrapped by a task).</returns>
-        </member>
-        <member name="M:TEAMModelOS.Grpc.Greeter.BindService(TEAMModelOS.Grpc.Greeter.GreeterBase)">
-            <summary>Creates service definition that can be registered with a server</summary>
-            <param name="serviceImpl">An object implementing the server-side handling logic.</param>
-        </member>
-        <member name="M:TEAMModelOS.Grpc.Greeter.BindService(Grpc.Core.ServiceBinderBase,TEAMModelOS.Grpc.Greeter.GreeterBase)">
-            <summary>Register service method with a service binder with or without implementation. Useful when customizing the  service binding logic.
-            Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary>
-            <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param>
-            <param name="serviceImpl">An object implementing the server-side handling logic.</param>
-        </member>
-    </members>
-</doc>

+ 0 - 31
TEAMModelOS.Grpc/TEAMModelOS.Grpc.csproj

@@ -1,31 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <DocumentationFile>TEAMModelOS.GRPC.xml</DocumentationFile>
-  </PropertyGroup>
- 
-  <ItemGroup>
-    <PackageReference Include="Grpc.AspNetCore" Version="2.24.0" />
-    <PackageReference Include="Grpc.Tools" Version="2.24.0">
-      <PrivateAssets>all</PrivateAssets>
-      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-    </PackageReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Protobuf Include="Protos\greet.proto" GrpcServices="Server" />
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="Services\Core\" />
-    <Folder Include="Services\Courses\" />
-    <Folder Include="Services\Exam\" />
-    <Folder Include="Services\Learn\" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\TEAMModelOS.SDK\TEAMModelOS.SDK.csproj" />
-    <ProjectReference Include="..\TEAMModelOS.Service\TEAMModelOS.Service.csproj" />
-  </ItemGroup>
-</Project>

+ 0 - 10
TEAMModelOS.Grpc/appsettings.Development.json

@@ -1,10 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Debug",
-      "System": "Information",
-      "Grpc": "Information",
-      "Microsoft": "Information"
-    }
-  }
-}

+ 0 - 58
TEAMModelOS.Grpc/appsettings.json

@@ -1,58 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "urls": "https://*:5000",
-  "GrpcServer": {
-    //用于grpc启动后注册到服务发现的ip地址段
-    "ServiceAddress": "192.168.*.*:",
-    //是否启用服务注册和服务发现,默认是true
-    "EnableDiscovery": false,
-    //服务发现服务器地址
-    "DiscoveryUrl": "http://106.12.23.251:8500",
-    //注册到服务发现的服务名称
-    "DiscoveryServiceName": "TMDOSgRPC",
-    //服务发现主动TTL的时间(秒)
-    "DiscoveryTTLInterval": 10,
-    //注册到服务发现的服务Tag
-    "DiscoveryServiceTags": "v-1.0.0.1",
-    //默认错误码
-    "DefaultErrorCode": 4300000,
-    //Jaeger配制(OpenTracing)
-    "Jaeger": {
-      //是否启用Jaeger,默认false
-      "Enable": false,
-      "AgentIp": "192.168.8.11",
-      "AgentPort": 5775
-    }
-  },
-  "Azure": {
-    "Table": {
-      "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=teammodelostest;AccountKey=QB/zYHHCAtZfl9tf4emL1Y9ZXGc6fqZ+nNbCxIHM70HnziC8dMdEAu7+Pa4mbKLlbswV90wWHAF3nMjrKB54Lw==;EndpointSuffix=core.chinacloudapi.cn"
-    },
-    "Blob": {
-      "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=teammodelstorage;AccountKey=Yq7D4dE6cFuer2d2UZIccTA/i0c3sJ/6ITc8tNOyW+K5f+/lWw9GCos3Mxhj47PyWQgDL8YbVD63B9XcGtrMxQ==;EndpointSuffix=core.chinacloudapi.cn",
-      "Container": "teammodelos"
-    },
-    "CosmosDB": {
-      "ConnectionString": "https://192.168.8.128:8081",
-      "ConnectionKey": "ddwAeGSf8Lsf1kxPXmdqnyzzi3CkJ0KW2BTPZ7Zq1N7qbJic5j7AaQ+WbF86F3rnzuDgGM1yg8O7BUFo93iA8w==",
-      "Database": "TEAMModelOS",
-      "CollectionThroughput": 400,
-      "ScanModel": [ "TEAMModelOS.Service" ]
-    },
-    "Redis": {
-      "ConnectionString": "106.12.23.251:6379,password=habook,ssl=false,abortConnect=False,defaultDatabase=13,writeBuffer=10240,poolsize=50,prefix=habook:"
-    }
-  },
-  "AllowedHosts": "*",
-  "Kestrel": {
-    "EndpointDefaults": {
-      "Protocols": "Http2"
-    }
-  }
-}

+ 5 - 5
TEAMModelOS.sln

@@ -9,7 +9,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS", "TEAMModelOS\
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.Service", "TEAMModelOS.Service\TEAMModelOS.Service.csproj", "{04508AB6-CD54-46B4-B96D-9672EB66761B}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelGrpc", "TEAMModelGrpc\TEAMModelGrpc.csproj", "{7E4E8BEA-D487-45B5-A46D-16610B14CBD2}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TEAMModelGrpc", "TEAMModelGrpc\TEAMModelGrpc.csproj", "{8834944C-B83D-4236-BA2F-6A6964E0BC4A}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -29,10 +29,10 @@ Global
 		{04508AB6-CD54-46B4-B96D-9672EB66761B}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{04508AB6-CD54-46B4-B96D-9672EB66761B}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{04508AB6-CD54-46B4-B96D-9672EB66761B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7E4E8BEA-D487-45B5-A46D-16610B14CBD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7E4E8BEA-D487-45B5-A46D-16610B14CBD2}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7E4E8BEA-D487-45B5-A46D-16610B14CBD2}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7E4E8BEA-D487-45B5-A46D-16610B14CBD2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8834944C-B83D-4236-BA2F-6A6964E0BC4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8834944C-B83D-4236-BA2F-6A6964E0BC4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8834944C-B83D-4236-BA2F-6A6964E0BC4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8834944C-B83D-4236-BA2F-6A6964E0BC4A}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE