private async Task SaveTraceAsync(LogsDatabaseContext context, HttpEntry entry)
        {
            try
            {
                var trace = new Entities.Trace
                {
                    Id               = Guid.NewGuid(),
                    CallDuration     = entry.CallDuration,
                    CallerIdentity   = entry.CallerIdentity ?? "(anonymous)",
                    ReasonPhrase     = entry.ReasonPhrase,
                    RequestHeaders   = ProcessHeaders(entry.RequestHeaders),
                    ResponseHeaders  = ProcessHeaders(entry.ResponseHeaders),
                    RequestPayload   = entry.Request,
                    RequestTimestamp = entry.CallDateTime,
                    ResponsePayload  = entry.Response,
                    StatusCode       = entry.StatusCode,
                    Url              = entry.RequestUri.AbsolutePath,
                    Verb             = entry.Verb
                };

                context.Traces.Add(trace);
                await context.SaveChangesAsync();
            }
            catch { }
        }
示例#2
0
        public static Entities.Trace Add(Entities.Trace item)
        {
            Entities.Trace result    = new Entities.Trace();
            var            dbContext = new Naboo.DataAccess.Model.OSAgnosticContext(ConnectionHandler.ConnectionString());

            Naboo.DataAccess.Model.Trace jobDb = item.Convert();
            dbContext.Trace.Add(jobDb);
            dbContext.SaveChanges();
            result = jobDb.Convert();
            return(result);
        }