Exemplo n.º 1
0
        protected async Task WriteResponseHeadersAsync(IResponse httpRes, CallContext context)
        {
            var res = (GrpcResponse)httpRes;
            var nonSuccessStatus = res.StatusCode >= 300;

            if (!Feature.DisableResponseHeaders || nonSuccessStatus)
            {
                foreach (var header in Feature.IgnoreResponseHeaders)
                {
                    res.Headers.Remove(header);
                }

                if (res.Headers.Count > 0 || nonSuccessStatus)
                {
                    var headers = new global::Grpc.Core.Metadata();
                    if (nonSuccessStatus)
                    {
                        headers.Add(Keywords.HttpStatus, res.StatusCode.ToString());
                    }

                    foreach (var entry in res.Headers)
                    {
                        headers.Add(entry.Key, entry.Value);
                    }

                    if (nonSuccessStatus)
                    {
                        var status = res.Dto.GetResponseStatus();
                        if (status != null)
                        {
                            headers.Add(Keywords.GrpcResponseStatus,
                                        GrpcMarshaller <ResponseStatus> .Instance.Serializer(status));
                        }

                        var desc = status?.ErrorCode ?? res.StatusDescription ??
                                   status?.Message ?? HttpStatus.GetStatusDescription(res.StatusCode);
                        context.ServerCallContext.Status = feature.ToGrpcStatus?.Invoke(httpRes) ?? ToGrpcStatus(res.StatusCode, desc);
                    }

                    await context.ServerCallContext.WriteResponseHeadersAsync(headers);
                }
            }
        }
Exemplo n.º 2
0
        public void PopulateRequestFromHeaders(object request, global::Grpc.Core.Metadata headers)
        {
            if (headers.Count == 0)
            {
                return;
            }

            var props = TypeProperties.Get(request.GetType());
            var to    = new Dictionary <string, object>();

            foreach (var entry in headers)
            {
                var key = entry.Key.IndexOf('.') >= 0 && (
                    entry.Key.StartsWith("query.") ||
                    entry.Key.StartsWith("form.") ||
                    entry.Key.StartsWith("cookie.") ||
                    entry.Key.StartsWith("header."))
                    ? entry.Key.RightPart('.')
                    : entry.Key;

                if (!props.PropertyMap.TryGetValue(key, out var accessor))
                {
                    continue;
                }

                var propName = accessor.PropertyInfo.Name;
                to[propName] = !entry.Key.EndsWith("-bin")
                    ? (object)entry.Value
                    : entry.ValueBytes;
            }

            if (to.Count > 0)
            {
                to.PopulateInstance(request);
            }
        }
Exemplo n.º 3
0
 public virtual global::Grpc.Core.AsyncUnaryCall <global::Bond.Grpc.IMessage <Result> > fooAsync(Param request, global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
 {
     return(fooAsync(global::Bond.Grpc.Message.From(request), new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
 }
Exemplo n.º 4
0
            public virtual global::Grpc.Core.AsyncUnaryCall <global::Bond.Grpc.IMessage <BasicTypes> > cqAsync(global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
            {
                var message = global::Bond.Grpc.Message.Void;

                return(cqAsync(message, new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
            }
Exemplo n.º 5
0
            public virtual global::Grpc.Core.AsyncUnaryCall <global::Bond.Grpc.IMessage <dummy> > foo44Async(dummy request, global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
            {
                var message = global::Bond.Grpc.Message.From(request);

                return(foo44Async(message, new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
            }
Exemplo n.º 6
0
            public virtual void foo15Async(global::tests2.OtherBasicTypes request, global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
            {
                var message = global::Bond.Grpc.Message.From(request);

                foo15Async(message, new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken));
            }
Exemplo n.º 7
0
            public virtual void foo12_implAsync(global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
            {
                var message = global::Bond.Grpc.Message.Void;

                foo12_implAsync(message, new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken));
            }
Exemplo n.º 8
0
            public virtual global::Grpc.Core.AsyncUnaryCall <global::Bond.Grpc.IMessage <AddOrUpdateEntityResponse> > AddModuleAsync(Module request, global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
            {
                var message = global::Bond.Grpc.Message.From(request);

                return(AddModuleAsync(message, new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
            }
Exemplo n.º 9
0
 public virtual void foo14Async(dummy request, global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
 {
     foo14Async(global::Bond.Grpc.Message.From(request), new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken));
 }
Exemplo n.º 10
0
 public virtual global::Grpc.Core.AsyncUnaryCall <global::Bond.Grpc.IMessage <global::Bond.Void> > methodAsync(global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
 {
     return(methodAsync(global::Bond.Grpc.Message.Void, new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
 }
Exemplo n.º 11
0
 public virtual global::Grpc.Core.AsyncDuplexStreamingCall <global::Bond.Grpc.IMessage <T>, global::Bond.Grpc.IMessage <T> > DuplexStreamingAsync(global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
 {
     return(DuplexStreamingAsync(new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
 }
Exemplo n.º 12
0
 public virtual global::Grpc.Core.AsyncServerStreamingCall <global::Bond.Grpc.IMessage <T> > ServerStreamingAsync(BasicTypes request, global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
 {
     return(ServerStreamingAsync(global::Bond.Grpc.Message.From(request), new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
 }
Exemplo n.º 13
0
 public virtual global::Grpc.Core.AsyncClientStreamingCall <global::Bond.Grpc.IMessage <BasicTypes>, global::Bond.Grpc.IMessage <BasicTypes> > foo34Async(global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
 {
     return(foo34Async(new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
 }
Exemplo n.º 14
0
            public virtual global::Grpc.Core.AsyncUnaryCall <global::Bond.Grpc.IMessage <global::Bond.Void> > ConsumesGeneric2Async(SomeBox <List <int> > request, global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
            {
                var message = global::Bond.Grpc.Message.From(request);

                return(ConsumesGeneric2Async(message, new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
            }
Exemplo n.º 15
0
            public virtual global::Grpc.Core.AsyncUnaryCall <global::Bond.Grpc.IMessage <PermissionCheckResponse> > HasPermissionAsync(PermissionCheckRequest request, global::Grpc.Core.Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
            {
                var message = global::Bond.Grpc.Message.From(request);

                return(HasPermissionAsync(message, new global::Grpc.Core.CallOptions(headers, deadline, cancellationToken)));
            }