コード例 #1
0
ファイル: LogService.cs プロジェクト: wuzhenda/HA4IoT
        private void CreateGetLogEntriesResponse(IEnumerable <LogEntry> source, IApiCall apiCall)
        {
            var response = new GetLogEntriesResponse
            {
                SessionId  = _sessionId,
                LogEntries = source.ToList()
            };

            apiCall.Result = JObject.FromObject(response);
        }
コード例 #2
0
        public void GetErrorLogEntries(IApiContext apiContext)
        {
            lock (_errorLogEntries)
            {
                var response = new GetLogEntriesResponse
                {
                    SessionId  = _sessionId,
                    LogEntries = _errorLogEntries.ToList()
                };

                apiContext.Result = JObject.FromObject(response);
            }
        }
コード例 #3
0
        public void GetLogEntries(IApiContext apiContext)
        {
            var request = apiContext.Parameter.ToObject <GetLogEntriesRequest>();

            if (request == null)
            {
                apiContext.ResultCode = ApiResultCode.InvalidParameter;
                return;
            }

            if (request.MaxCount == 0)
            {
                request.MaxCount = 100;
            }

            List <LogEntry> logEntries;

            lock (_logEntries)
            {
                if (request.SessionId != _sessionId)
                {
                    logEntries = _logEntries.Take(request.MaxCount).ToList();
                }
                else
                {
                    logEntries = _logEntries.Where(e => e.Id > request.Offset).Take(request.MaxCount).ToList();
                }
            }

            var response = new GetLogEntriesResponse
            {
                SessionId  = _sessionId,
                LogEntries = logEntries
            };

            apiContext.Result = JObject.FromObject(response);
        }
コード例 #4
0
ファイル: LogService.cs プロジェクト: wuzhenda/HA4IoT
        public void GetLogEntries(IApiCall apiCall)
        {
            var request = apiCall.Parameter.ToObject <GetLogEntriesRequest>();

            if (request == null)
            {
                apiCall.ResultCode = ApiResultCode.InvalidParameter;
                return;
            }

            if (request.MaxCount == 0)
            {
                request.MaxCount = 100;
            }

            List <LogEntry> logEntries;

            lock (_syncRoot)
            {
                if (!request.SessionId.HasValue || request.SessionId.Value != _sessionId)
                {
                    logEntries = _logEntries.Take(request.MaxCount).ToList();
                }
                else
                {
                    logEntries = _logEntries.SkipWhile(e => e.Id <= request.Offset).Take(request.MaxCount).ToList();
                }
            }

            var response = new GetLogEntriesResponse
            {
                SessionId  = _sessionId,
                LogEntries = logEntries
            };

            apiCall.Result = JObject.FromObject(response);
        }