private CompanyActivityFilter ConvertFilterDTOToFilterEntity(Company_CompanyActivityFilterDTO Company_CompanyActivityFilterDTO) { CompanyActivityFilter CompanyActivityFilter = new CompanyActivityFilter(); CompanyActivityFilter.Selects = CompanyActivitySelect.ALL; CompanyActivityFilter.Skip = Company_CompanyActivityFilterDTO.Skip; CompanyActivityFilter.Take = Company_CompanyActivityFilterDTO.Take; CompanyActivityFilter.OrderBy = Company_CompanyActivityFilterDTO.OrderBy; CompanyActivityFilter.OrderType = Company_CompanyActivityFilterDTO.OrderType; CompanyActivityFilter.Id = Company_CompanyActivityFilterDTO.Id; CompanyActivityFilter.Title = Company_CompanyActivityFilterDTO.Title; CompanyActivityFilter.FromDate = Company_CompanyActivityFilterDTO.FromDate; CompanyActivityFilter.ToDate = Company_CompanyActivityFilterDTO.ToDate; CompanyActivityFilter.ActivityTypeId = Company_CompanyActivityFilterDTO.ActivityTypeId; CompanyActivityFilter.ActivityPriorityId = Company_CompanyActivityFilterDTO.ActivityPriorityId; CompanyActivityFilter.Description = Company_CompanyActivityFilterDTO.Description; CompanyActivityFilter.Address = Company_CompanyActivityFilterDTO.Address; CompanyActivityFilter.CompanyId = Company_CompanyActivityFilterDTO.CompanyId; CompanyActivityFilter.AppUserId = Company_CompanyActivityFilterDTO.AppUserId; CompanyActivityFilter.ActivityStatusId = Company_CompanyActivityFilterDTO.ActivityStatusId; CompanyActivityFilter.CreatedAt = Company_CompanyActivityFilterDTO.CreatedAt; CompanyActivityFilter.UpdatedAt = Company_CompanyActivityFilterDTO.UpdatedAt; return(CompanyActivityFilter); }
public async Task <int> Count(CompanyActivityFilter filter) { IQueryable <CompanyActivityDAO> CompanyActivities = DataContext.CompanyActivity.AsNoTracking(); CompanyActivities = DynamicFilter(CompanyActivities, filter); return(await CompanyActivities.CountAsync()); }
public async Task <List <CompanyActivity> > List(CompanyActivityFilter CompanyActivityFilter) { try { List <CompanyActivity> CompanyActivitys = await UOW.CompanyActivityRepository.List(CompanyActivityFilter); return(CompanyActivitys); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CompanyActivityService)); } return(null); }
public async Task <int> Count(CompanyActivityFilter CompanyActivityFilter) { try { int result = await UOW.CompanyActivityRepository.Count(CompanyActivityFilter); return(result); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(CompanyActivityService)); } return(0); }
public async Task <List <CompanyActivity> > List(CompanyActivityFilter filter) { if (filter == null) { return(new List <CompanyActivity>()); } IQueryable <CompanyActivityDAO> CompanyActivityDAOs = DataContext.CompanyActivity.AsNoTracking(); CompanyActivityDAOs = DynamicFilter(CompanyActivityDAOs, filter); CompanyActivityDAOs = DynamicOrder(CompanyActivityDAOs, filter); List <CompanyActivity> CompanyActivities = await DynamicSelect(CompanyActivityDAOs, filter); return(CompanyActivities); }
public async Task <ActionResult <int> > CountActivity([FromBody] Company_CompanyActivityFilterDTO Company_CompanyActivityFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CompanyActivityFilter CompanyActivityFilter = ConvertFilterDTOToFilterEntity(Company_CompanyActivityFilterDTO); CompanyActivityFilter = await CompanyActivityService.ToFilter(CompanyActivityFilter); int count = await CompanyActivityService.Count(CompanyActivityFilter); return(count); }
public async Task <bool> ValidateId(CompanyActivity CompanyActivity) { CompanyActivityFilter CompanyActivityFilter = new CompanyActivityFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = CompanyActivity.Id }, Selects = CompanyActivitySelect.Id }; int count = await UOW.CompanyActivityRepository.Count(CompanyActivityFilter); if (count == 0) { CompanyActivity.AddError(nameof(CompanyActivityValidator), nameof(CompanyActivity.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public async Task <ActionResult <List <Company_CompanyActivityDTO> > > ListActivity([FromBody] Company_CompanyActivityFilterDTO Company_CompanyActivityFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } CompanyActivityFilter CompanyActivityFilter = ConvertFilterDTOToFilterEntity(Company_CompanyActivityFilterDTO); CompanyActivityFilter = await CompanyActivityService.ToFilter(CompanyActivityFilter); List <CompanyActivity> CompanyActivities = await CompanyActivityService.List(CompanyActivityFilter); List <Company_CompanyActivityDTO> Company_CompanyActivityDTOs = CompanyActivities .Select(c => new Company_CompanyActivityDTO(c)).ToList(); return(Company_CompanyActivityDTOs); }
public async Task <CompanyActivityFilter> ToFilter(CompanyActivityFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <CompanyActivityFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { CompanyActivityFilter subFilter = new CompanyActivityFilter(); 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.CompanyId)) { subFilter.CompanyId = FilterBuilder.Merge(subFilter.CompanyId, 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); }
private IQueryable <CompanyActivityDAO> OrFilter(IQueryable <CompanyActivityDAO> query, CompanyActivityFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <CompanyActivityDAO> initQuery = query.Where(q => false); foreach (CompanyActivityFilter CompanyActivityFilter in filter.OrFilter) { IQueryable <CompanyActivityDAO> queryable = query; if (CompanyActivityFilter.Id != null && CompanyActivityFilter.Id.HasValue) { queryable = queryable.Where(q => q.Id, CompanyActivityFilter.Id); } if (CompanyActivityFilter.Title != null && CompanyActivityFilter.Title.HasValue) { queryable = queryable.Where(q => q.Title, CompanyActivityFilter.Title); } if (CompanyActivityFilter.FromDate != null && CompanyActivityFilter.FromDate.HasValue) { queryable = queryable.Where(q => q.FromDate, CompanyActivityFilter.FromDate); } if (CompanyActivityFilter.ToDate != null && CompanyActivityFilter.ToDate.HasValue) { queryable = queryable.Where(q => q.ToDate.HasValue).Where(q => q.ToDate, CompanyActivityFilter.ToDate); } if (CompanyActivityFilter.ActivityTypeId != null && CompanyActivityFilter.ActivityTypeId.HasValue) { queryable = queryable.Where(q => q.ActivityTypeId, CompanyActivityFilter.ActivityTypeId); } if (CompanyActivityFilter.ActivityPriorityId != null && CompanyActivityFilter.ActivityPriorityId.HasValue) { queryable = queryable.Where(q => q.ActivityPriorityId.HasValue).Where(q => q.ActivityPriorityId, CompanyActivityFilter.ActivityPriorityId); } if (CompanyActivityFilter.Description != null && CompanyActivityFilter.Description.HasValue) { queryable = queryable.Where(q => q.Description, CompanyActivityFilter.Description); } if (CompanyActivityFilter.Address != null && CompanyActivityFilter.Address.HasValue) { queryable = queryable.Where(q => q.Address, CompanyActivityFilter.Address); } if (CompanyActivityFilter.CompanyId != null && CompanyActivityFilter.CompanyId.HasValue) { queryable = queryable.Where(q => q.CompanyId, CompanyActivityFilter.CompanyId); } if (CompanyActivityFilter.AppUserId != null && CompanyActivityFilter.AppUserId.HasValue) { queryable = queryable.Where(q => q.AppUserId, CompanyActivityFilter.AppUserId); } if (CompanyActivityFilter.ActivityStatusId != null && CompanyActivityFilter.ActivityStatusId.HasValue) { queryable = queryable.Where(q => q.ActivityStatusId, CompanyActivityFilter.ActivityStatusId); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <CompanyActivityDAO> DynamicFilter(IQueryable <CompanyActivityDAO> query, CompanyActivityFilter 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.CompanyId != null && filter.CompanyId.HasValue) { query = query.Where(q => q.CompanyId, filter.CompanyId); } 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 <CompanyActivity> > DynamicSelect(IQueryable <CompanyActivityDAO> query, CompanyActivityFilter filter) { List <CompanyActivity> CompanyActivities = await query.Select(q => new CompanyActivity() { Id = filter.Selects.Contains(CompanyActivitySelect.Id) ? q.Id : default(long), Title = filter.Selects.Contains(CompanyActivitySelect.Title) ? q.Title : default(string), FromDate = filter.Selects.Contains(CompanyActivitySelect.FromDate) ? q.FromDate : default(DateTime), ToDate = filter.Selects.Contains(CompanyActivitySelect.ToDate) ? q.ToDate : default(DateTime?), ActivityTypeId = filter.Selects.Contains(CompanyActivitySelect.ActivityType) ? q.ActivityTypeId : default(long), ActivityPriorityId = filter.Selects.Contains(CompanyActivitySelect.ActivityPriority) ? q.ActivityPriorityId : default(long?), Description = filter.Selects.Contains(CompanyActivitySelect.Description) ? q.Description : default(string), Address = filter.Selects.Contains(CompanyActivitySelect.Address) ? q.Address : default(string), CompanyId = filter.Selects.Contains(CompanyActivitySelect.Company) ? q.CompanyId : default(long), AppUserId = filter.Selects.Contains(CompanyActivitySelect.AppUser) ? q.AppUserId : default(long), ActivityStatusId = filter.Selects.Contains(CompanyActivitySelect.ActivityStatus) ? q.ActivityStatusId : default(long), ActivityPriority = filter.Selects.Contains(CompanyActivitySelect.ActivityPriority) && q.ActivityPriority != null ? new ActivityPriority { Id = q.ActivityPriority.Id, Code = q.ActivityPriority.Code, Name = q.ActivityPriority.Name, } : null, ActivityStatus = filter.Selects.Contains(CompanyActivitySelect.ActivityStatus) && q.ActivityStatus != null ? new ActivityStatus { Id = q.ActivityStatus.Id, Code = q.ActivityStatus.Code, Name = q.ActivityStatus.Name, } : null, ActivityType = filter.Selects.Contains(CompanyActivitySelect.ActivityType) && q.ActivityType != null ? new ActivityType { Id = q.ActivityType.Id, Code = q.ActivityType.Code, Name = q.ActivityType.Name, } : null, AppUser = filter.Selects.Contains(CompanyActivitySelect.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, Company = filter.Selects.Contains(CompanyActivitySelect.Company) && q.Company != null ? new Company { Id = q.Company.Id, Name = q.Company.Name, Phone = q.Company.Phone, FAX = q.Company.FAX, PhoneOther = q.Company.PhoneOther, Email = q.Company.Email, EmailOther = q.Company.EmailOther, } : null, }).ToListAsync(); return(CompanyActivities); }
private IQueryable <CompanyActivityDAO> DynamicOrder(IQueryable <CompanyActivityDAO> query, CompanyActivityFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case CompanyActivityOrder.Id: query = query.OrderBy(q => q.Id); break; case CompanyActivityOrder.Title: query = query.OrderBy(q => q.Title); break; case CompanyActivityOrder.FromDate: query = query.OrderBy(q => q.FromDate); break; case CompanyActivityOrder.ToDate: query = query.OrderBy(q => q.ToDate); break; case CompanyActivityOrder.ActivityType: query = query.OrderBy(q => q.ActivityTypeId); break; case CompanyActivityOrder.ActivityPriority: query = query.OrderBy(q => q.ActivityPriorityId); break; case CompanyActivityOrder.Description: query = query.OrderBy(q => q.Description); break; case CompanyActivityOrder.Address: query = query.OrderBy(q => q.Address); break; case CompanyActivityOrder.Company: query = query.OrderBy(q => q.CompanyId); break; case CompanyActivityOrder.AppUser: query = query.OrderBy(q => q.AppUserId); break; case CompanyActivityOrder.ActivityStatus: query = query.OrderBy(q => q.ActivityStatusId); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case CompanyActivityOrder.Id: query = query.OrderByDescending(q => q.Id); break; case CompanyActivityOrder.Title: query = query.OrderByDescending(q => q.Title); break; case CompanyActivityOrder.FromDate: query = query.OrderByDescending(q => q.FromDate); break; case CompanyActivityOrder.ToDate: query = query.OrderByDescending(q => q.ToDate); break; case CompanyActivityOrder.ActivityType: query = query.OrderByDescending(q => q.ActivityTypeId); break; case CompanyActivityOrder.ActivityPriority: query = query.OrderByDescending(q => q.ActivityPriorityId); break; case CompanyActivityOrder.Description: query = query.OrderByDescending(q => q.Description); break; case CompanyActivityOrder.Address: query = query.OrderByDescending(q => q.Address); break; case CompanyActivityOrder.Company: query = query.OrderByDescending(q => q.CompanyId); break; case CompanyActivityOrder.AppUser: query = query.OrderByDescending(q => q.AppUserId); break; case CompanyActivityOrder.ActivityStatus: query = query.OrderByDescending(q => q.ActivityStatusId); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }