/// <summary> /// Runs the diagnostics method. /// </summary> /// <param name="value">The value.</param> /// <remarks></remarks> private void RunDiagnosticsMethod(DiagnosticsInfo value) { var current = GetDiagnosticsDetailItem(value.Id); _logger.DebugFormat("Trying Method {0}", value.DiagnosticsMethodInfo.Name); current.StartedAt = DateTime.Now; current.Info = "Running"; SaveDetailItem(current); try { var instance = Activator.CreateInstance(value.DiagnosticsClassType); value.DiagnosticsMethodInfo.Invoke(instance, null); current.Status = DiagnosticsStatus.Valid; current.Info = "Succeeded."; current.EndedAt = DateTime.Now; } catch (Exception ex) { current.Info = ex.InnerException != null ? ex.InnerException.Message : ex.Message; current.Status = DiagnosticsStatus.Error; _logger.ErrorFormat("An error occured executing method {0} - {1}", current.Method, current.Info); current.EndedAt = DateTime.Now; } finally { SaveDetailItem(current); } _logger.DebugFormat("Executed Method {0} - {1} => {2}", current.Method, current.Status, current.Info); }
public static void LogTransaction(HttpRequest request, string response) { var info = new DiagnosticsInfo() { RequestUrl = "[" + request.Method + "]" + request.Host + request.Path + request.QueryString, Body = new List <string>(), ResponseBody = new List <string>() }; if (request.HasFormContentType) { foreach (var form in request.Form) { if (form.Key == "client" || form.Key == "server") { var clientParams = Encoding.ASCII.GetString(Base64UrlTextEncoder.Decode(form.Value)) .Replace("\r\n", "\n") .Split('\n') .Where(x => x.Contains("=")) .ToDictionary(x => x.Split('=')[0], x => x.Remove(0, x.Split('=')[0].Length + 1)); foreach (var param in clientParams) { info.Body.Add(form.Key + "." + param.Key + ": " + param.Value); } continue; } info.Body.Add(form.Key + ": " + form.Value); } } var responseValues = response .Replace("\r\n", "\n") .Split('\n') .Where(x => x.Contains("=")) .ToDictionary(x => x.Split('=')[0], x => x.Remove(0, x.Split('=')[0].Length + 1)); foreach (var responseValue in responseValues) { if (responseValue.Key == "tif") { var intValue = int.Parse(responseValue.Value, System.Globalization.NumberStyles.HexNumber); var translate = Enum.TryParse <SqrlCommandWorker.Tif>(intValue.ToString(), out var tifText); if (translate) { info.ResponseBody.Add(responseValue.Key + ": " + responseValue.Value + " ( " + tifText.ToString("F") + " ) "); } else { info.ResponseBody.Add(responseValue.Key + ": " + responseValue.Value + " ( !!!UNKNOWN!!! ) "); } } else { info.ResponseBody.Add(responseValue.Key + ": " + responseValue.Value); } } TransactionLog.Add(info); }
protected void AppendSection(List <object[]> output, DiagnosticsInfo section) { var sectionContents = new List <object[]> { new object[] { "Contains", "" } }; foreach (var node in section.Nodes) { sectionContents.Add(new object[] { node.Name, node.Value }); } foreach (var group in section.Groups) { var groupContents = GetGroupContents(group); if (groupContents.Count > 1) { sectionContents.Add(new object[] { group.Name, groupContents }); } } if (sectionContents.Count > 1) { output.Add(new object[] { section.Name, sectionContents }); } }
/// <inheritdoc /> public async Task ProcessRequestAsync(HttpContext context) { if (!_environment.IsDevelopment()) { context.Response.StatusCode = 404; return; } var usertoken = await context.GetUserAccessTokenAsync(); var clientToken = await context.GetClientAccessTokenAsync(); var info = new DiagnosticsInfo { UserAccessToken = usertoken, ClientAccessToken = clientToken }; #if NET6_0_OR_GREATER var options = new JsonSerializerOptions { DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull }; #else var options = new JsonSerializerOptions { IgnoreNullValues = true }; #endif var json = JsonSerializer.Serialize(info, options); context.Response.ContentType = "application/json"; await context.Response.WriteAsync(json); }
/// <summary> /// Adds the test method. /// </summary> /// <param name="nfo">The nfo.</param> /// <remarks></remarks> private void AddDiagnosticsInfo(DiagnosticsInfo nfo) { if (ActiveTests.Keys.Contains(nfo.FullMethodName)) { return; } _logger.DebugFormat(String.Format("Adding Test Method {0}", nfo.FullMethodName)); ActiveTests.Add(nfo.FullMethodName, nfo); }
public virtual DiagnosticsInfo Build() { var diagnosticsInfo = new DiagnosticsInfo("Db: '{0}'", Database.Name); AppendConnectionInfoDiagnostics(diagnosticsInfo); AppendSerializerDiagnostics(diagnosticsInfo); AppendSettingsDiagnostics(diagnosticsInfo); AppendStructureSchemasDiagnostics(diagnosticsInfo); return diagnosticsInfo; }
public virtual DiagnosticsInfo Build() { var diagnosticsInfo = new DiagnosticsInfo("Db: '{0}'", Database.Name); AppendConnectionInfoDiagnostics(diagnosticsInfo); AppendSerializerDiagnostics(diagnosticsInfo); AppendSettingsDiagnostics(diagnosticsInfo); AppendStructureSchemasDiagnostics(diagnosticsInfo); return(diagnosticsInfo); }
/// <summary> /// Runs the diagnostics method async. /// </summary> /// <param name="value">The value.</param> /// <remarks></remarks> private void RunDiagnosticsMethodAsync(DiagnosticsInfo value) { using (var wrk = new BackgroundWorker()) { wrk.DoWork += (s, e) => { try { RunDiagnosticsMethod(value); } catch (Exception) { wrk.Dispose(); } }; wrk.RunWorkerAsync(); } }
public DbSettingsDiagnosticsAppender(DiagnosticsInfo info) { Info = info; }
protected virtual void AppendStructureSchemasDiagnostics(DiagnosticsInfo info) { var appender = new StructureSchemasDiagnosticsAppender(info); appender.Append(Database.StructureSchemas); }
protected virtual void AppendSettingsDiagnostics(DiagnosticsInfo info) { var appender = new DbSettingsDiagnosticsAppender(info); appender.Append(Database.Settings); }
protected virtual void AppendSerializerDiagnostics(DiagnosticsInfo info) { var appender = new SerializerDiagnosticsAppender(info); appender.Append(Database.Serializer); }
protected virtual void AppendConnectionInfoDiagnostics(DiagnosticsInfo info) { var appender = new ConnectionInfoDiagnosticsAppender(info); appender.Append(Database.ConnectionInfo); }
public SerializerDiagnosticsAppender(DiagnosticsInfo info) { Info = info; }
protected virtual void AppendSerializerDiagnostics(DiagnosticsInfo info) { var appender = new SerializerDiagnosticsAppender(info); appender.Append(Database.Serializer); }
public StructureSchemasDiagnosticsAppender(DiagnosticsInfo info) { Info = info; }
protected virtual void AppendSettingsDiagnostics(DiagnosticsInfo info) { var appender = new DbSettingsDiagnosticsAppender(info); appender.Append(Database.Settings); }
protected virtual void AppendConnectionInfoDiagnostics(DiagnosticsInfo info) { var appender = new ConnectionInfoDiagnosticsAppender(info); appender.Append(Database.ConnectionInfo); }
protected virtual void AppendStructureSchemasDiagnostics(DiagnosticsInfo info) { var appender = new StructureSchemasDiagnosticsAppender(info); appender.Append(Database.StructureSchemas); }
public static ModelInfo ModelInfo(int?slidingWindow = default, AlignPolicy alignPolicy = default, string source = default, DateTimeOffset startTime = default, DateTimeOffset endTime = default, string displayName = default, ModelStatus?status = default, IReadOnlyList <ErrorResponse> errors = default, DiagnosticsInfo diagnosticsInfo = default) { errors ??= new List <ErrorResponse>(); return(new ModelInfo(slidingWindow, alignPolicy, source, startTime, endTime, displayName, status, errors, diagnosticsInfo)); }
public ConnectionInfoDiagnosticsAppender(DiagnosticsInfo info) { Info = info; }