Пример #1
0
        public FileStreamResult Index(string uid, string path)
        {
            LogRequest(HttpContext);

            var            req     = HttpContext.Request;
            Sync           sync    = new Sync(uid);
            RequestEnvelop request = new RequestEnvelop
            {
                Uid       = uid,
                RequestId = sync.RequestId,
                Request   = new FwdRequest
                {
                    RequestId   = sync.RequestId,
                    Path        = path,
                    Method      = req.Method,
                    ContentType = req.ContentType,
                    Body        = req.Body.AsString()
                }
            };

            foreach (var kvp in req.Cookies)
            {
                request.Request.Cookies[kvp.Key] = kvp.Value;
            }

            foreach (var kvp in req.Headers)
            {
                if (!request.Request.Headers.ContainsKey(kvp.Key))
                {
                    request.Request.Headers[kvp.Key] = new FwdRequest.HeaderValues();
                }

                foreach (string item in kvp.Value)
                {
                    request.Request.Headers[kvp.Key].Add(item);
                }
            }

            _messagingService.SendMessage(uid, request.Request);

            ResponseEnvelop  response = sync.GetResponse();
            FileStreamResult result   = new FileStreamResult(response.ResponseStream, response.ContentType);

            return(result);
        }
Пример #2
0
        ResponseEnvelop apiRequest(string apiEndPoint, RequestEnvelop requestEnvelop)
        {
            requestEnvelop.Direction = Direction.Request;
            requestEnvelop.RpcId     = 7309341774315520108;

            requestEnvelop.Latitude  = m_coordLatitude;
            requestEnvelop.Longitude = m_coordLongitude;
            requestEnvelop.Altitude  = m_coordAltitude;

            requestEnvelop.Unknown12 = 989;
            requestEnvelop.Auth      = new RequestEnvelop.Types.AuthInfo()
            {
                Provider = (m_authType == AuthenticationService.AuthenticationType.Google) ? "google" : "ptc",
                Token    = new RequestEnvelop.Types.AuthInfo.Types.JWT()
                {
                    Contents  = m_accessToken,
                    Unknown13 = 59
                }
            };

            var memoryStream = new System.IO.MemoryStream();
            var outStream    = new CodedOutputStream(memoryStream, false);

            requestEnvelop.WriteTo(outStream);
            outStream.Flush();
            memoryStream.Position = 0;

            var memoryReader = new System.IO.BinaryReader(memoryStream);

            byte[] data = memoryReader.ReadBytes((int)memoryStream.Length);


            data = HttpHelper.Post(apiEndPoint, data);

            var responseEnvelop = new ResponseEnvelop();

            var messageParser = new MessageParser <ResponseEnvelop>(() => { return(new ResponseEnvelop()); });

            responseEnvelop = messageParser.ParseFrom(data);

            return(responseEnvelop);
        }
Пример #3
0
        public StatusCodeResult ClientResponse(string uid, string requestId)
        {
            var sync = Sync.GetSync(uid, requestId);

            if (sync != null)
            {
                string          code        = Request.Headers["statusCode"].ToString();
                HttpStatusCode  statusCode  = (HttpStatusCode)Enum.Parse(typeof(HttpStatusCode), code);
                ResponseEnvelop responseEnv = new ResponseEnvelop
                {
                    ResponseStream = Request.Body,
                    ContentType    = Request.ContentType,
                    StatusCode     = statusCode
                };

                sync.Complete(responseEnv);

                return(new StatusCodeResult((int)HttpStatusCode.OK));
            }
            else
            {
                return(new StatusCodeResult((int)HttpStatusCode.NotFound));
            }
        }
Пример #4
0
 public bool Complete(ResponseEnvelop response)
 {
     Response = response;
     return(_mse.Set());
 }