public async Task <int> Count(CustomerEmailFilter filter) { IQueryable <CustomerEmailDAO> CustomerEmails = DataContext.CustomerEmail.AsNoTracking(); CustomerEmails = DynamicFilter(CustomerEmails, filter); return(await CustomerEmails.CountAsync()); }
public async Task <List <CustomerEmail> > List(CustomerEmailFilter CustomerEmailFilter) { try { List <CustomerEmail> CustomerEmails = await UOW.CustomerEmailRepository.List(CustomerEmailFilter); return(CustomerEmails); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CustomerEmailService)); } return(null); }
public async Task <int> Count(CustomerEmailFilter CustomerEmailFilter) { try { int result = await UOW.CustomerEmailRepository.Count(CustomerEmailFilter); return(result); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CustomerEmailService)); } return(0); }
public async Task <List <CustomerEmail> > List(CustomerEmailFilter filter) { if (filter == null) { return(new List <CustomerEmail>()); } IQueryable <CustomerEmailDAO> CustomerEmailDAOs = DataContext.CustomerEmail.AsNoTracking(); CustomerEmailDAOs = DynamicFilter(CustomerEmailDAOs, filter); CustomerEmailDAOs = DynamicOrder(CustomerEmailDAOs, filter); List <CustomerEmail> CustomerEmails = await DynamicSelect(CustomerEmailDAOs, filter); return(CustomerEmails); }
public async Task <CustomerEmailFilter> ToFilter(CustomerEmailFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <CustomerEmailFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { CustomerEmailFilter subFilter = new CustomerEmailFilter(); 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.CustomerId)) { subFilter.CustomerId = FilterBuilder.Merge(subFilter.CustomerId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.Email)) { subFilter.Email = FilterBuilder.Merge(subFilter.Email, FilterPermissionDefinition.StringFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.EmailTypeId)) { subFilter.EmailTypeId = FilterBuilder.Merge(subFilter.EmailTypeId, FilterPermissionDefinition.IdFilter); } 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 <bool> ValidateId(CustomerEmail CustomerEmail) { CustomerEmailFilter CustomerEmailFilter = new CustomerEmailFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = CustomerEmail.Id }, Selects = CustomerEmailSelect.Id }; int count = await UOW.CustomerEmailRepository.Count(CustomerEmailFilter); if (count == 0) { CustomerEmail.AddError(nameof(CustomerEmailValidator), nameof(CustomerEmail.Id), ErrorCode.IdNotExisted); } return(count == 1); }
private IQueryable <CustomerEmailDAO> DynamicOrder(IQueryable <CustomerEmailDAO> query, CustomerEmailFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case CustomerEmailOrder.Id: query = query.OrderBy(q => q.Id); break; case CustomerEmailOrder.Customer: query = query.OrderBy(q => q.CustomerId); break; case CustomerEmailOrder.Email: query = query.OrderBy(q => q.Email); break; case CustomerEmailOrder.EmailType: query = query.OrderBy(q => q.EmailTypeId); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case CustomerEmailOrder.Id: query = query.OrderByDescending(q => q.Id); break; case CustomerEmailOrder.Customer: query = query.OrderByDescending(q => q.CustomerId); break; case CustomerEmailOrder.Email: query = query.OrderByDescending(q => q.Email); break; case CustomerEmailOrder.EmailType: query = query.OrderByDescending(q => q.EmailTypeId); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
private IQueryable <CustomerEmailDAO> OrFilter(IQueryable <CustomerEmailDAO> query, CustomerEmailFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <CustomerEmailDAO> initQuery = query.Where(q => false); foreach (CustomerEmailFilter CustomerEmailFilter in filter.OrFilter) { IQueryable <CustomerEmailDAO> queryable = query; if (CustomerEmailFilter.Id != null && CustomerEmailFilter.Id.HasValue) { queryable = queryable.Where(q => q.Id, CustomerEmailFilter.Id); } if (CustomerEmailFilter.CustomerId != null && CustomerEmailFilter.CustomerId.HasValue) { queryable = queryable.Where(q => q.CustomerId, CustomerEmailFilter.CustomerId); } if (CustomerEmailFilter.Email != null && CustomerEmailFilter.Email.HasValue) { queryable = queryable.Where(q => q.Email, CustomerEmailFilter.Email); } if (CustomerEmailFilter.EmailTypeId != null && CustomerEmailFilter.EmailTypeId.HasValue) { queryable = queryable.Where(q => q.EmailTypeId, CustomerEmailFilter.EmailTypeId); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <CustomerEmailDAO> DynamicFilter(IQueryable <CustomerEmailDAO> query, CustomerEmailFilter filter) { if (filter == null) { return(query.Where(q => false)); } if (filter.Id != null && filter.Id.HasValue) { query = query.Where(q => q.Id, filter.Id); } if (filter.CustomerId != null && filter.CustomerId.HasValue) { query = query.Where(q => q.CustomerId, filter.CustomerId); } if (filter.Email != null && filter.Email.HasValue) { query = query.Where(q => q.Email, filter.Email); } if (filter.EmailTypeId != null && filter.EmailTypeId.HasValue) { query = query.Where(q => q.EmailTypeId, filter.EmailTypeId); } query = OrFilter(query, filter); return(query); }
private async Task <List <CustomerEmail> > DynamicSelect(IQueryable <CustomerEmailDAO> query, CustomerEmailFilter filter) { List <CustomerEmail> CustomerEmails = await query.Select(q => new CustomerEmail() { Id = filter.Selects.Contains(CustomerEmailSelect.Id) ? q.Id : default(long), CustomerId = filter.Selects.Contains(CustomerEmailSelect.Customer) ? q.CustomerId : default(long), Email = filter.Selects.Contains(CustomerEmailSelect.Email) ? q.Email : default(string), EmailTypeId = filter.Selects.Contains(CustomerEmailSelect.EmailType) ? q.EmailTypeId : default(long), Customer = filter.Selects.Contains(CustomerEmailSelect.Customer) && q.Customer != null ? new Customer { Id = q.Customer.Id, Code = q.Customer.Code, Name = q.Customer.Name, Phone = q.Customer.Phone, Address = q.Customer.Address, NationId = q.Customer.NationId, ProvinceId = q.Customer.ProvinceId, DistrictId = q.Customer.DistrictId, WardId = q.Customer.WardId, CustomerTypeId = q.Customer.CustomerTypeId, Birthday = q.Customer.Birthday, Email = q.Customer.Email, ProfessionId = q.Customer.ProfessionId, CustomerResourceId = q.Customer.CustomerResourceId, SexId = q.Customer.SexId, StatusId = q.Customer.StatusId, CompanyId = q.Customer.CompanyId, ParentCompanyId = q.Customer.ParentCompanyId, TaxCode = q.Customer.TaxCode, Fax = q.Customer.Fax, Website = q.Customer.Website, NumberOfEmployee = q.Customer.NumberOfEmployee, BusinessTypeId = q.Customer.BusinessTypeId, Investment = q.Customer.Investment, RevenueAnnual = q.Customer.RevenueAnnual, IsSupplier = q.Customer.IsSupplier, Descreption = q.Customer.Descreption, Used = q.Customer.Used, RowId = q.Customer.RowId, } : null, EmailType = filter.Selects.Contains(CustomerEmailSelect.EmailType) && q.EmailType != null ? new EmailType { Id = q.EmailType.Id, Code = q.EmailType.Code, Name = q.EmailType.Name, } : null, }).ToListAsync(); return(CustomerEmails); }