public async Task <ActionResult <List <CustomerGrouping_CustomerGroupingDTO> > > FilterListCustomerGroupinging([FromBody] CustomerGrouping_CustomerGroupingFilterDTO CustomerGrouping_CustomerGroupingFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CustomerGroupingFilter CustomerGroupingFilter = new CustomerGroupingFilter(); CustomerGroupingFilter.Skip = 0; CustomerGroupingFilter.Take = int.MaxValue; CustomerGroupingFilter.OrderBy = CustomerGroupingOrder.Id; CustomerGroupingFilter.OrderType = OrderType.ASC; CustomerGroupingFilter.Selects = CustomerGroupingSelect.ALL; CustomerGroupingFilter.Id = CustomerGrouping_CustomerGroupingFilterDTO.Id; CustomerGroupingFilter.Code = CustomerGrouping_CustomerGroupingFilterDTO.Code; CustomerGroupingFilter.Name = CustomerGrouping_CustomerGroupingFilterDTO.Name; CustomerGroupingFilter.CustomerTypeId = CustomerGrouping_CustomerGroupingFilterDTO.CustomerTypeId; CustomerGroupingFilter.ParentId = CustomerGrouping_CustomerGroupingFilterDTO.ParentId; CustomerGroupingFilter.Path = CustomerGrouping_CustomerGroupingFilterDTO.Path; CustomerGroupingFilter.Level = CustomerGrouping_CustomerGroupingFilterDTO.Level; CustomerGroupingFilter.StatusId = CustomerGrouping_CustomerGroupingFilterDTO.StatusId; CustomerGroupingFilter.Description = CustomerGrouping_CustomerGroupingFilterDTO.Description; List <CustomerGrouping> CustomerGroupings = await CustomerGroupingService.List(CustomerGroupingFilter); List <CustomerGrouping_CustomerGroupingDTO> CustomerGrouping_CustomerGroupingDTOs = CustomerGroupings .Select(x => new CustomerGrouping_CustomerGroupingDTO(x)).ToList(); return(CustomerGrouping_CustomerGroupingDTOs); }
public async Task <int> Count(CustomerGroupingFilter filter) { IQueryable <CustomerGroupingDAO> CustomerGroupingDAOs = DataContext.CustomerGrouping; CustomerGroupingDAOs = DynamicFilter(CustomerGroupingDAOs, filter); return(await CustomerGroupingDAOs.CountAsync()); }
public async Task <ActionResult <bool> > BulkDelete([FromBody] List <long> Ids) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CustomerGroupingFilter CustomerGroupingFilter = new CustomerGroupingFilter(); CustomerGroupingFilter = await CustomerGroupingService.ToFilter(CustomerGroupingFilter); CustomerGroupingFilter.Id = new IdFilter { In = Ids }; CustomerGroupingFilter.Selects = CustomerGroupingSelect.Id; CustomerGroupingFilter.Skip = 0; CustomerGroupingFilter.Take = int.MaxValue; List <CustomerGrouping> CustomerGroupings = await CustomerGroupingService.List(CustomerGroupingFilter); CustomerGroupings = await CustomerGroupingService.BulkDelete(CustomerGroupings); if (CustomerGroupings.Any(x => !x.IsValidated)) { return(BadRequest(CustomerGroupings.Where(x => !x.IsValidated))); } return(true); }
public async Task <List <Role_CustomerGroupingDTO> > SingleListCustomerGrouping([FromBody] Role_CustomerGroupingFilterDTO Role_CustomerGroupingFilterDTO) { if (!ModelState.IsValid) { throw new BindException(ModelState); } CustomerGroupingFilter CustomerGroupingFilter = new CustomerGroupingFilter(); CustomerGroupingFilter.Skip = 0; CustomerGroupingFilter.Take = int.MaxValue; CustomerGroupingFilter.OrderBy = CustomerGroupingOrder.Id; CustomerGroupingFilter.OrderType = OrderType.ASC; CustomerGroupingFilter.Selects = CustomerGroupingSelect.ALL; CustomerGroupingFilter.Id = Role_CustomerGroupingFilterDTO.Id; CustomerGroupingFilter.Name = Role_CustomerGroupingFilterDTO.Name; CustomerGroupingFilter.Code = Role_CustomerGroupingFilterDTO.Code; CustomerGroupingFilter.Path = Role_CustomerGroupingFilterDTO.Path; CustomerGroupingFilter.CustomerTypeId = Role_CustomerGroupingFilterDTO.CustomerTypeId; CustomerGroupingFilter.Level = Role_CustomerGroupingFilterDTO.Level; CustomerGroupingFilter.StatusId = Role_CustomerGroupingFilterDTO.StatusId; CustomerGroupingFilter.Description = Role_CustomerGroupingFilterDTO.Description; CustomerGroupingFilter.ParentId = Role_CustomerGroupingFilterDTO.ParentId; List <CustomerGrouping> CustomerGroupings = await CustomerGroupingService.List(CustomerGroupingFilter); List <Role_CustomerGroupingDTO> Role_CustomerGroupingDTOs = CustomerGroupings .Select(x => new Role_CustomerGroupingDTO(x)).ToList(); return(Role_CustomerGroupingDTOs); }
public async Task <int> Count([FromBody] CustomerGroupingMaster_CustomerGroupingFilterDTO CustomerGroupingMaster_CustomerGroupingFilterDTO) { if (!ModelState.IsValid) { throw new MessageException(ModelState); } CustomerGroupingFilter CustomerGroupingFilter = ConvertFilterDTOToFilterEntity(CustomerGroupingMaster_CustomerGroupingFilterDTO); return(await CustomerGroupingService.Count(CustomerGroupingFilter)); }
public async Task <List <CustomerGroupingMaster_CustomerGroupingDTO> > List([FromBody] CustomerGroupingMaster_CustomerGroupingFilterDTO CustomerGroupingMaster_CustomerGroupingFilterDTO) { if (!ModelState.IsValid) { throw new MessageException(ModelState); } CustomerGroupingFilter CustomerGroupingFilter = ConvertFilterDTOToFilterEntity(CustomerGroupingMaster_CustomerGroupingFilterDTO); List <CustomerGrouping> CustomerGroupings = await CustomerGroupingService.List(CustomerGroupingFilter); return(CustomerGroupings.Select(c => new CustomerGroupingMaster_CustomerGroupingDTO(c)).ToList()); }
public async Task <int> Count(CustomerGroupingFilter CustomerGroupingFilter) { try { int result = await UOW.CustomerGroupingRepository.Count(CustomerGroupingFilter); return(result); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CustomerGroupingService)); } return(0); }
public async Task <List <CustomerGrouping> > List(CustomerGroupingFilter filter) { if (filter == null) { return(new List <CustomerGrouping>()); } IQueryable <CustomerGroupingDAO> CustomerGroupingDAOs = DataContext.CustomerGrouping; CustomerGroupingDAOs = DynamicFilter(CustomerGroupingDAOs, filter); CustomerGroupingDAOs = DynamicOrder(CustomerGroupingDAOs, filter); var CustomerGroupings = await DynamicSelect(CustomerGroupingDAOs, filter); return(CustomerGroupings); }
public async Task <List <CustomerGrouping> > List(CustomerGroupingFilter CustomerGroupingFilter) { try { List <CustomerGrouping> CustomerGroupings = await UOW.CustomerGroupingRepository.List(CustomerGroupingFilter); return(CustomerGroupings); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CustomerGroupingService)); } return(null); }
public CustomerGroupingFilter ConvertFilterDTOToFilterEntity(CustomerGroupingMaster_CustomerGroupingFilterDTO CustomerGroupingMaster_CustomerGroupingFilterDTO) { CustomerGroupingFilter CustomerGroupingFilter = new CustomerGroupingFilter(); CustomerGroupingFilter.Selects = CustomerGroupingSelect.ALL; CustomerGroupingFilter.Id = new LongFilter { Equal = CustomerGroupingMaster_CustomerGroupingFilterDTO.Id }; CustomerGroupingFilter.Name = new StringFilter { StartsWith = CustomerGroupingMaster_CustomerGroupingFilterDTO.Name }; return(CustomerGroupingFilter); }
public async Task <ActionResult <int> > Count([FromBody] CustomerGrouping_CustomerGroupingFilterDTO CustomerGrouping_CustomerGroupingFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CustomerGroupingFilter CustomerGroupingFilter = ConvertFilterDTOToFilterEntity(CustomerGrouping_CustomerGroupingFilterDTO); CustomerGroupingFilter = await CustomerGroupingService.ToFilter(CustomerGroupingFilter); int count = await CustomerGroupingService.Count(CustomerGroupingFilter); return(count); }
public async Task <bool> ValidateId(CustomerGrouping CustomerGrouping) { CustomerGroupingFilter CustomerGroupingFilter = new CustomerGroupingFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = CustomerGrouping.Id }, Selects = CustomerGroupingSelect.Id }; int count = await UOW.CustomerGroupingRepository.Count(CustomerGroupingFilter); if (count == 0) { CustomerGrouping.AddError(nameof(CustomerGroupingValidator), nameof(CustomerGrouping.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public async Task <ActionResult <List <CustomerGrouping_CustomerGroupingDTO> > > List([FromBody] CustomerGrouping_CustomerGroupingFilterDTO CustomerGrouping_CustomerGroupingFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CustomerGroupingFilter CustomerGroupingFilter = ConvertFilterDTOToFilterEntity(CustomerGrouping_CustomerGroupingFilterDTO); CustomerGroupingFilter = await CustomerGroupingService.ToFilter(CustomerGroupingFilter); List <CustomerGrouping> CustomerGroupings = await CustomerGroupingService.List(CustomerGroupingFilter); List <CustomerGrouping_CustomerGroupingDTO> CustomerGrouping_CustomerGroupingDTOs = CustomerGroupings .Select(c => new CustomerGrouping_CustomerGroupingDTO(c)).ToList(); return(CustomerGrouping_CustomerGroupingDTOs); }
private CustomerGroupingFilter ConvertFilterDTOToFilterEntity(CustomerGrouping_CustomerGroupingFilterDTO CustomerGrouping_CustomerGroupingFilterDTO) { CustomerGroupingFilter CustomerGroupingFilter = new CustomerGroupingFilter(); CustomerGroupingFilter.Selects = CustomerGroupingSelect.ALL; CustomerGroupingFilter.Skip = 0; CustomerGroupingFilter.Take = 99999; CustomerGroupingFilter.OrderBy = CustomerGrouping_CustomerGroupingFilterDTO.OrderBy; CustomerGroupingFilter.OrderType = CustomerGrouping_CustomerGroupingFilterDTO.OrderType; CustomerGroupingFilter.Id = CustomerGrouping_CustomerGroupingFilterDTO.Id; CustomerGroupingFilter.Code = CustomerGrouping_CustomerGroupingFilterDTO.Code; CustomerGroupingFilter.Name = CustomerGrouping_CustomerGroupingFilterDTO.Name; CustomerGroupingFilter.CustomerTypeId = CustomerGrouping_CustomerGroupingFilterDTO.CustomerTypeId; CustomerGroupingFilter.ParentId = CustomerGrouping_CustomerGroupingFilterDTO.ParentId; CustomerGroupingFilter.Path = CustomerGrouping_CustomerGroupingFilterDTO.Path; CustomerGroupingFilter.Level = CustomerGrouping_CustomerGroupingFilterDTO.Level; CustomerGroupingFilter.StatusId = CustomerGrouping_CustomerGroupingFilterDTO.StatusId; CustomerGroupingFilter.Description = CustomerGrouping_CustomerGroupingFilterDTO.Description; CustomerGroupingFilter.CreatedAt = CustomerGrouping_CustomerGroupingFilterDTO.CreatedAt; CustomerGroupingFilter.UpdatedAt = CustomerGrouping_CustomerGroupingFilterDTO.UpdatedAt; return(CustomerGroupingFilter); }
private async Task <bool> HasPermission(long Id) { CustomerGroupingFilter CustomerGroupingFilter = new CustomerGroupingFilter(); CustomerGroupingFilter = await CustomerGroupingService.ToFilter(CustomerGroupingFilter); if (Id == 0) { } else { CustomerGroupingFilter.Id = new IdFilter { Equal = Id }; int count = await CustomerGroupingService.Count(CustomerGroupingFilter); if (count == 0) { return(false); } } return(true); }
public async Task <CustomerGroupingFilter> ToFilter(CustomerGroupingFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <CustomerGroupingFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { CustomerGroupingFilter subFilter = new CustomerGroupingFilter(); 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.CustomerTypeId)) { subFilter.CustomerTypeId = FilterBuilder.Merge(subFilter.CustomerTypeId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.ParentId)) { subFilter.ParentId = FilterBuilder.Merge(subFilter.ParentId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.Path)) { subFilter.Path = FilterBuilder.Merge(subFilter.Path, FilterPermissionDefinition.StringFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.Level)) { subFilter.Level = FilterBuilder.Merge(subFilter.Level, 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); }
public async Task <List <CustomerGrouping> > List(CustomerGroupingFilter CustomerGroupingFilter) { List <CustomerGrouping> CustomerGroupings = await UOW.CustomerGroupingRepository.List(CustomerGroupingFilter); return(CustomerGroupings); }
public async Task <int> Count(CustomerGroupingFilter CustomerGroupingFilter) { int result = await UOW.CustomerGroupingRepository.Count(CustomerGroupingFilter); return(result); }
private async Task <List <CustomerGrouping> > DynamicSelect(IQueryable <CustomerGroupingDAO> query, CustomerGroupingFilter filter) { List <CustomerGrouping> CustomerGroupings = await query.Select(q => new CustomerGrouping() { Id = filter.Selects.Contains(CustomerGroupingSelect.Id) ? q.Id : default(long), Name = filter.Selects.Contains(CustomerGroupingSelect.Name) ? q.Name : default(string), }).ToListAsync(); return(CustomerGroupings); }
private IQueryable <CustomerGroupingDAO> DynamicOrder(IQueryable <CustomerGroupingDAO> query, CustomerGroupingFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case CustomerGroupingOrder.Id: query = query.OrderBy(q => q.Id); break; case CustomerGroupingOrder.Name: query = query.OrderBy(q => q.Name); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case CustomerGroupingOrder.Id: query = query.OrderByDescending(q => q.Id); break; case CustomerGroupingOrder.Name: query = query.OrderByDescending(q => q.Name); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
private IQueryable <CustomerGroupingDAO> DynamicFilter(IQueryable <CustomerGroupingDAO> query, CustomerGroupingFilter filter) { if (filter == null) { return(query.Where(q => false)); } if (filter.Id != null) { query = query.Where(q => q.Id, filter.Id); } if (filter.Name != null) { query = query.Where(q => q.Name, filter.Name); } if (filter.Ids != null) { query = query.Where(q => filter.Ids.Contains(q.Id)); } if (filter.ExceptIds != null) { query = query.Where(q => !filter.ExceptIds.Contains(q.Id)); } return(query); }
private IQueryable <CustomerGroupingDAO> DynamicOrder(IQueryable <CustomerGroupingDAO> query, CustomerGroupingFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case CustomerGroupingOrder.Id: query = query.OrderBy(q => q.Id); break; case CustomerGroupingOrder.Code: query = query.OrderBy(q => q.Code); break; case CustomerGroupingOrder.Name: query = query.OrderBy(q => q.Name); break; case CustomerGroupingOrder.CustomerType: query = query.OrderBy(q => q.CustomerTypeId); break; case CustomerGroupingOrder.Parent: query = query.OrderBy(q => q.ParentId); break; case CustomerGroupingOrder.Path: query = query.OrderBy(q => q.Path); break; case CustomerGroupingOrder.Level: query = query.OrderBy(q => q.Level); break; case CustomerGroupingOrder.Status: query = query.OrderBy(q => q.StatusId); break; case CustomerGroupingOrder.Description: query = query.OrderBy(q => q.Description); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case CustomerGroupingOrder.Id: query = query.OrderByDescending(q => q.Id); break; case CustomerGroupingOrder.Code: query = query.OrderByDescending(q => q.Code); break; case CustomerGroupingOrder.Name: query = query.OrderByDescending(q => q.Name); break; case CustomerGroupingOrder.CustomerType: query = query.OrderByDescending(q => q.CustomerTypeId); break; case CustomerGroupingOrder.Parent: query = query.OrderByDescending(q => q.ParentId); break; case CustomerGroupingOrder.Path: query = query.OrderByDescending(q => q.Path); break; case CustomerGroupingOrder.Level: query = query.OrderByDescending(q => q.Level); break; case CustomerGroupingOrder.Status: query = query.OrderByDescending(q => q.StatusId); break; case CustomerGroupingOrder.Description: query = query.OrderByDescending(q => q.Description); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
private async Task <List <CustomerGrouping> > DynamicSelect(IQueryable <CustomerGroupingDAO> query, CustomerGroupingFilter filter) { List <CustomerGrouping> CustomerGroupings = await query.Select(q => new CustomerGrouping() { Id = filter.Selects.Contains(CustomerGroupingSelect.Id) ? q.Id : default(long), Code = filter.Selects.Contains(CustomerGroupingSelect.Code) ? q.Code : default(string), Name = filter.Selects.Contains(CustomerGroupingSelect.Name) ? q.Name : default(string), CustomerTypeId = filter.Selects.Contains(CustomerGroupingSelect.CustomerType) ? q.CustomerTypeId : default(long), ParentId = filter.Selects.Contains(CustomerGroupingSelect.Parent) ? q.ParentId : default(long?), Path = filter.Selects.Contains(CustomerGroupingSelect.Path) ? q.Path : default(string), Level = filter.Selects.Contains(CustomerGroupingSelect.Level) ? q.Level : default(long), StatusId = filter.Selects.Contains(CustomerGroupingSelect.Status) ? q.StatusId : default(long), Description = filter.Selects.Contains(CustomerGroupingSelect.Description) ? q.Description : default(string), CustomerType = filter.Selects.Contains(CustomerGroupingSelect.CustomerType) && q.CustomerType != null ? new CustomerType { Id = q.CustomerType.Id, Code = q.CustomerType.Code, Name = q.CustomerType.Name, } : null, Parent = filter.Selects.Contains(CustomerGroupingSelect.Parent) && q.Parent != null ? new CustomerGrouping { Id = q.Parent.Id, Code = q.Parent.Code, Name = q.Parent.Name, CustomerTypeId = q.Parent.CustomerTypeId, ParentId = q.Parent.ParentId, Path = q.Parent.Path, Level = q.Parent.Level, StatusId = q.Parent.StatusId, Description = q.Parent.Description, } : null, Status = filter.Selects.Contains(CustomerGroupingSelect.Status) && q.Status != null ? new Status { Id = q.Status.Id, Code = q.Status.Code, Name = q.Status.Name, } : null, }).ToListAsync(); return(CustomerGroupings); }
private IQueryable <CustomerGroupingDAO> DynamicFilter(IQueryable <CustomerGroupingDAO> query, CustomerGroupingFilter 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.CustomerTypeId != null && filter.CustomerTypeId.HasValue) { query = query.Where(q => q.CustomerTypeId, filter.CustomerTypeId); } if (filter.ParentId != null && filter.ParentId.HasValue) { query = query.Where(q => q.ParentId.HasValue).Where(q => q.ParentId, filter.ParentId); } if (filter.Path != null && filter.Path.HasValue) { query = query.Where(q => q.Path, filter.Path); } if (filter.Level != null && filter.Level.HasValue) { query = query.Where(q => q.Level, filter.Level); } 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); } query = OrFilter(query, filter); return(query); }
private IQueryable <CustomerGroupingDAO> OrFilter(IQueryable <CustomerGroupingDAO> query, CustomerGroupingFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <CustomerGroupingDAO> initQuery = query.Where(q => false); foreach (CustomerGroupingFilter CustomerGroupingFilter in filter.OrFilter) { IQueryable <CustomerGroupingDAO> queryable = query; if (CustomerGroupingFilter.Id != null && CustomerGroupingFilter.Id.HasValue) { queryable = queryable.Where(q => q.Id, CustomerGroupingFilter.Id); } if (CustomerGroupingFilter.Code != null && CustomerGroupingFilter.Code.HasValue) { queryable = queryable.Where(q => q.Code, CustomerGroupingFilter.Code); } if (CustomerGroupingFilter.Name != null && CustomerGroupingFilter.Name.HasValue) { queryable = queryable.Where(q => q.Name, CustomerGroupingFilter.Name); } if (CustomerGroupingFilter.CustomerTypeId != null && CustomerGroupingFilter.CustomerTypeId.HasValue) { queryable = queryable.Where(q => q.CustomerTypeId, CustomerGroupingFilter.CustomerTypeId); } if (CustomerGroupingFilter.ParentId != null && CustomerGroupingFilter.ParentId.HasValue) { queryable = queryable.Where(q => q.ParentId.HasValue).Where(q => q.ParentId, CustomerGroupingFilter.ParentId); } if (CustomerGroupingFilter.Path != null && CustomerGroupingFilter.Path.HasValue) { queryable = queryable.Where(q => q.Path, CustomerGroupingFilter.Path); } if (CustomerGroupingFilter.Level != null && CustomerGroupingFilter.Level.HasValue) { queryable = queryable.Where(q => q.Level, CustomerGroupingFilter.Level); } if (CustomerGroupingFilter.StatusId != null && CustomerGroupingFilter.StatusId.HasValue) { queryable = queryable.Where(q => q.StatusId, CustomerGroupingFilter.StatusId); } if (CustomerGroupingFilter.Description != null && CustomerGroupingFilter.Description.HasValue) { queryable = queryable.Where(q => q.Description, CustomerGroupingFilter.Description); } initQuery = initQuery.Union(queryable); } return(initQuery); }