Ejemplo n.º 1
0
        public async Task <Result <DataTableResult <AuditAdminTableModel> > > Get(DataTableRequest dataTableRequest, AuditTableRequest auditTableRequest)
        {
            ValidationResult dataTableValidationResult = _dataTableRequestValidator.Validate(dataTableRequest);

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

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

            ValidationResult auditTableRequestValidationResult = _auditTableRequestValidator.Validate(auditTableRequest);

            if (!auditTableRequestValidationResult.IsValid)
            {
                _logger.LogWarning($"Invalid {nameof(AuditTableRequest)} model");
                return(Result.Fail <DataTableResult <AuditAdminTableModel> >(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);

            IBaseSpecification <AuditEntity, AuditAdminTableModel> selectSpecification = baseSpecification
                                                                                         .OrderBy(x => x.Created, auditTableRequest.OrderBy.Value)
                                                                                         .Paginate(dataTableRequest.Start, dataTableRequest.Length)
                                                                                         .Select(x => new AuditAdminTableModel(
                                                                                                     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 <AuditAdminTableModel> audits = await _auditDAO.Get(selectSpecification);

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

            return(Result.Ok(dataTableResult));
        }
        public static IBaseSpecificationBuilder <AppUserEntity> WithUsername(this IBaseSpecificationBuilder <AppUserEntity> builder, string username)
        {
            username = username.ToUpper();

            builder = builder.Where(x => x.NormalizedUserName == username);

            return(builder);
        }
Ejemplo n.º 3
0
        public static IBaseSpecificationBuilder <GroupEntity> WithName(this IBaseSpecificationBuilder <GroupEntity> builder, string name)
        {
            name = name.ToUpper();

            builder = builder.Where(x => x.Name.ToUpper() == name);

            return(builder);
        }
        public static IBaseSpecificationBuilder <AppUserEntity> WithEmail(this IBaseSpecificationBuilder <AppUserEntity> builder, string emil)
        {
            emil = emil.ToUpper();

            builder = builder.Where(x => x.NormalizedEmail == emil);

            return(builder);
        }
Ejemplo n.º 5
0
        public static IBaseSpecificationBuilder <AuditEntity> WithActionType(this IBaseSpecificationBuilder <AuditEntity> baseBuilder, ActionTypes?actionType)
        {
            if (actionType.HasValue)
            {
                baseBuilder.Where(x => x.ActionType == actionType);
            }

            return(baseBuilder);
        }
Ejemplo n.º 6
0
        public static IBaseSpecificationBuilder <AuditEntity> WithResourceName(this IBaseSpecificationBuilder <AuditEntity> baseBuilder, string resourceName)
        {
            if (string.IsNullOrEmpty(resourceName))
            {
                return(baseBuilder);
            }

            return(baseBuilder
                   .Where(x => x.ResourceName == resourceName));
        }
Ejemplo n.º 7
0
        public static IBaseSpecificationBuilder <AuditEntity> WithSubjectType(this IBaseSpecificationBuilder <AuditEntity> baseBuilder, SubjectTypes?subjectType)
        {
            if (!subjectType.HasValue)
            {
                return(baseBuilder);
            }

            return(baseBuilder
                   .Where(x => x.SubjectType == subjectType.Value));
        }
Ejemplo n.º 8
0
        public static IBaseSpecificationBuilder <AuditEntity> WithObjectIdentifier(this IBaseSpecificationBuilder <AuditEntity> baseBuilder, string objectIdentifier)
        {
            if (string.IsNullOrEmpty(objectIdentifier))
            {
                return(baseBuilder);
            }

            return(baseBuilder
                   .Where(x => x.ObjectIdentifier == objectIdentifier));
        }
Ejemplo n.º 9
0
        public static IBaseSpecificationBuilder <AuditEntity> SearchByObjectType(this IBaseSpecificationBuilder <AuditEntity> baseBuilder, string search)
        {
            if (string.IsNullOrEmpty(search))
            {
                return(baseBuilder);
            }

            string upperSearch = search.ToUpper();

            return(baseBuilder.Where(x => x.ObjectType.ToUpper().Contains(upperSearch)));
        }
Ejemplo n.º 10
0
        public static IBaseSpecificationBuilder <AuditEntity> WithUser(this IBaseSpecificationBuilder <AuditEntity> baseBuilder, string userId)
        {
            if (string.IsNullOrEmpty(userId))
            {
                return(baseBuilder);
            }

            return(baseBuilder
                   .Where(x => x.SubjectType == SubjectTypes.Human)
                   .Where(x => x.SubjectIdentifier == userId));
        }
Ejemplo n.º 11
0
        public static IBaseSpecificationBuilder <InviteEntity> SearchByEmail(this IBaseSpecificationBuilder <InviteEntity> builder, string search)
        {
            if (string.IsNullOrEmpty(search))
            {
                return(builder);
            }

            search = search.ToUpper();

            builder = builder.Where(x => x.Email.ToUpper().Contains(search));

            return(builder);
        }
Ejemplo n.º 12
0
        public static IBaseSpecificationBuilder <AppUserEntity> SearchByUsername(this IBaseSpecificationBuilder <AppUserEntity> builder, string search)
        {
            if (string.IsNullOrEmpty(search))
            {
                return(builder);
            }

            search = search.ToUpper();

            builder = builder.Where(x => x.NormalizedUserName.Contains(search));

            return(builder);
        }
        public static IBaseSpecificationBuilder <RoleEntity> WithName(this IBaseSpecificationBuilder <RoleEntity> builder, string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name_cannot_be_null");
            }

            name = name.ToUpper();

            builder = builder.Where(x => x.NormalizedName == name);

            return(builder);
        }
Ejemplo n.º 14
0
        public static IBaseSpecificationBuilder <AuditEntity> InRange(this IBaseSpecificationBuilder <AuditEntity> baseBuilder, DateTime?from, DateTime?to)
        {
            if (from.HasValue)
            {
                baseBuilder.Where(x => x.Created >= from);
            }

            if (to.HasValue)
            {
                baseBuilder.Where(x => x.Created < to);
            }

            return(baseBuilder);
        }
        public static IBaseSpecificationBuilder <GroupAttributeEntity> SearchByKey(
            this IBaseSpecificationBuilder <GroupAttributeEntity> builder,
            string search)
        {
            if (string.IsNullOrEmpty(search))
            {
                return(builder);
            }

            search = search.ToUpper();

            builder = builder.Where(x => x.Key.Contains(search));

            return(builder);
        }
Ejemplo n.º 16
0
        public async Task <Result <DataTableResult <AuditTableModel> > > Get(DataTableRequest dataTableRequest, AuditTableRequest auditTableRequest)
        {
            ValidationResult validationResult = _dataTableRequestValidator.Validate(dataTableRequest);

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

            ValidationResult auditTabeValidationResult = _auditTableRequestValidator.Validate(auditTableRequest);

            if (!auditTabeValidationResult.IsValid)
            {
                _logger.LogWarning($"Invalid {typeof(AuditTableRequest).Name} model");
                return(Result.Fail <DataTableResult <AuditTableModel> >(validationResult.ToResultError()));
            }

            IBaseSpecificationBuilder <AuditEntity> baseSpecification = SpecificationBuilder
                                                                        .Create <AuditEntity>()
                                                                        .WithActionType(auditTableRequest.ActionType)
                                                                        .InRange(auditTableRequest.From?.UtcDateTime, auditTableRequest.To?.UtcDateTime)
                                                                        .WithUser(_httpContextAccessor.HttpContext.User.GetUserId());

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

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

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

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

            return(Result.Ok(dataTableResult));
        }
Ejemplo n.º 17
0
        public static IBaseSpecificationBuilder <GroupEntity> WithId(this IBaseSpecificationBuilder <GroupEntity> builder, string id)
        {
            builder = builder.Where(x => x.Id == id);

            return(builder);
        }
Ejemplo n.º 18
0
 public static IBaseSpecificationBuilder <AuditEntity> WithGroupIdentifier(this IBaseSpecificationBuilder <AuditEntity> baseBuilder, string groupId)
 {
     return(baseBuilder
            .Where(x => x.GroupIdentifier == groupId));
 }