public async Task <int> Count(KpiItemContentFilter filter) { IQueryable <KpiItemContentDAO> KpiItemContents = DataContext.KpiItemContent.AsNoTracking(); KpiItemContents = DynamicFilter(KpiItemContents, filter); return(await KpiItemContents.CountAsync()); }
public async Task <List <KpiItemContent> > List(KpiItemContentFilter filter) { if (filter == null) { return(new List <KpiItemContent>()); } IQueryable <KpiItemContentDAO> KpiItemContentDAOs = DataContext.KpiItemContent.AsNoTracking(); KpiItemContentDAOs = DynamicFilter(KpiItemContentDAOs, filter); KpiItemContentDAOs = DynamicOrder(KpiItemContentDAOs, filter); List <KpiItemContent> KpiItemContents = await DynamicSelect(KpiItemContentDAOs, filter); return(KpiItemContents); }
DynamicOrder(IQueryable <KpiItemContentDAO> query, KpiItemContentFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case KpiItemContentOrder.Id: query = query.OrderBy(q => q.Id); break; case KpiItemContentOrder.KpiItem: query = query.OrderBy(q => q.KpiItemId); break; case KpiItemContentOrder.Item: query = query.OrderBy(q => q.ItemId); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case KpiItemContentOrder.Id: query = query.OrderByDescending(q => q.Id); break; case KpiItemContentOrder.KpiItem: query = query.OrderByDescending(q => q.KpiItemId); break; case KpiItemContentOrder.Item: query = query.OrderByDescending(q => q.ItemId); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
public async Task <KpiItemContentFilter> ToFilter(KpiItemContentFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <KpiItemContentFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { KpiItemContentFilter subFilter = new KpiItemContentFilter(); 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.KpiItemId)) { subFilter.KpiItemId = FilterBuilder.Merge(subFilter.KpiItemId, FilterPermissionDefinition.IdFilter); } if (FilterPermissionDefinition.Name == nameof(subFilter.ItemId)) { subFilter.ItemId = FilterBuilder.Merge(subFilter.ItemId, 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(KpiItemContent KpiItemContent) { KpiItemContentFilter KpiItemContentFilter = new KpiItemContentFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = KpiItemContent.Id }, Selects = KpiItemContentSelect.Id }; int count = await UOW.KpiItemContentRepository.Count(KpiItemContentFilter); if (count == 0) { KpiItemContent.AddError(nameof(KpiItemContentValidator), nameof(KpiItemContent.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public async Task <List <KpiItemContent> > List(KpiItemContentFilter KpiItemContentFilter) { try { List <KpiItemContent> KpiItemContents = await UOW.KpiItemContentRepository.List(KpiItemContentFilter); return(KpiItemContents); } catch (Exception ex) { if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(KpiItemContentService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(KpiItemContentService)); throw new MessageException(ex.InnerException); } } }
public async Task <int> Count(KpiItemContentFilter KpiItemContentFilter) { try { int result = await UOW.KpiItemContentRepository.Count(KpiItemContentFilter); return(result); } catch (Exception ex) { if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(KpiItemContentService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(KpiItemContentService)); throw new MessageException(ex.InnerException); } } }
private IQueryable <KpiItemContentDAO> OrFilter(IQueryable <KpiItemContentDAO> query, KpiItemContentFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <KpiItemContentDAO> initQuery = query.Where(q => false); foreach (KpiItemContentFilter KpiItemContentFilter in filter.OrFilter) { IQueryable <KpiItemContentDAO> queryable = query; if (KpiItemContentFilter.Id != null) { queryable = queryable.Where(q => q.Id, KpiItemContentFilter.Id); } if (KpiItemContentFilter.KpiItemId != null) { queryable = queryable.Where(q => q.KpiItemId, KpiItemContentFilter.KpiItemId); } if (KpiItemContentFilter.ItemId != null) { queryable = queryable.Where(q => q.ItemId, KpiItemContentFilter.ItemId); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <KpiItemContentDAO> DynamicFilter(IQueryable <KpiItemContentDAO> query, KpiItemContentFilter filter) { if (filter == null) { return(query.Where(q => false)); } if (filter.Id != null) { query = query.Where(q => q.Id, filter.Id); } if (filter.KpiItemId != null) { query = query.Where(q => q.KpiItemId, filter.KpiItemId); } if (filter.ItemId != null) { query = query.Where(q => q.ItemId, filter.ItemId); } query = OrFilter(query, filter); return(query); }
private async Task <List <KpiItemContent> > DynamicSelect(IQueryable <KpiItemContentDAO> query, KpiItemContentFilter filter) { List <KpiItemContent> KpiItemContents = await query.Select(q => new KpiItemContent() { Id = filter.Selects.Contains(KpiItemContentSelect.Id) ? q.Id : default(long), KpiItemId = filter.Selects.Contains(KpiItemContentSelect.KpiItem) ? q.KpiItemId : default(long), ItemId = filter.Selects.Contains(KpiItemContentSelect.Item) ? q.ItemId : default(long), Item = filter.Selects.Contains(KpiItemContentSelect.Item) && q.Item != null ? new Item { Id = q.Item.Id, ProductId = q.Item.ProductId, Code = q.Item.Code, Name = q.Item.Name, ScanCode = q.Item.ScanCode, SalePrice = q.Item.SalePrice, RetailPrice = q.Item.RetailPrice, StatusId = q.Item.StatusId, Used = q.Item.Used, } : null, KpiItem = filter.Selects.Contains(KpiItemContentSelect.KpiItem) && q.KpiItem != null ? new KpiItem { Id = q.KpiItem.Id, OrganizationId = q.KpiItem.OrganizationId, KpiYearId = q.KpiItem.KpiYearId, KpiPeriodId = q.KpiItem.KpiPeriodId, StatusId = q.KpiItem.StatusId, EmployeeId = q.KpiItem.EmployeeId, CreatorId = q.KpiItem.CreatorId, } : null, }).ToListAsync(); var KpiItemContentIds = KpiItemContents.Select(x => x.Id).ToList(); List <KpiItemContentKpiCriteriaItemMapping> KpiItemContentKpiItemCriteriaMappings = await DataContext.KpiItemContentKpiCriteriaItemMapping .Where(x => KpiItemContentIds.Contains(x.KpiItemContentId)) .Select(x => new KpiItemContentKpiCriteriaItemMapping { KpiCriteriaItemId = x.KpiCriteriaItemId, KpiItemContentId = x.KpiItemContentId, Value = x.Value, KpiItemContent = new KpiItemContent { Id = x.KpiItemContent.Id, ItemId = x.KpiItemContent.ItemId, KpiItemId = x.KpiItemContent.KpiItemId, Item = new Item { Id = x.KpiItemContent.Item.Id, ProductId = x.KpiItemContent.Item.ProductId, Code = x.KpiItemContent.Item.Code, Name = x.KpiItemContent.Item.Name, ScanCode = x.KpiItemContent.Item.ScanCode, SalePrice = x.KpiItemContent.Item.SalePrice, RetailPrice = x.KpiItemContent.Item.RetailPrice, StatusId = x.KpiItemContent.Item.StatusId, }, } }).ToListAsync(); foreach (KpiItemContent KpiItemContent in KpiItemContents) { KpiItemContent.KpiItemContentKpiCriteriaItemMappings = KpiItemContentKpiItemCriteriaMappings.Where(x => x.KpiItemContentId == KpiItemContent.Id).ToList(); } return(KpiItemContents); }