public async Task <int> Count(CustomerLevelFilter filter) { IQueryable <CustomerLevelDAO> CustomerLevels = DataContext.CustomerLevel.AsNoTracking(); CustomerLevels = DynamicFilter(CustomerLevels, filter); return(await CustomerLevels.CountAsync()); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }