public async Task <int> Count(CustomerLeadActivityFilter filter) { IQueryable <CustomerLeadActivityDAO> CustomerLeadActivities = DataContext.CustomerLeadActivity.AsNoTracking(); CustomerLeadActivities = DynamicFilter(CustomerLeadActivities, filter); return(await CustomerLeadActivities.CountAsync()); }
private CustomerLeadActivityFilter ConvertFilterDTOToFilterEntity(CustomerLead_CustomerLeadActivityFilterDTO CustomerLead_CustomerLeadActivityFilterDTO) { CustomerLeadActivityFilter CustomerLeadActivityFilter = new CustomerLeadActivityFilter(); CustomerLeadActivityFilter.Selects = CustomerLeadActivitySelect.ALL; CustomerLeadActivityFilter.Skip = CustomerLead_CustomerLeadActivityFilterDTO.Skip; CustomerLeadActivityFilter.Take = CustomerLead_CustomerLeadActivityFilterDTO.Take; CustomerLeadActivityFilter.OrderBy = CustomerLead_CustomerLeadActivityFilterDTO.OrderBy; CustomerLeadActivityFilter.OrderType = CustomerLead_CustomerLeadActivityFilterDTO.OrderType; CustomerLeadActivityFilter.Id = CustomerLead_CustomerLeadActivityFilterDTO.Id; CustomerLeadActivityFilter.Title = CustomerLead_CustomerLeadActivityFilterDTO.Title; CustomerLeadActivityFilter.FromDate = CustomerLead_CustomerLeadActivityFilterDTO.FromDate; CustomerLeadActivityFilter.ToDate = CustomerLead_CustomerLeadActivityFilterDTO.ToDate; CustomerLeadActivityFilter.ActivityTypeId = CustomerLead_CustomerLeadActivityFilterDTO.ActivityTypeId; CustomerLeadActivityFilter.ActivityPriorityId = CustomerLead_CustomerLeadActivityFilterDTO.ActivityPriorityId; CustomerLeadActivityFilter.Description = CustomerLead_CustomerLeadActivityFilterDTO.Description; CustomerLeadActivityFilter.Address = CustomerLead_CustomerLeadActivityFilterDTO.Address; CustomerLeadActivityFilter.CustomerLeadId = CustomerLead_CustomerLeadActivityFilterDTO.CustomerLeadId; CustomerLeadActivityFilter.AppUserId = CustomerLead_CustomerLeadActivityFilterDTO.AppUserId; CustomerLeadActivityFilter.ActivityStatusId = CustomerLead_CustomerLeadActivityFilterDTO.ActivityStatusId; CustomerLeadActivityFilter.CreatedAt = CustomerLead_CustomerLeadActivityFilterDTO.CreatedAt; CustomerLeadActivityFilter.UpdatedAt = CustomerLead_CustomerLeadActivityFilterDTO.UpdatedAt; return(CustomerLeadActivityFilter); }
public async Task <List <CustomerLeadActivity> > List(CustomerLeadActivityFilter filter) { if (filter == null) { return(new List <CustomerLeadActivity>()); } IQueryable <CustomerLeadActivityDAO> CustomerLeadActivityDAOs = DataContext.CustomerLeadActivity.AsNoTracking(); CustomerLeadActivityDAOs = DynamicFilter(CustomerLeadActivityDAOs, filter); CustomerLeadActivityDAOs = DynamicOrder(CustomerLeadActivityDAOs, filter); List <CustomerLeadActivity> CustomerLeadActivities = await DynamicSelect(CustomerLeadActivityDAOs, filter); return(CustomerLeadActivities); }
public async Task <List <CustomerLeadActivity> > List(CustomerLeadActivityFilter CustomerLeadActivityFilter) { try { List <CustomerLeadActivity> CustomerLeadActivitys = await UOW.CustomerLeadActivityRepository.List(CustomerLeadActivityFilter); return(CustomerLeadActivitys); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CustomerLeadActivityService)); } return(null); }
public async Task <int> Count(CustomerLeadActivityFilter CustomerLeadActivityFilter) { try { int result = await UOW.CustomerLeadActivityRepository.Count(CustomerLeadActivityFilter); return(result); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CustomerLeadActivityService)); } return(0); }
public async Task <ActionResult <int> > CountActivity([FromBody] CustomerLead_CustomerLeadActivityFilterDTO CustomerLead_CustomerLeadActivityFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CustomerLeadActivityFilter CustomerLeadActivityFilter = ConvertFilterDTOToFilterEntity(CustomerLead_CustomerLeadActivityFilterDTO); CustomerLeadActivityFilter = await CustomerLeadActivityService.ToFilter(CustomerLeadActivityFilter); int count = await CustomerLeadActivityService.Count(CustomerLeadActivityFilter); return(count); }
public async Task <bool> ValidateId(CustomerLeadActivity CustomerLeadActivity) { CustomerLeadActivityFilter CustomerLeadActivityFilter = new CustomerLeadActivityFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = CustomerLeadActivity.Id }, Selects = CustomerLeadActivitySelect.Id }; int count = await UOW.CustomerLeadActivityRepository.Count(CustomerLeadActivityFilter); if (count == 0) { CustomerLeadActivity.AddError(nameof(CustomerLeadActivityValidator), nameof(CustomerLeadActivity.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public async Task <ActionResult <List <CustomerLead_CustomerLeadActivityDTO> > > ListActivity([FromBody] CustomerLead_CustomerLeadActivityFilterDTO CustomerLead_CustomerLeadActivityFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CustomerLeadActivityFilter CustomerLeadActivityFilter = ConvertFilterDTOToFilterEntity(CustomerLead_CustomerLeadActivityFilterDTO); CustomerLeadActivityFilter = await CustomerLeadActivityService.ToFilter(CustomerLeadActivityFilter); List <CustomerLeadActivity> CustomerLeadActivities = await CustomerLeadActivityService.List(CustomerLeadActivityFilter); List <CustomerLead_CustomerLeadActivityDTO> CustomerLead_CustomerLeadActivityDTOs = CustomerLeadActivities .Select(c => new CustomerLead_CustomerLeadActivityDTO(c)).ToList(); return(CustomerLead_CustomerLeadActivityDTOs); }
private IQueryable <CustomerLeadActivityDAO> OrFilter(IQueryable <CustomerLeadActivityDAO> query, CustomerLeadActivityFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <CustomerLeadActivityDAO> initQuery = query.Where(q => false); foreach (CustomerLeadActivityFilter CustomerLeadActivityFilter in filter.OrFilter) { IQueryable <CustomerLeadActivityDAO> queryable = query; if (CustomerLeadActivityFilter.Id != null && CustomerLeadActivityFilter.Id.HasValue) { queryable = queryable.Where(q => q.Id, CustomerLeadActivityFilter.Id); } if (CustomerLeadActivityFilter.Title != null && CustomerLeadActivityFilter.Title.HasValue) { queryable = queryable.Where(q => q.Title, CustomerLeadActivityFilter.Title); } if (CustomerLeadActivityFilter.FromDate != null && CustomerLeadActivityFilter.FromDate.HasValue) { queryable = queryable.Where(q => q.FromDate, CustomerLeadActivityFilter.FromDate); } if (CustomerLeadActivityFilter.ToDate != null && CustomerLeadActivityFilter.ToDate.HasValue) { queryable = queryable.Where(q => q.ToDate.HasValue).Where(q => q.ToDate, CustomerLeadActivityFilter.ToDate); } if (CustomerLeadActivityFilter.ActivityTypeId != null && CustomerLeadActivityFilter.ActivityTypeId.HasValue) { queryable = queryable.Where(q => q.ActivityTypeId, CustomerLeadActivityFilter.ActivityTypeId); } if (CustomerLeadActivityFilter.ActivityPriorityId != null && CustomerLeadActivityFilter.ActivityPriorityId.HasValue) { queryable = queryable.Where(q => q.ActivityPriorityId.HasValue).Where(q => q.ActivityPriorityId, CustomerLeadActivityFilter.ActivityPriorityId); } if (CustomerLeadActivityFilter.Description != null && CustomerLeadActivityFilter.Description.HasValue) { queryable = queryable.Where(q => q.Description, CustomerLeadActivityFilter.Description); } if (CustomerLeadActivityFilter.Address != null && CustomerLeadActivityFilter.Address.HasValue) { queryable = queryable.Where(q => q.Address, CustomerLeadActivityFilter.Address); } if (CustomerLeadActivityFilter.CustomerLeadId != null && CustomerLeadActivityFilter.CustomerLeadId.HasValue) { queryable = queryable.Where(q => q.CustomerLeadId, CustomerLeadActivityFilter.CustomerLeadId); } if (CustomerLeadActivityFilter.AppUserId != null && CustomerLeadActivityFilter.AppUserId.HasValue) { queryable = queryable.Where(q => q.AppUserId, CustomerLeadActivityFilter.AppUserId); } if (CustomerLeadActivityFilter.ActivityStatusId != null && CustomerLeadActivityFilter.ActivityStatusId.HasValue) { queryable = queryable.Where(q => q.ActivityStatusId, CustomerLeadActivityFilter.ActivityStatusId); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <CustomerLeadActivityDAO> DynamicFilter(IQueryable <CustomerLeadActivityDAO> query, CustomerLeadActivityFilter 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.FromDate != null && filter.FromDate.HasValue) { query = query.Where(q => q.FromDate, filter.FromDate); } if (filter.ToDate != null && filter.ToDate.HasValue) { query = query.Where(q => q.ToDate == null).Union(query.Where(q => q.ToDate.HasValue).Where(q => q.ToDate, filter.ToDate)); } if (filter.ActivityTypeId != null && filter.ActivityTypeId.HasValue) { query = query.Where(q => q.ActivityTypeId, filter.ActivityTypeId); } if (filter.ActivityPriorityId != null && filter.ActivityPriorityId.HasValue) { query = query.Where(q => q.ActivityPriorityId.HasValue).Where(q => q.ActivityPriorityId, filter.ActivityPriorityId); } if (filter.Description != null && filter.Description.HasValue) { query = query.Where(q => q.Description, filter.Description); } if (filter.Address != null && filter.Address.HasValue) { query = query.Where(q => q.Address, filter.Address); } if (filter.CustomerLeadId != null && filter.CustomerLeadId.HasValue) { query = query.Where(q => q.CustomerLeadId, filter.CustomerLeadId); } if (filter.AppUserId != null && filter.AppUserId.HasValue) { query = query.Where(q => q.AppUserId, filter.AppUserId); } if (filter.ActivityStatusId != null && filter.ActivityStatusId.HasValue) { query = query.Where(q => q.ActivityStatusId, filter.ActivityStatusId); } query = OrFilter(query, filter); return(query); }
private async Task <List <CustomerLeadActivity> > DynamicSelect(IQueryable <CustomerLeadActivityDAO> query, CustomerLeadActivityFilter filter) { List <CustomerLeadActivity> CustomerLeadActivities = await query.Select(q => new CustomerLeadActivity() { Id = filter.Selects.Contains(CustomerLeadActivitySelect.Id) ? q.Id : default(long), Title = filter.Selects.Contains(CustomerLeadActivitySelect.Title) ? q.Title : default(string), FromDate = filter.Selects.Contains(CustomerLeadActivitySelect.FromDate) ? q.FromDate : default(DateTime), ToDate = filter.Selects.Contains(CustomerLeadActivitySelect.ToDate) ? q.ToDate : default(DateTime?), ActivityTypeId = filter.Selects.Contains(CustomerLeadActivitySelect.ActivityType) ? q.ActivityTypeId : default(long), ActivityPriorityId = filter.Selects.Contains(CustomerLeadActivitySelect.ActivityPriority) ? q.ActivityPriorityId : default(long?), Description = filter.Selects.Contains(CustomerLeadActivitySelect.Description) ? q.Description : default(string), Address = filter.Selects.Contains(CustomerLeadActivitySelect.Address) ? q.Address : default(string), CustomerLeadId = filter.Selects.Contains(CustomerLeadActivitySelect.CustomerLead) ? q.CustomerLeadId : default(long), AppUserId = filter.Selects.Contains(CustomerLeadActivitySelect.AppUser) ? q.AppUserId : default(long), ActivityStatusId = filter.Selects.Contains(CustomerLeadActivitySelect.ActivityStatus) ? q.ActivityStatusId : default(long), ActivityPriority = filter.Selects.Contains(CustomerLeadActivitySelect.ActivityPriority) && q.ActivityPriority != null ? new ActivityPriority { Id = q.ActivityPriority.Id, Code = q.ActivityPriority.Code, Name = q.ActivityPriority.Name, } : null, ActivityStatus = filter.Selects.Contains(CustomerLeadActivitySelect.ActivityStatus) && q.ActivityStatus != null ? new ActivityStatus { Id = q.ActivityStatus.Id, Code = q.ActivityStatus.Code, Name = q.ActivityStatus.Name, } : null, ActivityType = filter.Selects.Contains(CustomerLeadActivitySelect.ActivityType) && q.ActivityType != null ? new ActivityType { Id = q.ActivityType.Id, Code = q.ActivityType.Code, Name = q.ActivityType.Name, } : null, AppUser = filter.Selects.Contains(CustomerLeadActivitySelect.AppUser) && q.AppUser != null ? new AppUser { Id = q.AppUser.Id, Username = q.AppUser.Username, DisplayName = q.AppUser.DisplayName, Address = q.AppUser.Address, Email = q.AppUser.Email, Phone = q.AppUser.Phone, SexId = q.AppUser.SexId, Birthday = q.AppUser.Birthday, Avatar = q.AppUser.Avatar, Department = q.AppUser.Department, OrganizationId = q.AppUser.OrganizationId, Longitude = q.AppUser.Longitude, Latitude = q.AppUser.Latitude, StatusId = q.AppUser.StatusId, RowId = q.AppUser.RowId, Used = q.AppUser.Used, } : null, CustomerLead = filter.Selects.Contains(CustomerLeadActivitySelect.CustomerLead) && q.CustomerLead != null ? new CustomerLead { Id = q.CustomerLead.Id, Name = q.CustomerLead.Name, TelePhone = q.CustomerLead.TelePhone, Phone = q.CustomerLead.Phone, CompanyName = q.CustomerLead.CompanyName, Fax = q.CustomerLead.Fax, Email = q.CustomerLead.Email, SecondEmail = q.CustomerLead.SecondEmail, Website = q.CustomerLead.Website, CustomerLeadSourceId = q.CustomerLead.CustomerLeadSourceId, CustomerLeadLevelId = q.CustomerLead.CustomerLeadLevelId, CompanyId = q.CustomerLead.CompanyId, CampaignId = q.CustomerLead.CampaignId, ProfessionId = q.CustomerLead.ProfessionId, Revenue = q.CustomerLead.Revenue, EmployeeQuantity = q.CustomerLead.EmployeeQuantity, Address = q.CustomerLead.Address, ProvinceId = q.CustomerLead.ProvinceId, DistrictId = q.CustomerLead.DistrictId, AppUserId = q.CustomerLead.AppUserId, CustomerLeadStatusId = q.CustomerLead.CustomerLeadStatusId, BusinessRegistrationCode = q.CustomerLead.BusinessRegistrationCode, SexId = q.CustomerLead.SexId, RefuseReciveSMS = q.CustomerLead.RefuseReciveSMS, NationId = q.CustomerLead.NationId, RefuseReciveEmail = q.CustomerLead.RefuseReciveEmail, Description = q.CustomerLead.Description, CreatorId = q.CustomerLead.CreatorId, ZipCode = q.CustomerLead.ZipCode, CurrencyId = q.CustomerLead.CurrencyId, RowId = q.CustomerLead.RowId, } : null, }).ToListAsync(); return(CustomerLeadActivities); }
private IQueryable <CustomerLeadActivityDAO> DynamicOrder(IQueryable <CustomerLeadActivityDAO> query, CustomerLeadActivityFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case CustomerLeadActivityOrder.Id: query = query.OrderBy(q => q.Id); break; case CustomerLeadActivityOrder.Title: query = query.OrderBy(q => q.Title); break; case CustomerLeadActivityOrder.FromDate: query = query.OrderBy(q => q.FromDate); break; case CustomerLeadActivityOrder.ToDate: query = query.OrderBy(q => q.ToDate); break; case CustomerLeadActivityOrder.ActivityType: query = query.OrderBy(q => q.ActivityTypeId); break; case CustomerLeadActivityOrder.ActivityPriority: query = query.OrderBy(q => q.ActivityPriorityId); break; case CustomerLeadActivityOrder.Description: query = query.OrderBy(q => q.Description); break; case CustomerLeadActivityOrder.Address: query = query.OrderBy(q => q.Address); break; case CustomerLeadActivityOrder.CustomerLead: query = query.OrderBy(q => q.CustomerLeadId); break; case CustomerLeadActivityOrder.AppUser: query = query.OrderBy(q => q.AppUserId); break; case CustomerLeadActivityOrder.ActivityStatus: query = query.OrderBy(q => q.ActivityStatusId); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case CustomerLeadActivityOrder.Id: query = query.OrderByDescending(q => q.Id); break; case CustomerLeadActivityOrder.Title: query = query.OrderByDescending(q => q.Title); break; case CustomerLeadActivityOrder.FromDate: query = query.OrderByDescending(q => q.FromDate); break; case CustomerLeadActivityOrder.ToDate: query = query.OrderByDescending(q => q.ToDate); break; case CustomerLeadActivityOrder.ActivityType: query = query.OrderByDescending(q => q.ActivityTypeId); break; case CustomerLeadActivityOrder.ActivityPriority: query = query.OrderByDescending(q => q.ActivityPriorityId); break; case CustomerLeadActivityOrder.Description: query = query.OrderByDescending(q => q.Description); break; case CustomerLeadActivityOrder.Address: query = query.OrderByDescending(q => q.Address); break; case CustomerLeadActivityOrder.CustomerLead: query = query.OrderByDescending(q => q.CustomerLeadId); break; case CustomerLeadActivityOrder.AppUser: query = query.OrderByDescending(q => q.AppUserId); break; case CustomerLeadActivityOrder.ActivityStatus: query = query.OrderByDescending(q => q.ActivityStatusId); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
public async Task <CustomerLeadActivityFilter> ToFilter(CustomerLeadActivityFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <CustomerLeadActivityFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { CustomerLeadActivityFilter subFilter = new CustomerLeadActivityFilter(); 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.FromDate)) { subFilter.FromDate = FilterBuilder.Merge(subFilter.FromDate, FilterPermissionDefinition.DateFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.ToDate)) { subFilter.ToDate = FilterBuilder.Merge(subFilter.ToDate, FilterPermissionDefinition.DateFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.ActivityTypeId)) { subFilter.ActivityTypeId = FilterBuilder.Merge(subFilter.ActivityTypeId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.ActivityPriorityId)) { subFilter.ActivityPriorityId = FilterBuilder.Merge(subFilter.ActivityPriorityId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.Description)) { subFilter.Description = FilterBuilder.Merge(subFilter.Description, FilterPermissionDefinition.StringFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.Address)) { subFilter.Address = FilterBuilder.Merge(subFilter.Address, FilterPermissionDefinition.StringFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.CustomerLeadId)) { subFilter.CustomerLeadId = FilterBuilder.Merge(subFilter.CustomerLeadId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.AppUserId)) { subFilter.AppUserId = FilterBuilder.Merge(subFilter.AppUserId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.ActivityStatusId)) { subFilter.ActivityStatusId = FilterBuilder.Merge(subFilter.ActivityStatusId, 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); }