public async Task <ActionResult <List <Customer_CustomerEmailHistoryDTO> > > ListCustomerEmailHistory([FromBody] Customer_CustomerEmailHistoryFilterDTO Customer_CustomerEmailHistoryFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CustomerEmailHistoryFilter CustomerEmailHistoryFilter = new CustomerEmailHistoryFilter(); CustomerEmailHistoryFilter.Skip = Customer_CustomerEmailHistoryFilterDTO.Skip; CustomerEmailHistoryFilter.Take = Customer_CustomerEmailHistoryFilterDTO.Take; CustomerEmailHistoryFilter.OrderBy = CustomerEmailHistoryOrder.Id; CustomerEmailHistoryFilter.OrderType = OrderType.ASC; CustomerEmailHistoryFilter.Selects = CustomerEmailHistorySelect.ALL; CustomerEmailHistoryFilter.Id = Customer_CustomerEmailHistoryFilterDTO.Id; CustomerEmailHistoryFilter.Title = Customer_CustomerEmailHistoryFilterDTO.Title; CustomerEmailHistoryFilter.Content = Customer_CustomerEmailHistoryFilterDTO.Content; CustomerEmailHistoryFilter.CreatorId = Customer_CustomerEmailHistoryFilterDTO.CreatorId; CustomerEmailHistoryFilter.CreatedAt = Customer_CustomerEmailHistoryFilterDTO.CreatedAt; CustomerEmailHistoryFilter.CustomerId = Customer_CustomerEmailHistoryFilterDTO.CustomerId; CustomerEmailHistoryFilter.EmailStatusId = Customer_CustomerEmailHistoryFilterDTO.EmailStatusId; CustomerEmailHistoryFilter.Reciepient = Customer_CustomerEmailHistoryFilterDTO.Reciepient; List <CustomerEmailHistory> CustomerEmailHistorys = await CustomerEmailHistoryService.List(CustomerEmailHistoryFilter); List <Customer_CustomerEmailHistoryDTO> Customer_CustomerEmailHistoryDTOs = CustomerEmailHistorys .Select(x => new Customer_CustomerEmailHistoryDTO(x)).ToList(); return(Customer_CustomerEmailHistoryDTOs); }
public async Task <int> Count(CustomerEmailHistoryFilter filter) { IQueryable <CustomerEmailHistoryDAO> CustomerEmailHistories = DataContext.CustomerEmailHistory.AsNoTracking(); CustomerEmailHistories = DynamicFilter(CustomerEmailHistories, filter); return(await CustomerEmailHistories.CountAsync()); }
public async Task <CustomerEmailHistoryFilter> ToFilter(CustomerEmailHistoryFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <CustomerEmailHistoryFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { CustomerEmailHistoryFilter subFilter = new CustomerEmailHistoryFilter(); 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.Title)) { subFilter.Title = FilterBuilder.Merge(subFilter.Title, FilterPermissionDefinition.StringFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.Content)) { subFilter.Content = FilterBuilder.Merge(subFilter.Content, FilterPermissionDefinition.StringFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.Reciepient)) { subFilter.Reciepient = FilterBuilder.Merge(subFilter.Reciepient, FilterPermissionDefinition.StringFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.CustomerId)) { subFilter.CustomerId = FilterBuilder.Merge(subFilter.CustomerId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.CreatorId)) { subFilter.CreatorId = FilterBuilder.Merge(subFilter.CreatorId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.EmailStatusId)) { subFilter.EmailStatusId = FilterBuilder.Merge(subFilter.EmailStatusId, 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 <List <CustomerEmailHistory> > List(CustomerEmailHistoryFilter filter) { if (filter == null) { return(new List <CustomerEmailHistory>()); } IQueryable <CustomerEmailHistoryDAO> CustomerEmailHistoryDAOs = DataContext.CustomerEmailHistory.AsNoTracking(); CustomerEmailHistoryDAOs = DynamicFilter(CustomerEmailHistoryDAOs, filter); CustomerEmailHistoryDAOs = DynamicOrder(CustomerEmailHistoryDAOs, filter); List <CustomerEmailHistory> CustomerEmailHistories = await DynamicSelect(CustomerEmailHistoryDAOs, filter); return(CustomerEmailHistories); }
public async Task <List <CustomerEmailHistory> > List(CustomerEmailHistoryFilter CustomerEmailHistoryFilter) { try { List <CustomerEmailHistory> CustomerEmailHistorys = await UOW.CustomerEmailHistoryRepository.List(CustomerEmailHistoryFilter); return(CustomerEmailHistorys); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CustomerEmailHistoryService)); } return(null); }
public async Task <int> Count(CustomerEmailHistoryFilter CustomerEmailHistoryFilter) { try { int result = await UOW.CustomerEmailHistoryRepository.Count(CustomerEmailHistoryFilter); return(result); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CustomerEmailHistoryService)); } return(0); }
public async Task <bool> ValidateId(CustomerEmailHistory CustomerEmailHistory) { CustomerEmailHistoryFilter CustomerEmailHistoryFilter = new CustomerEmailHistoryFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = CustomerEmailHistory.Id }, Selects = CustomerEmailHistorySelect.Id }; int count = await UOW.CustomerEmailHistoryRepository.Count(CustomerEmailHistoryFilter); if (count == 0) { CustomerEmailHistory.AddError(nameof(CustomerEmailHistoryValidator), nameof(CustomerEmailHistory.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public async Task <ActionResult <long> > CountCustomerEmailHistory([FromBody] Customer_CustomerEmailHistoryFilterDTO Customer_CustomerEmailHistoryFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CustomerEmailHistoryFilter CustomerEmailHistoryFilter = new CustomerEmailHistoryFilter(); CustomerEmailHistoryFilter.Id = Customer_CustomerEmailHistoryFilterDTO.Id; CustomerEmailHistoryFilter.Title = Customer_CustomerEmailHistoryFilterDTO.Title; CustomerEmailHistoryFilter.Content = Customer_CustomerEmailHistoryFilterDTO.Content; CustomerEmailHistoryFilter.CreatorId = Customer_CustomerEmailHistoryFilterDTO.CreatorId; CustomerEmailHistoryFilter.CreatedAt = Customer_CustomerEmailHistoryFilterDTO.CreatedAt; CustomerEmailHistoryFilter.CustomerId = Customer_CustomerEmailHistoryFilterDTO.CustomerId; CustomerEmailHistoryFilter.EmailStatusId = Customer_CustomerEmailHistoryFilterDTO.EmailStatusId; CustomerEmailHistoryFilter.Reciepient = Customer_CustomerEmailHistoryFilterDTO.Reciepient; return(await CustomerEmailHistoryService.Count(CustomerEmailHistoryFilter)); }
private IQueryable <CustomerEmailHistoryDAO> OrFilter(IQueryable <CustomerEmailHistoryDAO> query, CustomerEmailHistoryFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <CustomerEmailHistoryDAO> initQuery = query.Where(q => false); foreach (CustomerEmailHistoryFilter CustomerEmailHistoryFilter in filter.OrFilter) { IQueryable <CustomerEmailHistoryDAO> queryable = query; if (CustomerEmailHistoryFilter.Id != null && CustomerEmailHistoryFilter.Id.HasValue) { queryable = queryable.Where(q => q.Id, CustomerEmailHistoryFilter.Id); } if (CustomerEmailHistoryFilter.Title != null && CustomerEmailHistoryFilter.Title.HasValue) { queryable = queryable.Where(q => q.Title, CustomerEmailHistoryFilter.Title); } if (CustomerEmailHistoryFilter.Content != null && CustomerEmailHistoryFilter.Content.HasValue) { queryable = queryable.Where(q => q.Content, CustomerEmailHistoryFilter.Content); } if (CustomerEmailHistoryFilter.Reciepient != null && CustomerEmailHistoryFilter.Reciepient.HasValue) { queryable = queryable.Where(q => q.Reciepient, CustomerEmailHistoryFilter.Reciepient); } if (CustomerEmailHistoryFilter.CustomerId != null && CustomerEmailHistoryFilter.CustomerId.HasValue) { queryable = queryable.Where(q => q.CustomerId, CustomerEmailHistoryFilter.CustomerId); } if (CustomerEmailHistoryFilter.CreatorId != null && CustomerEmailHistoryFilter.CreatorId.HasValue) { queryable = queryable.Where(q => q.CreatorId, CustomerEmailHistoryFilter.CreatorId); } if (CustomerEmailHistoryFilter.EmailStatusId != null && CustomerEmailHistoryFilter.EmailStatusId.HasValue) { queryable = queryable.Where(q => q.EmailStatusId, CustomerEmailHistoryFilter.EmailStatusId); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <CustomerEmailHistoryDAO> DynamicFilter(IQueryable <CustomerEmailHistoryDAO> query, CustomerEmailHistoryFilter 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.Title != null && filter.Title.HasValue) { query = query.Where(q => q.Title, filter.Title); } if (filter.Content != null && filter.Content.HasValue) { query = query.Where(q => q.Content, filter.Content); } if (filter.Reciepient != null && filter.Reciepient.HasValue) { query = query.Where(q => q.Reciepient, filter.Reciepient); } if (filter.CustomerId != null && filter.CustomerId.HasValue) { query = query.Where(q => q.CustomerId, filter.CustomerId); } if (filter.CreatorId != null && filter.CreatorId.HasValue) { query = query.Where(q => q.CreatorId, filter.CreatorId); } if (filter.EmailStatusId != null && filter.EmailStatusId.HasValue) { query = query.Where(q => q.EmailStatusId, filter.EmailStatusId); } query = OrFilter(query, filter); return(query); }
private async Task <List <CustomerEmailHistory> > DynamicSelect(IQueryable <CustomerEmailHistoryDAO> query, CustomerEmailHistoryFilter filter) { List <CustomerEmailHistory> CustomerEmailHistories = await query.Select(q => new CustomerEmailHistory() { Id = filter.Selects.Contains(CustomerEmailHistorySelect.Id) ? q.Id : default(long), Title = filter.Selects.Contains(CustomerEmailHistorySelect.Title) ? q.Title : default(string), Content = filter.Selects.Contains(CustomerEmailHistorySelect.Content) ? q.Content : default(string), Reciepient = filter.Selects.Contains(CustomerEmailHistorySelect.Reciepient) ? q.Reciepient : default(string), CustomerId = filter.Selects.Contains(CustomerEmailHistorySelect.Customer) ? q.CustomerId : default(long), CreatorId = filter.Selects.Contains(CustomerEmailHistorySelect.Creator) ? q.CreatorId : default(long), EmailStatusId = filter.Selects.Contains(CustomerEmailHistorySelect.EmailStatus) ? q.EmailStatusId : default(long), Creator = filter.Selects.Contains(CustomerEmailHistorySelect.Creator) && q.Creator != null ? new AppUser { Id = q.Creator.Id, Username = q.Creator.Username, DisplayName = q.Creator.DisplayName, Address = q.Creator.Address, Email = q.Creator.Email, Phone = q.Creator.Phone, SexId = q.Creator.SexId, Birthday = q.Creator.Birthday, Avatar = q.Creator.Avatar, Department = q.Creator.Department, OrganizationId = q.Creator.OrganizationId, Longitude = q.Creator.Longitude, Latitude = q.Creator.Latitude, StatusId = q.Creator.StatusId, RowId = q.Creator.RowId, Used = q.Creator.Used, } : null, Customer = filter.Selects.Contains(CustomerEmailHistorySelect.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, EmailStatus = filter.Selects.Contains(CustomerEmailHistorySelect.EmailStatus) && q.EmailStatus != null ? new EmailStatus { Id = q.EmailStatus.Id, Code = q.EmailStatus.Code, Name = q.EmailStatus.Name, } : null, }).ToListAsync(); return(CustomerEmailHistories); }
private IQueryable <CustomerEmailHistoryDAO> DynamicOrder(IQueryable <CustomerEmailHistoryDAO> query, CustomerEmailHistoryFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case CustomerEmailHistoryOrder.Id: query = query.OrderBy(q => q.Id); break; case CustomerEmailHistoryOrder.Title: query = query.OrderBy(q => q.Title); break; case CustomerEmailHistoryOrder.Content: query = query.OrderBy(q => q.Content); break; case CustomerEmailHistoryOrder.Reciepient: query = query.OrderBy(q => q.Reciepient); break; case CustomerEmailHistoryOrder.Customer: query = query.OrderBy(q => q.CustomerId); break; case CustomerEmailHistoryOrder.Creator: query = query.OrderBy(q => q.CreatorId); break; case CustomerEmailHistoryOrder.EmailStatus: query = query.OrderBy(q => q.EmailStatusId); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case CustomerEmailHistoryOrder.Id: query = query.OrderByDescending(q => q.Id); break; case CustomerEmailHistoryOrder.Title: query = query.OrderByDescending(q => q.Title); break; case CustomerEmailHistoryOrder.Content: query = query.OrderByDescending(q => q.Content); break; case CustomerEmailHistoryOrder.Reciepient: query = query.OrderByDescending(q => q.Reciepient); break; case CustomerEmailHistoryOrder.Customer: query = query.OrderByDescending(q => q.CustomerId); break; case CustomerEmailHistoryOrder.Creator: query = query.OrderByDescending(q => q.CreatorId); break; case CustomerEmailHistoryOrder.EmailStatus: query = query.OrderByDescending(q => q.EmailStatusId); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }