Ejemplo n.º 1
0
        public string InsertAuditLog(AuditLogInput input)
        {
            var auditLog = input.DtoConvertEntity <AuditLog>();

            WriteData(_auditLogService.Add, auditLog);
            return(ValidationResult.GetData <string>(LsConstant.IdKey));
        }
Ejemplo n.º 2
0
        public async Task <PagedResultDto <AuditLogDto> > GetListAsync(AuditLogInput input)
        {
            var count = (int)await _auditLogRepository.GetCountAsync(input.StartTime, input.EndTime, input.HttpMethod, input.Url, input.UserName, input.ApplicationName, input.CorrelationId, input.MaxExecutionDuration, input.MinExecutionDuration, input.HasException, input.HttpStatusCode);

            var list = await _auditLogRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.StartTime, input.EndTime, input.HttpMethod, input.Url, input.UserName, input.ApplicationName, input.CorrelationId, input.MaxExecutionDuration, input.MinExecutionDuration, input.HasException, input.HttpStatusCode);

            return(new PagedResultDto <AuditLogDto>(
                       count,
                       ObjectMapper.Map <List <AuditLog>, List <AuditLogDto> >(list)
                       ));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取where条件
        /// </summary>
        /// <param name="request">请求参数</param>
        /// <returns>条件表达式</returns>
        private Expression <Func <AuditLog, bool> > GetWhereExpression(AuditLogInput request)
        {
            var expr = PredicateExtensions.True <AuditLog>();

            expr = expr.And(x => x.IsDeleted == false);
            if (request.LogType > 0)
            {
                expr = expr.And(x => x.Type.Equals(request.LogType));
            }

            if (!string.IsNullOrWhiteSpace(request.UserName))
            {
                expr = expr.And(x => x.CreatedBy.Contains(request.UserName));
            }

            if (!string.IsNullOrWhiteSpace(request.ServiceName))
            {
                expr = expr.And(x => x.ServiceName.Contains(request.ServiceName));
            }

            if (!string.IsNullOrWhiteSpace(request.ActionName))
            {
                expr = expr.And(x => x.ActionName.Contains(request.ActionName));
            }

            if (request.StartTime > new DateTime(1970, 1, 1))
            {
                expr = expr.And(x => x.CreatedOn >= request.StartTime);
            }

            if (request.EndTime > new DateTime(1970, 1, 1))
            {
                expr = expr.And(x => x.CreatedOn <= request.EndTime.AddDays(1).AddSeconds(-1));
            }

            return(expr);
        }
Ejemplo n.º 4
0
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            _stopwatch.Start();

            // Get the request lifetime scope so you can resolve services.
            var requestScope = actionContext.Request.GetDependencyScope();

            // Resolve the service you want to use.
            var auditAppService = requestScope.GetService(typeof(IAuditAppService)) as IAuditAppService;

            var auditLogInput = new AuditLogInput()
            {
                BrowserInfo       = RequestExtend.RequestValue(LsConstant.RequestBrowser),
                ClientName        = RequestExtend.RequestValue(LsConstant.RequestClientName),
                ClientIpAddress   = RequestExtend.RequestValue(LsConstant.RequestClientAddress),
                MethodName        = actionContext.Request.Method.ToString(),
                ApiAddress        = actionContext.Request.RequestUri.LocalPath,
                Parameters        = GetRequestParamters(actionContext),
                ActionName        = actionContext.ActionDescriptor.ActionName,
                ControllerName    = actionContext.ActionDescriptor.ControllerDescriptor.ControllerName,
                IsExecSuccess     = false,
                ExecutionDuration = 0,
            };

            try
            {
                auditLogInput.UserId      = actionContext.Request.GetLoginUser().Id;
                auditLogInput.AccountName = actionContext.Request.GetLoginUser().AccountName;
            }
            catch (Exception)
            {
            }
            m_auditId = auditAppService.InsertAuditLog(auditLogInput);

            base.OnActionExecuting(actionContext);
        }
Ejemplo n.º 5
0
 public async Task <PagedResultDto <AuditLogDto> > GetListAsync(AuditLogInput input)
 {
     return(await _auditLogAppService.GetListAsync(input));
 }
Ejemplo n.º 6
0
        /// <summary>
        /// 获取auditLog数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <AuditLogOutput> GetAuditLogData(AuditLogInput input)
        {
            var linqExp = (from audit in _WorkflowDemoContext.AuditLog
                           join user in _WorkflowDemoContext.User
                           on audit.CreatedBy equals user.EmployeeNo into user2
                           from user3 in user2.DefaultIfEmpty()
                           where (audit.IsDeleted == false && user3.IsDeleted == false) &&
                           (input.LogType <= 0 || input.LogType == audit.Type) &&
                           (string.IsNullOrWhiteSpace(input.UserName) || user3.Name.Contains(input.UserName)) &&
                           (string.IsNullOrWhiteSpace(input.UserNo) || audit.CreatedBy.Contains(input.UserNo)) &&
                           (string.IsNullOrWhiteSpace(input.ServiceName) || audit.ServiceName.Contains(input.ServiceName)) &&
                           (string.IsNullOrWhiteSpace(input.ActionName) || audit.ActionName.Contains(input.ActionName)) &&
                           (input.StartTime <= new DateTime(1900, 1, 1) || audit.CreatedOn >= input.StartTime) &&
                           (input.EndTime <= new DateTime(1900, 1, 1) ||
                            audit.CreatedOn <= input.EndTime.AddDays(1).AddSeconds(-1))
                           select new AuditLogOutputModel()
            {
                Id = audit.Id,
                LogType = audit.Type,
                Time = audit.CreatedOn.ToString(),
                UserName = user3.Name,
                UserNo = audit.CreatedBy,
                Service = audit.ServiceName,
                Action = audit.ActionName,
                Duration = audit.Duration,
                IPAddress = audit.Ip,
                ClientBrowser = audit.UserAgent
            }).OrderByDescending(x => x.Time);


            var response = new AuditLogOutput()
            {
                TotalCount = await linqExp.CountAsync(),
                Models     = await linqExp.Skip((input.PageIndex - 1) *input.PageSize)
                             .Take(input.PageSize)
                             .ToListAsync()
            };

            #region 需求变化,废弃的代码,查询user 不太方便

            //var whereExpress = GetWhereExpression(input);
            //var count = _auditLogRepository.Entities.Count(whereExpress);

            //var response = new AuditLogOutput()
            //{
            //    TotalCount = count
            //};

            //var models = await _WorkflowDemoContext.AuditLog.Where(whereExpress)
            //    .OrderByDescending(x => x.CreatedOn)
            //    .Skip((input.PageIndex - 1) * input.PageSize)
            //    .Take(input.PageSize)
            //    .GroupJoin(_WorkflowDemoContext.User.Where(x=>x.IsDeleted==false), audit => audit.CreatedBy, user => user.EmployeeNo,
            //        (audit, user) =>
            //            new AuditLogOutputModel()
            //            {
            //                Id = audit.Id,
            //                LogType = audit.Type,
            //                Time = audit.CreatedOn.ToString(),
            //                UserName = user.FirstOrDefault().Name,
            //                UserNo = audit.CreatedBy,
            //                Service = audit.ServiceName,
            //                Action = audit.ActionName,
            //                Duration = audit.Duration,
            //                IPAddress = audit.Ip,
            //                ClientBrowser = audit.UserAgent
            //            }
            //    ).ToListAsync();
            //response.Models = models;

            #endregion

            return(response);
        }