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); }
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); }
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)); }