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