Ejemplo n.º 1
0
        //[Authorize(IdentityPermissions.Users.Default)]
        public virtual async Task <PagedResultDto <AuditLogDto> > GetListAsync(QueryAuditLogDto input)
        {
            var totalCount = await _auditLogRepository.GetCountAsync();

            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>(totalCount, list.Select(x =>
                                                                            ObjectMapper.Map <AuditLog, AuditLogDto>(x))
                                                    .ToList()));
        }
Ejemplo n.º 2
0
        public override async Task ExecuteAsync(TrafficArgs args)
        {
            var errorsCount = await _auditLogRepository.GetCountAsync(
                startTime : DateTime.Now.Date,
                endTime : DateTime.Now.Date.AddDays(1),
                httpStatusCode : System.Net.HttpStatusCode.InternalServerError);

            var errors = await _auditLogRepository.GetListAsync(
                startTime : DateTime.Now.Date,
                endTime : DateTime.Now.Date.AddDays(1),
                httpStatusCode : System.Net.HttpStatusCode.InternalServerError);

            var appErrors = errors.GroupBy(l => l.ApplicationName)
                            .Select(l => new
            {
                ApplicationName = l.Key,
                Count           = l.Count()
            });
            StringBuilder sb = new StringBuilder();

            sb.AppendLine($"今日总异常数:{errorsCount}");
            foreach (var error in appErrors)
            {
                sb.AppendLine($"{error.ApplicationName}异常数:${error.Count}");
            }

            var email = await GetEmailSetting();

            await _smtpEmailSender.QueueAsync(
                from : email.from,
                to : email.to,
                subject : email.subject,
                sb.ToString()
                );
        }
Ejemplo n.º 3
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.º 4
0
        public async Task <PagedResultDto <AuditLogDto> > GetAll(GetAuditLogsInput input)
        {
            var count = await _auditLogRepository.GetCountAsync(httpMethod : input.HttpMethod, url : input.Url,
                                                                userName : input.UserName, applicationName : input.ApplicationName, correlationId : input.CorrelationId, maxExecutionDuration : input.MaxExecutionDuration,
                                                                minExecutionDuration : input.MinExecutionDuration, hasException : input.HasException, httpStatusCode : input.HttpStatusCode);

            var list = await _auditLogRepository.GetListAsync(sorting : input.Sorting, maxResultCount : input.MaxResultCount, skipCount : input.SkipCount, httpMethod : input.HttpMethod, url : input.Url,
                                                              userName : input.UserName, applicationName : input.ApplicationName, correlationId : input.CorrelationId, maxExecutionDuration : input.MaxExecutionDuration,
                                                              minExecutionDuration : input.MinExecutionDuration, hasException : input.HasException, httpStatusCode : input.HttpStatusCode);

            return(new PagedResultDto <AuditLogDto>(
                       count,
                       ObjectMapper.Map <List <AuditLog>, List <AuditLogDto> >(list)
                       ));
        }
Ejemplo n.º 5
0
        public override async Task <PagedResultDto <AuditLogDto> > GetListAsync(GetAuditLoggingInput input)
        {
            var count = await _auditLogRepository.GetCountAsync(
                null,
                null,
                input.HttpMethod,
                input.Url,
                input.UserName,
                input.ApplicationName,
                input.CorrelationId,
                input.MaxExecutionDuration,
                input.MinExecutionDuration,
                input.HasException,
                input.HttpStatusCode);

            List <AuditLog> list = null;

            if (count > 0)
            {
                list = await _auditLogRepository.GetListAsync(
                    input.Sorting,
                    input.MaxResultCount,
                    input.SkipCount,
                    null, null,
                    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.º 6
0
        public async Task Should_Get_List_Of_Audit_Logs()
        {
            var userId       = new Guid("4456fb0d-74cc-4807-9eee-23e551e6cb06");
            var ipAddress    = "153.1.7.61";
            var firstComment = "first Comment";

            var log1 = new AuditLogInfo
            {
                UserId               = userId,
                ImpersonatorUserId   = Guid.NewGuid(),
                ImpersonatorTenantId = Guid.NewGuid(),
                ExecutionTime        = DateTime.Today,
                ExecutionDuration    = 42,
                ClientIpAddress      = ipAddress,
                ClientName           = "MyDesktop",
                BrowserInfo          = "Chrome",
                Comments             = new List <string> {
                    firstComment, "Second Comment"
                },
                UserName      = "******",
                EntityChanges =
                {
                    new EntityChangeInfo
                    {
                        EntityId           = Guid.NewGuid().ToString(),
                        EntityTypeFullName = "Volo.Abp.AuditLogging.TestEntity",
                        ChangeType         = EntityChangeType.Created,
                        ChangeTime         = DateTime.Now,
                        PropertyChanges    = new List <EntityPropertyChangeInfo>
                        {
                            new EntityPropertyChangeInfo
                            {
                                PropertyTypeFullName = typeof(string).FullName,
                                PropertyName         = "Name",
                                NewValue             = "New value",
                                OriginalValue        = null
                            }
                        }
                    },
                    new EntityChangeInfo
                    {
                        EntityId           = Guid.NewGuid().ToString(),
                        EntityTypeFullName = "Volo.Abp.AuditLogging.TestEntity",
                        ChangeType         = EntityChangeType.Created,
                        ChangeTime         = DateTime.Now,
                        PropertyChanges    = new List <EntityPropertyChangeInfo>
                        {
                            new EntityPropertyChangeInfo
                            {
                                PropertyTypeFullName = typeof(string).FullName,
                                PropertyName         = "Name",
                                NewValue             = "New value",
                                OriginalValue        = null
                            }
                        }
                    }
                }
            };

            var log2 = new AuditLogInfo
            {
                UserId               = userId,
                ImpersonatorUserId   = Guid.NewGuid(),
                ImpersonatorTenantId = Guid.NewGuid(),
                ExecutionTime        = DateTime.Today,
                ExecutionDuration    = 42,
                ClientIpAddress      = ipAddress,
                ClientName           = "MyDesktop",
                BrowserInfo          = "Chrome",
                Comments             = new List <string> {
                    firstComment, "Second Comment"
                },
                HttpStatusCode = (int?)HttpStatusCode.BadGateway,
                EntityChanges  =
                {
                    new EntityChangeInfo
                    {
                        EntityId           = Guid.NewGuid().ToString(),
                        EntityTypeFullName = "Volo.Abp.AuditLogging.TestEntity",
                        ChangeType         = EntityChangeType.Created,
                        ChangeTime         = DateTime.Now,
                        PropertyChanges    = new List <EntityPropertyChangeInfo>
                        {
                            new EntityPropertyChangeInfo
                            {
                                PropertyTypeFullName = typeof(string).FullName,
                                PropertyName         = "Name",
                                NewValue             = "New value",
                                OriginalValue        = null
                            }
                        }
                    }
                }
            };

            await _auditingStore.SaveAsync(log1);

            await _auditingStore.SaveAsync(log2);

            var allLogsCount = await _auditLogRepository.GetCountAsync();

            var onlyLog1QueryResult = await _auditLogRepository.GetListAsync(includeDetails : true, userName : "******");

            var onlyLog2QueryResult = await _auditLogRepository.GetListAsync(includeDetails : true, httpStatusCode : HttpStatusCode.BadGateway);


            allLogsCount.ShouldBe(2);

            onlyLog1QueryResult.Count.ShouldBe(1);
            onlyLog1QueryResult.FirstOrDefault().UserName.ShouldBe("Douglas");
            onlyLog1QueryResult.FirstOrDefault().EntityChanges.Count.ShouldBe(2);

            onlyLog2QueryResult.Count.ShouldBe(1);
            onlyLog2QueryResult.FirstOrDefault().HttpStatusCode.ShouldBe((int?)HttpStatusCode.BadGateway);
            onlyLog2QueryResult.FirstOrDefault().EntityChanges.Count.ShouldBe(1);
        }