コード例 #1
0
        public async Task <Result <DataTableResult <GroupAdminAuditTableModel> > > Get(
            string groupId,
            DataTableRequest dataTableRequest,
            GroupAdminAuditTableRequest auditTableRequest)
        {
            ValidationResult dataTableValidationResult = _dataTableRequestValidator.Validate(dataTableRequest);

            if (!dataTableValidationResult.IsValid)
            {
                _logger.LogWarning($"Invalid {nameof(DataTableRequest)} model");
                return(Result.Fail <DataTableResult <GroupAdminAuditTableModel> >(dataTableValidationResult.ToResultError()));
            }

            if (auditTableRequest == null)
            {
                _logger.LogWarning($"AuditTable request can not be null");
                return(Result.Fail <DataTableResult <GroupAdminAuditTableModel> >("can_not_be_null", "Can not be null"));
            }

            ValidationResult auditTableRequestValidationResult = _auditTableRequestValidator.Validate(auditTableRequest);

            if (!auditTableRequestValidationResult.IsValid)
            {
                _logger.LogWarning($"Invalid {nameof(GroupAdminAuditTableRequest)} model");
                return(Result.Fail <DataTableResult <GroupAdminAuditTableModel> >(auditTableRequestValidationResult.ToResultError()));
            }

            IBaseSpecificationBuilder <AuditEntity> baseSpecification = SpecificationBuilder
                                                                        .Create <AuditEntity>()
                                                                        .WithActionType(auditTableRequest.ActionType)
                                                                        .WithObjectType(auditTableRequest.ObjectType)
                                                                        .WithObjectIdentifier(auditTableRequest.ObjectIdentifier)
                                                                        .WithSubjectType(auditTableRequest.SubjectType)
                                                                        .WithSubjectIdentifier(auditTableRequest.SubjectIdentifier)
                                                                        .WithResourceName(auditTableRequest.ResourceName)
                                                                        .InRange(auditTableRequest.From, auditTableRequest.To)
                                                                        .WithGroupIdentifier(groupId);

            IBaseSpecification <AuditEntity, GroupAdminAuditTableModel> selectSpecification = baseSpecification
                                                                                              .OrderBy(x => x.Created, auditTableRequest.OrderBy.Value)
                                                                                              .Paginate(dataTableRequest.Start, dataTableRequest.Length)
                                                                                              .Select(x => new GroupAdminAuditTableModel(
                                                                                                          x.Id,
                                                                                                          x.ActionType.GetDescription(),
                                                                                                          x.ObjectType,
                                                                                                          x.ResourceName,
                                                                                                          x.SubjectType.GetDescription(),
                                                                                                          x.SubjectIdentifier,
                                                                                                          x.Created.ToString("o")))
                                                                                              .Build();

            int auditCount = await _auditDAO.Count(baseSpecification.Build());

            List <GroupAdminAuditTableModel> audits = await _auditDAO.Get(selectSpecification);

            DataTableResult <GroupAdminAuditTableModel> dataTableResult = new DataTableResult <GroupAdminAuditTableModel>(
                draw: dataTableRequest.Draw,
                recordsTotal: auditCount,
                recordsFiltered: auditCount,
                data: audits);

            return(Result.Ok(dataTableResult));
        }
コード例 #2
0
        public async Task <IActionResult> Get([FromRoute] string groupId, [FromQuery] DataTableRequest dataTableRequest, [FromQuery] GroupAdminAuditTableRequest auditTableRequest)
        {
            Result <DataTableResult <GroupAdminAuditTableModel> > result = await _groupAdminAuditDataService.Get(
                groupId,
                dataTableRequest,
                auditTableRequest);

            return(result.ToApiResult());
        }