Exemple #1
0
        public async Task <int> Count(CustomerLevelFilter filter)
        {
            IQueryable <CustomerLevelDAO> CustomerLevels = DataContext.CustomerLevel.AsNoTracking();

            CustomerLevels = DynamicFilter(CustomerLevels, filter);
            return(await CustomerLevels.CountAsync());
        }
Exemple #2
0
        public async Task <ActionResult <bool> > BulkDelete([FromBody] List <long> Ids)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            CustomerLevelFilter CustomerLevelFilter = new CustomerLevelFilter();

            CustomerLevelFilter = await CustomerLevelService.ToFilter(CustomerLevelFilter);

            CustomerLevelFilter.Id = new IdFilter {
                In = Ids
            };
            CustomerLevelFilter.Selects = CustomerLevelSelect.Id;
            CustomerLevelFilter.Skip    = 0;
            CustomerLevelFilter.Take    = int.MaxValue;

            List <CustomerLevel> CustomerLevels = await CustomerLevelService.List(CustomerLevelFilter);

            CustomerLevels = await CustomerLevelService.BulkDelete(CustomerLevels);

            if (CustomerLevels.Any(x => !x.IsValidated))
            {
                return(BadRequest(CustomerLevels.Where(x => !x.IsValidated)));
            }
            return(true);
        }
Exemple #3
0
        public async Task <List <CustomerLevel> > List(CustomerLevelFilter filter)
        {
            if (filter == null)
            {
                return(new List <CustomerLevel>());
            }
            IQueryable <CustomerLevelDAO> CustomerLevelDAOs = DataContext.CustomerLevel.AsNoTracking();

            CustomerLevelDAOs = DynamicFilter(CustomerLevelDAOs, filter);
            CustomerLevelDAOs = DynamicOrder(CustomerLevelDAOs, filter);
            List <CustomerLevel> CustomerLevels = await DynamicSelect(CustomerLevelDAOs, filter);

            return(CustomerLevels);
        }
Exemple #4
0
        public async Task <List <CustomerLevel> > List(CustomerLevelFilter CustomerLevelFilter)
        {
            try
            {
                List <CustomerLevel> CustomerLevels = await UOW.CustomerLevelRepository.List(CustomerLevelFilter);

                return(CustomerLevels);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(CustomerLevelService));
            }
            return(null);
        }
Exemple #5
0
        public async Task <int> Count(CustomerLevelFilter CustomerLevelFilter)
        {
            try
            {
                int result = await UOW.CustomerLevelRepository.Count(CustomerLevelFilter);

                return(result);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(CustomerLevelService));
            }
            return(0);
        }
Exemple #6
0
        public async Task <ActionResult <int> > Count([FromBody] CustomerLevel_CustomerLevelFilterDTO CustomerLevel_CustomerLevelFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            CustomerLevelFilter CustomerLevelFilter = ConvertFilterDTOToFilterEntity(CustomerLevel_CustomerLevelFilterDTO);

            CustomerLevelFilter = await CustomerLevelService.ToFilter(CustomerLevelFilter);

            int count = await CustomerLevelService.Count(CustomerLevelFilter);

            return(count);
        }
Exemple #7
0
        public async Task <bool> ValidateId(CustomerLevel CustomerLevel)
        {
            CustomerLevelFilter CustomerLevelFilter = new CustomerLevelFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = CustomerLevel.Id
                },
                Selects = CustomerLevelSelect.Id
            };

            int count = await UOW.CustomerLevelRepository.Count(CustomerLevelFilter);

            if (count == 0)
            {
                CustomerLevel.AddError(nameof(CustomerLevelValidator), nameof(CustomerLevel.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
Exemple #8
0
        public async Task <ActionResult <List <CustomerLevel_CustomerLevelDTO> > > List([FromBody] CustomerLevel_CustomerLevelFilterDTO CustomerLevel_CustomerLevelFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            CustomerLevelFilter CustomerLevelFilter = ConvertFilterDTOToFilterEntity(CustomerLevel_CustomerLevelFilterDTO);

            CustomerLevelFilter = await CustomerLevelService.ToFilter(CustomerLevelFilter);

            List <CustomerLevel> CustomerLevels = await CustomerLevelService.List(CustomerLevelFilter);

            List <CustomerLevel_CustomerLevelDTO> CustomerLevel_CustomerLevelDTOs = CustomerLevels
                                                                                    .Select(c => new CustomerLevel_CustomerLevelDTO(c)).ToList();

            return(CustomerLevel_CustomerLevelDTOs);
        }
Exemple #9
0
        private CustomerLevelFilter ConvertFilterDTOToFilterEntity(CustomerLevel_CustomerLevelFilterDTO CustomerLevel_CustomerLevelFilterDTO)
        {
            CustomerLevelFilter CustomerLevelFilter = new CustomerLevelFilter();

            CustomerLevelFilter.Selects   = CustomerLevelSelect.ALL;
            CustomerLevelFilter.Skip      = CustomerLevel_CustomerLevelFilterDTO.Skip;
            CustomerLevelFilter.Take      = CustomerLevel_CustomerLevelFilterDTO.Take;
            CustomerLevelFilter.OrderBy   = CustomerLevel_CustomerLevelFilterDTO.OrderBy;
            CustomerLevelFilter.OrderType = CustomerLevel_CustomerLevelFilterDTO.OrderType;

            CustomerLevelFilter.Id          = CustomerLevel_CustomerLevelFilterDTO.Id;
            CustomerLevelFilter.Code        = CustomerLevel_CustomerLevelFilterDTO.Code;
            CustomerLevelFilter.Name        = CustomerLevel_CustomerLevelFilterDTO.Name;
            CustomerLevelFilter.Color       = CustomerLevel_CustomerLevelFilterDTO.Color;
            CustomerLevelFilter.PointFrom   = CustomerLevel_CustomerLevelFilterDTO.PointFrom;
            CustomerLevelFilter.PointTo     = CustomerLevel_CustomerLevelFilterDTO.PointTo;
            CustomerLevelFilter.StatusId    = CustomerLevel_CustomerLevelFilterDTO.StatusId;
            CustomerLevelFilter.Description = CustomerLevel_CustomerLevelFilterDTO.Description;
            CustomerLevelFilter.RowId       = CustomerLevel_CustomerLevelFilterDTO.RowId;
            CustomerLevelFilter.CreatedAt   = CustomerLevel_CustomerLevelFilterDTO.CreatedAt;
            CustomerLevelFilter.UpdatedAt   = CustomerLevel_CustomerLevelFilterDTO.UpdatedAt;
            return(CustomerLevelFilter);
        }
Exemple #10
0
        private async Task <bool> HasPermission(long Id)
        {
            CustomerLevelFilter CustomerLevelFilter = new CustomerLevelFilter();

            CustomerLevelFilter = await CustomerLevelService.ToFilter(CustomerLevelFilter);

            if (Id == 0)
            {
            }
            else
            {
                CustomerLevelFilter.Id = new IdFilter {
                    Equal = Id
                };
                int count = await CustomerLevelService.Count(CustomerLevelFilter);

                if (count == 0)
                {
                    return(false);
                }
            }
            return(true);
        }
Exemple #11
0
        private IQueryable <CustomerLevelDAO> OrFilter(IQueryable <CustomerLevelDAO> query, CustomerLevelFilter filter)
        {
            if (filter.OrFilter == null || filter.OrFilter.Count == 0)
            {
                return(query);
            }
            IQueryable <CustomerLevelDAO> initQuery = query.Where(q => false);

            foreach (CustomerLevelFilter CustomerLevelFilter in filter.OrFilter)
            {
                IQueryable <CustomerLevelDAO> queryable = query;
                if (CustomerLevelFilter.Id != null && CustomerLevelFilter.Id.HasValue)
                {
                    queryable = queryable.Where(q => q.Id, CustomerLevelFilter.Id);
                }
                if (CustomerLevelFilter.Code != null && CustomerLevelFilter.Code.HasValue)
                {
                    queryable = queryable.Where(q => q.Code, CustomerLevelFilter.Code);
                }
                if (CustomerLevelFilter.Name != null && CustomerLevelFilter.Name.HasValue)
                {
                    queryable = queryable.Where(q => q.Name, CustomerLevelFilter.Name);
                }
                if (CustomerLevelFilter.Color != null && CustomerLevelFilter.Color.HasValue)
                {
                    queryable = queryable.Where(q => q.Color, CustomerLevelFilter.Color);
                }
                if (CustomerLevelFilter.PointFrom != null && CustomerLevelFilter.PointFrom.HasValue)
                {
                    queryable = queryable.Where(q => q.PointFrom, CustomerLevelFilter.PointFrom);
                }
                if (CustomerLevelFilter.PointTo != null && CustomerLevelFilter.PointTo.HasValue)
                {
                    queryable = queryable.Where(q => q.PointTo, CustomerLevelFilter.PointTo);
                }
                if (CustomerLevelFilter.StatusId != null && CustomerLevelFilter.StatusId.HasValue)
                {
                    queryable = queryable.Where(q => q.StatusId, CustomerLevelFilter.StatusId);
                }
                if (CustomerLevelFilter.Description != null && CustomerLevelFilter.Description.HasValue)
                {
                    queryable = queryable.Where(q => q.Description, CustomerLevelFilter.Description);
                }
                if (CustomerLevelFilter.RowId != null && CustomerLevelFilter.RowId.HasValue)
                {
                    queryable = queryable.Where(q => q.RowId, CustomerLevelFilter.RowId);
                }
                initQuery = initQuery.Union(queryable);
            }
            return(initQuery);
        }
Exemple #12
0
 private IQueryable <CustomerLevelDAO> DynamicFilter(IQueryable <CustomerLevelDAO> query, CustomerLevelFilter filter)
 {
     if (filter == null)
     {
         return(query.Where(q => false));
     }
     query = query.Where(q => !q.DeletedAt.HasValue);
     if (filter.CreatedAt != null && filter.CreatedAt.HasValue)
     {
         query = query.Where(q => q.CreatedAt, filter.CreatedAt);
     }
     if (filter.UpdatedAt != null && filter.UpdatedAt.HasValue)
     {
         query = query.Where(q => q.UpdatedAt, filter.UpdatedAt);
     }
     if (filter.Id != null && filter.Id.HasValue)
     {
         query = query.Where(q => q.Id, filter.Id);
     }
     if (filter.Code != null && filter.Code.HasValue)
     {
         query = query.Where(q => q.Code, filter.Code);
     }
     if (filter.Name != null && filter.Name.HasValue)
     {
         query = query.Where(q => q.Name, filter.Name);
     }
     if (filter.Color != null && filter.Color.HasValue)
     {
         query = query.Where(q => q.Color, filter.Color);
     }
     if (filter.PointFrom != null && filter.PointFrom.HasValue)
     {
         query = query.Where(q => q.PointFrom, filter.PointFrom);
     }
     if (filter.PointTo != null && filter.PointTo.HasValue)
     {
         query = query.Where(q => q.PointTo, filter.PointTo);
     }
     if (filter.StatusId != null && filter.StatusId.HasValue)
     {
         query = query.Where(q => q.StatusId, filter.StatusId);
     }
     if (filter.Description != null && filter.Description.HasValue)
     {
         query = query.Where(q => q.Description, filter.Description);
     }
     if (filter.RowId != null && filter.RowId.HasValue)
     {
         query = query.Where(q => q.RowId, filter.RowId);
     }
     query = OrFilter(query, filter);
     return(query);
 }
Exemple #13
0
        private async Task <List <CustomerLevel> > DynamicSelect(IQueryable <CustomerLevelDAO> query, CustomerLevelFilter filter)
        {
            List <CustomerLevel> CustomerLevels = await query.Select(q => new CustomerLevel()
            {
                Id          = filter.Selects.Contains(CustomerLevelSelect.Id) ? q.Id : default(long),
                Code        = filter.Selects.Contains(CustomerLevelSelect.Code) ? q.Code : default(string),
                Name        = filter.Selects.Contains(CustomerLevelSelect.Name) ? q.Name : default(string),
                Color       = filter.Selects.Contains(CustomerLevelSelect.Color) ? q.Color : default(string),
                PointFrom   = filter.Selects.Contains(CustomerLevelSelect.PointFrom) ? q.PointFrom : default(long),
                PointTo     = filter.Selects.Contains(CustomerLevelSelect.PointTo) ? q.PointTo : default(long),
                StatusId    = filter.Selects.Contains(CustomerLevelSelect.Status) ? q.StatusId : default(long),
                Description = filter.Selects.Contains(CustomerLevelSelect.Description) ? q.Description : default(string),
                Used        = filter.Selects.Contains(CustomerLevelSelect.Used) ? q.Used : default(bool),
                RowId       = filter.Selects.Contains(CustomerLevelSelect.Row) ? q.RowId : default(Guid),
                Status      = filter.Selects.Contains(CustomerLevelSelect.Status) && q.Status != null ? new Status
                {
                    Id   = q.Status.Id,
                    Code = q.Status.Code,
                    Name = q.Status.Name,
                } : null,
            }).ToListAsync();

            return(CustomerLevels);
        }
Exemple #14
0
        private IQueryable <CustomerLevelDAO> DynamicOrder(IQueryable <CustomerLevelDAO> query, CustomerLevelFilter filter)
        {
            switch (filter.OrderType)
            {
            case OrderType.ASC:
                switch (filter.OrderBy)
                {
                case CustomerLevelOrder.Id:
                    query = query.OrderBy(q => q.Id);
                    break;

                case CustomerLevelOrder.Code:
                    query = query.OrderBy(q => q.Code);
                    break;

                case CustomerLevelOrder.Name:
                    query = query.OrderBy(q => q.Name);
                    break;

                case CustomerLevelOrder.Color:
                    query = query.OrderBy(q => q.Color);
                    break;

                case CustomerLevelOrder.PointFrom:
                    query = query.OrderBy(q => q.PointFrom);
                    break;

                case CustomerLevelOrder.PointTo:
                    query = query.OrderBy(q => q.PointTo);
                    break;

                case CustomerLevelOrder.Status:
                    query = query.OrderBy(q => q.StatusId);
                    break;

                case CustomerLevelOrder.Description:
                    query = query.OrderBy(q => q.Description);
                    break;

                case CustomerLevelOrder.Used:
                    query = query.OrderBy(q => q.Used);
                    break;

                case CustomerLevelOrder.Row:
                    query = query.OrderBy(q => q.RowId);
                    break;
                }
                break;

            case OrderType.DESC:
                switch (filter.OrderBy)
                {
                case CustomerLevelOrder.Id:
                    query = query.OrderByDescending(q => q.Id);
                    break;

                case CustomerLevelOrder.Code:
                    query = query.OrderByDescending(q => q.Code);
                    break;

                case CustomerLevelOrder.Name:
                    query = query.OrderByDescending(q => q.Name);
                    break;

                case CustomerLevelOrder.Color:
                    query = query.OrderByDescending(q => q.Color);
                    break;

                case CustomerLevelOrder.PointFrom:
                    query = query.OrderByDescending(q => q.PointFrom);
                    break;

                case CustomerLevelOrder.PointTo:
                    query = query.OrderByDescending(q => q.PointTo);
                    break;

                case CustomerLevelOrder.Status:
                    query = query.OrderByDescending(q => q.StatusId);
                    break;

                case CustomerLevelOrder.Description:
                    query = query.OrderByDescending(q => q.Description);
                    break;

                case CustomerLevelOrder.Used:
                    query = query.OrderByDescending(q => q.Used);
                    break;

                case CustomerLevelOrder.Row:
                    query = query.OrderByDescending(q => q.RowId);
                    break;
                }
                break;
            }
            query = query.Skip(filter.Skip).Take(filter.Take);
            return(query);
        }
Exemple #15
0
 public async Task <CustomerLevelFilter> ToFilter(CustomerLevelFilter filter)
 {
     if (filter.OrFilter == null)
     {
         filter.OrFilter = new List <CustomerLevelFilter>();
     }
     if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0)
     {
         return(filter);
     }
     foreach (var currentFilter in CurrentContext.Filters)
     {
         CustomerLevelFilter subFilter = new CustomerLevelFilter();
         filter.OrFilter.Add(subFilter);
         List <FilterPermissionDefinition> FilterPermissionDefinitions = currentFilter.Value;
         foreach (FilterPermissionDefinition FilterPermissionDefinition in FilterPermissionDefinitions)
         {
             if (FilterPermissionDefinition.Name == nameof(subFilter.Id))
             {
                 subFilter.Id = FilterBuilder.Merge(subFilter.Id, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.Code))
             {
                 subFilter.Code = FilterBuilder.Merge(subFilter.Code, FilterPermissionDefinition.StringFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.Name))
             {
                 subFilter.Name = FilterBuilder.Merge(subFilter.Name, FilterPermissionDefinition.StringFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.Color))
             {
                 subFilter.Color = FilterBuilder.Merge(subFilter.Color, FilterPermissionDefinition.StringFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.PointFrom))
             {
                 subFilter.PointFrom = FilterBuilder.Merge(subFilter.PointFrom, FilterPermissionDefinition.LongFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.PointTo))
             {
                 subFilter.PointTo = FilterBuilder.Merge(subFilter.PointTo, FilterPermissionDefinition.LongFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.StatusId))
             {
                 subFilter.StatusId = FilterBuilder.Merge(subFilter.StatusId, FilterPermissionDefinition.IdFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(subFilter.Description))
             {
                 subFilter.Description = FilterBuilder.Merge(subFilter.Description, FilterPermissionDefinition.StringFilter);
             }
             if (FilterPermissionDefinition.Name == nameof(CurrentContext.UserId) && FilterPermissionDefinition.IdFilter != null)
             {
                 if (FilterPermissionDefinition.IdFilter.Equal.HasValue && FilterPermissionDefinition.IdFilter.Equal.Value == CurrentUserEnum.IS.Id)
                 {
                 }
                 if (FilterPermissionDefinition.IdFilter.Equal.HasValue && FilterPermissionDefinition.IdFilter.Equal.Value == CurrentUserEnum.ISNT.Id)
                 {
                 }
             }
         }
     }
     return(filter);
 }