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(); }
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); }