Ejemplo n.º 1
0
        private async Task InvokeTextPortal(string operation, Stream requestStream, Stream responseStream)
        {
            string requestString;

            using (var reader = new StreamReader(requestStream))
                requestString = await reader.ReadToEndAsync();
            var requestArray  = System.Convert.FromBase64String(requestString);
            var requestBuffer = new MemoryStream(requestArray);

            var           serializer = new MobileFormatter();
            var           result     = new HttpResponse();
            HttpErrorInfo errorData  = null;

            try
            {
                var request = serializer.Deserialize(requestBuffer);
                result = await CallPortal(operation, request);
            }
            catch (Exception ex)
            {
                errorData = new HttpErrorInfo(ex);
            }
            var portalResult = new HttpResponse {
                ErrorData = errorData, GlobalContext = result.GlobalContext, ObjectData = result.ObjectData
            };

            var responseBuffer = new MemoryStream();

            serializer.Serialize(responseBuffer, portalResult);
            responseBuffer.Position = 0;
            using (var writer = new StreamWriter(responseStream))
            {
                await writer.WriteAsync(System.Convert.ToBase64String(responseBuffer.ToArray()));
            }
        }
Ejemplo n.º 2
0
        private async Task <ResponseMessage> InvokePortal(string operation, ByteString requestData)
        {
            var           result    = new HttpResponse();
            HttpErrorInfo errorData = null;

            try
            {
                var request = MobileFormatter.Deserialize(requestData.ToByteArray());
                result = await CallPortal(operation, request);
            }
            catch (Exception ex)
            {
                errorData = new HttpErrorInfo(ex);
            }
            var portalResult = new HttpResponse {
                ErrorData = errorData, GlobalContext = result.GlobalContext, ObjectData = result.ObjectData
            };
            var serializer = new MobileFormatter();

            using var buffer = new MemoryStream();
            serializer.Serialize(buffer, portalResult);
            buffer.Position = 0;
            return(new ResponseMessage {
                Body = ByteString.CopyFrom(buffer.ToArray())
            });
        }
Ejemplo n.º 3
0
        private async Task <byte[]> InvokePortal(string operation, byte[] data)
        {
            var           result    = new HttpResponse();
            HttpErrorInfo errorData = null;

            try
            {
                var buffer = new MemoryStream(data);
                buffer.Position = 0;
                var request = MobileFormatter.Deserialize(buffer.ToArray());
                var portal  = Portal;
                switch (operation)
                {
                case "create":
                    result = await portal.Create((CriteriaRequest)request).ConfigureAwait(false);

                    break;

                case "fetch":
                    result = await portal.Fetch((CriteriaRequest)request).ConfigureAwait(false);

                    break;

                case "update":
                    result = await portal.Update((UpdateRequest)request).ConfigureAwait(false);

                    break;

                case "delete":
                    result = await portal.Delete((CriteriaRequest)request).ConfigureAwait(false);

                    break;

                default:
                    throw new InvalidOperationException(operation);
                }
            }
            catch (Exception ex)
            {
                errorData = new HttpErrorInfo(ex);
            }
            var portalResult = new HttpResponse {
                ErrorData = errorData, GlobalContext = result.GlobalContext, ObjectData = result.ObjectData
            };
            var bytes = MobileFormatter.Serialize(portalResult);

            return(bytes);
        }
Ejemplo n.º 4
0
        private async Task InvokePortal(string operation, Stream requestStream, Stream responseStream)
        {
            var           serializer = new MobileFormatter();
            var           result     = new HttpResponse();
            HttpErrorInfo errorData  = null;

            try
            {
                var request = serializer.Deserialize(requestStream);
                result = await CallPortal(operation, request);
            }
            catch (Exception ex)
            {
                errorData = new HttpErrorInfo(ex);
            }
            var portalResult = new HttpResponse {
                ErrorData = errorData, GlobalContext = result.GlobalContext, ObjectData = result.ObjectData
            };

            serializer.Serialize(responseStream, portalResult);
        }
Ejemplo n.º 5
0
        private async Task <byte[]> InvokePortal(string operation, byte[] data)
        {
            var           result    = new HttpResponse();
            HttpErrorInfo errorData = null;

            try
            {
                var buffer = new MemoryStream(data);
                buffer.Position = 0;
                var request = MobileFormatter.Deserialize(buffer.ToArray());
                result = await CallPortal(operation, request);
            }
            catch (Exception ex)
            {
                errorData = new HttpErrorInfo(ex);
            }
            var portalResult = new HttpResponse {
                ErrorData = errorData, GlobalContext = result.GlobalContext, ObjectData = result.ObjectData
            };
            var bytes = MobileFormatter.Serialize(portalResult);

            return(bytes);
        }
Ejemplo n.º 6
0
        private async Task InvokePortal(string operation, Stream requestStream, Stream responseStream)
        {
            var           serializer = new MobileFormatter();
            var           result     = new HttpResponse();
            HttpErrorInfo errorData  = null;

            Response.Headers.Add("Content-type", "application/octet-stream,text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9");
            Response.Headers.Add("Accept-Encoding", "gzip,deflate");
            try
            {
                var request = serializer.Deserialize(requestStream);
                result = await CallPortal(operation, request);
            }
            catch (Exception ex)
            {
                errorData = new HttpErrorInfo(ex);
            }
            var portalResult = new HttpResponse {
                ErrorData = errorData, GlobalContext = result.GlobalContext, ObjectData = result.ObjectData
            };

            serializer.Serialize(responseStream, portalResult);
        }
Ejemplo n.º 7
0
        private async Task <ResponseMessage> InvokePortal(string operation, ByteString requestData)
        {
            var           result    = new HttpResponse();
            HttpErrorInfo errorData = null;

            try
            {
                var request = SerializationFormatterFactory.GetFormatter().Deserialize(requestData.ToByteArray());
                result = await CallPortal(operation, request);
            }
            catch (Exception ex)
            {
                errorData = new HttpErrorInfo(ex);
            }
            var portalResult = new HttpResponse {
                ErrorData = errorData, GlobalContext = result.GlobalContext, ObjectData = result.ObjectData
            };
            var buffer = SerializationFormatterFactory.GetFormatter().Serialize(portalResult);

            return(new ResponseMessage {
                Body = ByteString.CopyFrom(buffer)
            });
        }
Ejemplo n.º 8
0
 private async Task<byte[]> InvokePortal(string operation, byte[] data)
 {
   var result = new HttpResponse();
   HttpErrorInfo errorData = null;
   try
   {
     var buffer = new MemoryStream(data);
     buffer.Position = 0;
     var request = MobileFormatter.Deserialize(buffer.ToArray());
     var portal = Portal;
     switch (operation)
     {
       case "create":
         result = await portal.Create((CriteriaRequest)request).ConfigureAwait(false);
         break;
       case "fetch":
         result = await portal.Fetch((CriteriaRequest)request).ConfigureAwait(false);
         break;
       case "update":
         result = await portal.Update((UpdateRequest)request).ConfigureAwait(false);
         break;
       case "delete":
         result = await portal.Delete((CriteriaRequest)request).ConfigureAwait(false);
         break;
       default:
         throw new InvalidOperationException(operation);
     }
   }
   catch (Exception ex)
   {
     errorData = new HttpErrorInfo(ex);
   }
   var portalResult = new HttpResponse { ErrorData = errorData, GlobalContext = result.GlobalContext, ObjectData = result.ObjectData };
   var bytes = MobileFormatter.Serialize(portalResult);
   return bytes;
 }