コード例 #1
0
ファイル: SQLiteTarget.cs プロジェクト: xmaux72/MetroLog
        async Task <SessionHeaderItem> GetSessionAsync(ILoggingEnvironment environment)
        {
            // check...
            Monitor.Enter(_headersLock);
            SessionHeaderItem header = null;

            try
            {
                if (Headers.TryGetValue(environment.SessionId, out header) == false)
                {
                    var conn = GetConnection();
                    header = await conn.Table <SessionHeaderItem>().Where(v => v.SessionGuid == environment.SessionId).FirstOrDefaultAsync();

                    if (header == null)
                    {
                        header = SessionHeaderItem.CreateForEnvironment(environment);
                        await conn.InsertAsync(header);
                    }
                    // set...
                    Headers[environment.SessionId] = header;
                }
            }
            finally
            {
                Monitor.Exit(_headersLock);
            }

            // return...
            return(header);
        }
コード例 #2
0
ファイル: SQLiteTarget.cs プロジェクト: tbayart/MetroLog
        private async Task<SessionHeaderItem> GetSessionAsync(ILoggingEnvironment environment)
        {
            // check...
            Monitor.Enter(_headersLock);
            SessionHeaderItem header = null;
            try
            {
                if (Headers.TryGetValue(environment.SessionId, out header) == false)
                {
                    var conn = GetConnection();
                    header = await conn.Table<SessionHeaderItem>().Where(v => v.SessionGuid == environment.SessionId).FirstOrDefaultAsync();
                    if (header == null)
                    {
                        header = SessionHeaderItem.CreateForEnvironment(environment);
                        await conn.InsertAsync(header);
                    }
                    // set...
                    Headers[environment.SessionId] = header;
                }
            }
            finally
            {
                Monitor.Exit(_headersLock);
            }

            // return...
            return header;
        }
コード例 #3
0
ファイル: SQLiteTarget.cs プロジェクト: timesloft/MetroLog
        private async Task <SessionHeaderItem> GetSessionAsync(ILoggingEnvironment environment)
        {
            // check...
            lock (_headersLock)
            {
                if (Headers.ContainsKey(environment.SessionId))
                {
                    return(Headers[environment.SessionId]);
                }
            }

            var conn   = GetConnection();
            var header = await conn.Table <SessionHeaderItem>().Where(v => v.SessionGuid == environment.SessionId).FirstOrDefaultAsync();

            if (header == null)
            {
                header = SessionHeaderItem.CreateForEnvironment(environment);
                await conn.InsertAsync(header);
            }

            // set...
            lock (_headersLock)
            {
                if (!(Headers.ContainsKey(environment.SessionId)))
                {
                    Headers[environment.SessionId] = header;
                }
            }

            // return...
            return(header);
        }
コード例 #4
0
ファイル: SQLiteTarget.cs プロジェクト: noxo/MetroLog
        private async Task<SessionHeaderItem> GetSessionAsync(ILoggingEnvironment environment)
        {
            // check...
            lock (_headersLock)
            {
                if (Headers.ContainsKey(environment.SessionId))
                    return Headers[environment.SessionId];
            }

            var conn = GetConnection();
            var header = await conn.Table<SessionHeaderItem>().Where(v => v.SessionGuid == environment.SessionId).FirstOrDefaultAsync();
            if(header == null)
            {
                header = SessionHeaderItem.CreateForEnvironment(environment);
                await conn.InsertAsync(header);
            }

            // set...
            lock (_headersLock)
            {
                if (!(Headers.ContainsKey(environment.SessionId)))
                    Headers[environment.SessionId] = header;
            }

            // return...
            return header;
        }
コード例 #5
0
ファイル: SessionHeaderItem.cs プロジェクト: xmaux72/MetroLog
 internal static SessionHeaderItem CreateForEnvironment(ILoggingEnvironment environment)
 {
     return(new SessionHeaderItem()
     {
         SessionGuid = environment.SessionId,
         Data = environment.ToJson()
     });
 }
コード例 #6
0
 internal static SessionHeaderItem CreateForEnvironment(ILoggingEnvironment environment)
 {
     return new SessionHeaderItem() 
     {
         SessionGuid = environment.SessionId,
         Data = environment.ToJson()
     };
 }
コード例 #7
0
 static LogWriteContext()
 {
     _environment = new LoggingEnvironment();
 }
コード例 #8
0
ファイル: JsonPostWrapper.cs プロジェクト: mqmanpsy/MetroLog
 internal JsonPostWrapper(ILoggingEnvironment environment, IEnumerable<LogEventInfo> events)
 {
     this.Environment = environment;
     this.Events = events.ToArray();
 }
コード例 #9
0
 static LogWriteContext()
 {
     _environment = PlatformAdapter.Resolve<ILoggingEnvironment>();
 }
コード例 #10
0
ファイル: JsonPostWrapper.cs プロジェクト: xmaux72/MetroLog
 internal JsonPostWrapper(ILoggingEnvironment environment, IEnumerable <LogEventInfo> events)
 {
     Environment = environment;
     Events      = events.ToArray();
 }
コード例 #11
0
ファイル: LogWriteContext.cs プロジェクト: timesloft/MetroLog
 static LogWriteContext()
 {
     _environment = PlatformAdapter.Resolve <ILoggingEnvironment>();
 }