Example #1
0
        private void RenderDetailsPage(IMLoggerViewOptions options, HttpContext context)
        {
            var parts = context.Request.Path.Value.Split('/');
            var id    = Guid.Empty;

            if (!Guid.TryParse(parts[parts.Length - 1], out id))
            {
                context.Response.StatusCode = 400;
                //await context.Response.WriteAsync("Invalid Id");
                return;
            }
            var model = new IMDetailsPageModel()
            {
                Activity = _store.GetActivities().Where(a => a.Id == id).FirstOrDefault(),
                Options  = options
            };

            if (model.Activity == null)
            {
                model.Activity = _store.GetActivities().FirstOrDefault();
                if (model.Activity.Root == null)
                {
                    model.Activity.Root = new IMLoggerScopeNode()
                    {
                        StartTime = DateTimeOffset.UtcNow,
                        State     = new object(),
                        Name      = "no name"
                    };
                }
            }
            var detailsPage = new DetailsPageBuilder(model);

            detailsPage.Execute(context);
        }
Example #2
0
        private void RenderMainLogPage(IMLoggerViewOptions options, HttpContext context)
        {
            var activities = _store.GetActivities()
                             .Where(it => it.Root != null && HasAnyRelevantMessage(it.Root, _options));
            var model = new IMLogPageModel()
            {
                Activities = activities,
                Options    = options,
                Path       = _options.Path
            };
            var logPage = new LogPageBuilder(model);

            logPage.Execute(context);
        }
Example #3
0
        private async Task <Tuple <IMLoggerViewOptions, bool> > ParseParams(HttpContext context)
        {
            var options = new IMLoggerViewOptions()
            {
                MinLevel   = LogLevel.Debug,
                NamePrefix = string.Empty
            };
            var isRedirect = false;

            IFormCollection form = null;

            if (context.Request.HasFormContentType)
            {
                form = await context.Request.ReadFormAsync();
            }

            if (form != null && form.ContainsKey("clear"))
            {
                _store.Clear();
                context.Response.Redirect(context.Request.PathBase.Add(_options.Path).ToString());
                isRedirect = true;
            }
            else
            {
                if (context.Request.Query.ContainsKey("level"))
                {
                    var minLevel = options.MinLevel;
                    if (Enum.TryParse <LogLevel>(context.Request.Query["level"], out minLevel))
                    {
                        options.MinLevel = minLevel;
                    }
                }
                if (context.Request.Query.ContainsKey("name"))
                {
                    var namePrefix = context.Request.Query["name"];
                    options.NamePrefix = namePrefix;
                }
            }
            return(Tuple.Create(options, isRedirect));
        }