Beispiel #1
0
        public void LogExecutedCommand(string clientIp, string clientUserAgent, string serviceName, string controllerName, string methodName, string parms, string requestContentType, string requestData, string responseContentType, string responseData, string responseCode)
        {
            var service = m_DbContext.ServiceMethods.FirstOrDefault(x => x.ServiceName == serviceName && x.ControllerName == controllerName && x.MethodName == methodName) ?? new ServiceMethod
            {
                ServiceName    = serviceName,
                ControllerName = controllerName,
                MethodName     = methodName
            };

            var client = m_DbContext.Clients.FirstOrDefault(x => x.IpAddress == clientIp && x.UserAgent == clientUserAgent) ?? new Client
            {
                IpAddress = clientIp,
                UserAgent = clientUserAgent
            };

            m_DbContext.ExecutedCommands.Add(new ExecutedCommand
            {
                ServiceMethod       = service,
                Client              = client,
                Parms               = parms,
                RequestContentType  = requestContentType,
                RequestData         = requestData,
                ResponseContentType = responseContentType,
                ResponseData        = responseData,
                ResponseCode        = responseCode
            });

            m_DbContext.SaveChanges();
        }
Beispiel #2
0
        public int RemoveLogsOlderThan(DateTime minDate)
        {
            m_LogDbContext.SetCommandTimeout(3600);

            m_ExecutionLogService.Log($"=================================================================");
            m_ExecutionLogService.Log($"Deleting logs older than {minDate:yyyy-MM-dd HH:mm:ss}");
            var resultsInRange = m_LogDbContext.ExecutedCommands.Where(x => x.ExecutedTime < minDate).Select(x => x.IdExecutedCommand).Take(50).ToArray();
            var treated        = 0;

            while (resultsInRange.Any())
            {
                var nbResultsInRange = resultsInRange.Length;

                foreach (var c in resultsInRange)
                {
                    var entity = m_LogDbContext.ExecutedCommands.Find(c);
                    m_LogDbContext.ExecutedCommands.Remove(entity);
                }

                treated += nbResultsInRange;
                m_ExecutionLogService.Log($"{nbResultsInRange} log entries deleted ! Total : {treated}");
                m_LogDbContext.SaveChanges();

                resultsInRange = m_LogDbContext.ExecutedCommands.Where(x => x.ExecutedTime < minDate).Select(x => x.IdExecutedCommand).Take(50).ToArray();
            }

            m_LogDbContext.SaveChanges();
            m_ExecutionLogService.Log($"All The logs were deleted successfully !!");

            m_ExecutionLogService.Log($"=================================================================");
            return(treated);
        }