Пример #1
0
        /// <summary>
        /// Send request
        /// </summary>
        /// <param name="context">work context</param>
        /// <param name="requestMessage">request message</param>
        /// <param name="token">cancellation tokens</param>
        /// <returns>state of HTTP response</returns>
        public async Task <HttpResponseMessage> SendAsync(IWorkContext context, HttpRequestMessage requestMessage, CancellationToken?token = null)
        {
            Verify.IsNotNull(nameof(context), context);
            Verify.IsNotNull(nameof(requestMessage), requestMessage);

            context = context.WithMethodName();
            token   = token ?? CancellationToken.None;

            HttpResponseMessage response;

            try
            {
                using (var scope = new TimerScope(
                           () => NetEventSource.Log.ActivityStart(context),
                           x => NetEventSource.Log.ActivityStop(context, durationMs: x)))
                {
                    response = await _client.SendAsync(requestMessage, (CancellationToken)token);
                }
            }
            catch (Exception ex)
            {
                NetEventSource.Log.Error(context, nameof(SendAsync), ex);
                throw;
            }

            return(response);
        }
Пример #2
0
        public async Task Invoke(HttpContext httpContext)
        {
            IWorkContext workContext = httpContext.Items.Get <IWorkContext>() ?? WorkContext.Empty;
            var          builder     = new WorkContextBuilder(workContext);

            builder.SetContainer(_serviceConfiguration.Container);

            foreach (var item in httpContext.Request.Headers)
            {
                var property = _headerFactory.Create(item.Key, item.Value);
                if (property != null)
                {
                    builder.Properties.Set(property, derivedType: property.GetType());
                }
            }

            // Correlation Vector
            var headerCv = builder.Properties.Get <CvHeader>();

            if (headerCv != null)
            {
                builder.Cv = new CorrelationVector(headerCv.Value);
            }

            workContext = builder.Build();

            Uri url            = new Uri(httpContext.Request.GetEncodedUrl());
            var requestContext = new RequestContext(workContext, httpContext.Request.Method, url);

            httpContext.Items.Set(requestContext);

            using (var scope = new TimerScope(
                       () => _webLogEvent.HttpRequestStart(workContext, requestContext),
                       (x) => _webLogEvent.HttpRequestStop(workContext, requestContext, x)))
            {
                await _next.Invoke(httpContext);

                if (httpContext?.Response?.StatusCode != null)
                {
                    AspMvcEventSource.Log.Verbose(workContext, $"REST response result: {httpContext.Response.StatusCode}");
                }
            }
        }
Пример #3
0
        public void Render()
        {
            int px, py;

            MouseInScreen(out px, out py);

            Debug.WriteLine("=== Render");

            HandleResize();

            renderer.Global.Floats("add_color").Set(0.0f, 0.0f, 0.0f);
            renderer.Global.Floats("alpha").Set(1.0f);
            renderer.Global.Sync();

            // \todo LineRenderer should have Clear()
            if (lineRenderer != null)
            {
                lineRenderer.Begin();
                lineRenderer.End();
            }

            if (true)
            {
                #region Id
                if (
                    (selectionManager != null) &&
                    (RuntimeConfiguration.disableReadPixels == false)
                    )
                {
                    if (Configuration.idBuffer && (idRenderer != null))
                    {
                        using (var t = new TimerScope(timers.ID))
                        {
                            idRenderer.Render(px, py);
                            selectionManager.ProcessIdBuffer(idRenderer.Hover, px, py);
                        }
                    }

                    selectionManager.Update(px, py);
                }
                #endregion
                #region Shadowmaps
                if (sceneManager.UpdateShadowMap && (RenderStack.Graphics.Configuration.useGl1 == false))
                {
                    using (var t = new TimerScope(timers.Shadow))
                    {
                        shadowRenderer.UpdateShadowMaps();
                    }
                }
                #endregion
                #region CurveTool RenderT
                if ((curveTool != null) && curveTool.Enabled)
                {
                    if (RenderStack.Graphics.Configuration.useGl1 == false)
                    {
                        curveTool.RenderT(px, py, sceneManager.Camera);
                    }
                    curveTool.CheckForUpdates();
                }
                #endregion
                #region Main scene mono/stereo
                using (var t = new TimerScope(timers.Render3D))
                {
                    renderer.PartialGLStateResetToDefaults();
                    if (RenderStack.Graphics.Configuration.useGl1 == false)
                    {
                        renderer.SetTexture("t_shadowmap", shadowRenderer.ShadowMap);
                    }

                    StereoMode mode = (userInterfaceManager != null) ? userInterfaceManager.CurrentStereoMode : null;
                    if ((mode != null) && (mode.Program != null) && (mode.Program.Valid == true))
                    {
                        stereoscopicRenderer.Render(mode);
                    }
                    else
                    {
                        renderer.Requested.Viewport = windowViewport;
                        renderer.Requested.Camera   = sceneManager.Camera;
                        renderer.Requested.Viewport = windowViewport;
                        if (RenderStack.Graphics.Configuration.canUseFramebufferObject)
                        {
                            GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0);
                        }
                        mainSceneRenderer.Render(0);
                    }
                }
                #endregion
                #region voxelTest
                if (Configuration.voxelTest)
                {
                    voxelEditor.RenderCubes(px, py, sceneManager.Camera);
                }
                #endregion
            }
            else
            {
                #region Alternative path without normal 3d scene
                // path without normal 3d scene
                renderer.Requested.Viewport = windowViewport;
                renderer.Requested.Camera   = sceneManager.Camera;
                renderer.Requested.Viewport = windowViewport;
                if (RenderStack.Graphics.Configuration.canUseFramebufferObject)
                {
                    GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0);
                }
                renderer.RenderCurrentClear();
                renderer.ApplyViewport();
                #endregion
            }

            renderer.Requested.Viewport = windowViewport;
            renderer.Requested.Camera   = sceneManager.Camera;
            renderer.Requested.Viewport = windowViewport;
            renderer.ApplyViewport();

            if (RuntimeConfiguration.debugInfo && Configuration.graphicalUserInterface)
            {
                using (var t = new TimerScope(timers.GUI))
                {
                    userInterfaceManager.Render();
                }
            }

            window.SwapBuffers();
        }