public async Task <int> Count(WorkflowDirectionFilter filter) { IQueryable <WorkflowDirectionDAO> WorkflowDirections = DataContext.WorkflowDirection.AsNoTracking(); WorkflowDirections = DynamicFilter(WorkflowDirections, filter); return(await WorkflowDirections.CountAsync()); }
public async Task <List <WorkflowDirection> > List(WorkflowDirectionFilter filter) { if (filter == null) { return(new List <WorkflowDirection>()); } IQueryable <WorkflowDirectionDAO> WorkflowDirectionDAOs = DataContext.WorkflowDirection.AsNoTracking(); WorkflowDirectionDAOs = DynamicFilter(WorkflowDirectionDAOs, filter); WorkflowDirectionDAOs = DynamicOrder(WorkflowDirectionDAOs, filter); List <WorkflowDirection> WorkflowDirections = await DynamicSelect(WorkflowDirectionDAOs, filter); return(WorkflowDirections); }
public async Task <ActionResult <int> > Count([FromBody] WorkflowDirection_WorkflowDirectionFilterDTO WorkflowDirection_WorkflowDirectionFilterDTO) { if (!ModelState.IsValid) { throw new BindException(ModelState); } WorkflowDirectionFilter WorkflowDirectionFilter = ConvertFilterDTOToFilterEntity(WorkflowDirection_WorkflowDirectionFilterDTO); WorkflowDirectionFilter = WorkflowDirectionService.ToFilter(WorkflowDirectionFilter); int count = await WorkflowDirectionService.Count(WorkflowDirectionFilter); return(count); }
public async Task <ActionResult <List <WorkflowDirection_WorkflowDirectionDTO> > > List([FromBody] WorkflowDirection_WorkflowDirectionFilterDTO WorkflowDirection_WorkflowDirectionFilterDTO) { if (!ModelState.IsValid) { throw new BindException(ModelState); } WorkflowDirectionFilter WorkflowDirectionFilter = ConvertFilterDTOToFilterEntity(WorkflowDirection_WorkflowDirectionFilterDTO); WorkflowDirectionFilter = WorkflowDirectionService.ToFilter(WorkflowDirectionFilter); List <WorkflowDirection> WorkflowDirections = await WorkflowDirectionService.List(WorkflowDirectionFilter); List <WorkflowDirection_WorkflowDirectionDTO> WorkflowDirection_WorkflowDirectionDTOs = WorkflowDirections .Select(c => new WorkflowDirection_WorkflowDirectionDTO(c)).ToList(); return(WorkflowDirection_WorkflowDirectionDTOs); }
private WorkflowDirectionFilter ConvertFilterDTOToFilterEntity(WorkflowDirection_WorkflowDirectionFilterDTO WorkflowDirection_WorkflowDirectionFilterDTO) { WorkflowDirectionFilter WorkflowDirectionFilter = new WorkflowDirectionFilter(); WorkflowDirectionFilter.Selects = WorkflowDirectionSelect.ALL; WorkflowDirectionFilter.Skip = WorkflowDirection_WorkflowDirectionFilterDTO.Skip; WorkflowDirectionFilter.Take = WorkflowDirection_WorkflowDirectionFilterDTO.Take; WorkflowDirectionFilter.OrderBy = WorkflowDirection_WorkflowDirectionFilterDTO.OrderBy; WorkflowDirectionFilter.OrderType = WorkflowDirection_WorkflowDirectionFilterDTO.OrderType; WorkflowDirectionFilter.Id = WorkflowDirection_WorkflowDirectionFilterDTO.Id; WorkflowDirectionFilter.WorkflowDefinitionId = WorkflowDirection_WorkflowDirectionFilterDTO.WorkflowDefinitionId; WorkflowDirectionFilter.FromStepId = WorkflowDirection_WorkflowDirectionFilterDTO.FromStepId; WorkflowDirectionFilter.ToStepId = WorkflowDirection_WorkflowDirectionFilterDTO.ToStepId; WorkflowDirectionFilter.UpdatedAt = WorkflowDirection_WorkflowDirectionFilterDTO.UpdatedAt; return(WorkflowDirectionFilter); }
public async Task <bool> ValidateId(WorkflowDirection WorkflowDirection) { WorkflowDirectionFilter WorkflowDirectionFilter = new WorkflowDirectionFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = WorkflowDirection.Id }, Selects = WorkflowDirectionSelect.Id }; int count = await UOW.WorkflowDirectionRepository.Count(WorkflowDirectionFilter); if (count == 0) { WorkflowDirection.AddError(nameof(WorkflowDirectionValidator), nameof(WorkflowDirection.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public WorkflowDirectionFilter ToFilter(WorkflowDirectionFilter filter) { if (filter.OrFilter == null) { filter.OrFilter = new List <WorkflowDirectionFilter>(); } if (CurrentContext.Filters == null || CurrentContext.Filters.Count == 0) { return(filter); } foreach (var currentFilter in CurrentContext.Filters) { WorkflowDirectionFilter subFilter = new WorkflowDirectionFilter(); filter.OrFilter.Add(subFilter); List <FilterPermissionDefinition> FilterPermissionDefinitions = currentFilter.Value; foreach (FilterPermissionDefinition FilterPermissionDefinition in FilterPermissionDefinitions) { } } return(filter); }
private async Task <bool> HasPermission(long Id) { WorkflowDirectionFilter WorkflowDirectionFilter = new WorkflowDirectionFilter(); WorkflowDirectionFilter = WorkflowDirectionService.ToFilter(WorkflowDirectionFilter); if (Id == 0) { } else { WorkflowDirectionFilter.Id = new IdFilter { Equal = Id }; int count = await WorkflowDirectionService.Count(WorkflowDirectionFilter); if (count == 0) { return(false); } } return(true); }
public async Task <List <WorkflowDirection> > List(WorkflowDirectionFilter WorkflowDirectionFilter) { try { List <WorkflowDirection> WorkflowDirections = await UOW.WorkflowDirectionRepository.List(WorkflowDirectionFilter); return(WorkflowDirections); } catch (Exception ex) { await Logging.CreateSystemLog(ex.InnerException, nameof(WorkflowDirectionService)); if (ex.InnerException == null) { throw new MessageException(ex); } else { throw new MessageException(ex.InnerException); } } }
public async Task <int> Count(WorkflowDirectionFilter WorkflowDirectionFilter) { try { int result = await UOW.WorkflowDirectionRepository.Count(WorkflowDirectionFilter); return(result); } catch (Exception ex) { await Logging.CreateSystemLog(ex.InnerException, nameof(WorkflowDirectionService)); if (ex.InnerException == null) { throw new MessageException(ex); } else { throw new MessageException(ex.InnerException); } } }
private IQueryable <WorkflowDirectionDAO> DynamicOrder(IQueryable <WorkflowDirectionDAO> query, WorkflowDirectionFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case WorkflowDirectionOrder.Id: query = query.OrderBy(q => q.Id); break; case WorkflowDirectionOrder.WorkflowDefinition: query = query.OrderBy(q => q.WorkflowDefinitionId); break; case WorkflowDirectionOrder.FromStep: query = query.OrderBy(q => q.FromStepId); break; case WorkflowDirectionOrder.ToStep: query = query.OrderBy(q => q.ToStepId); break; case WorkflowDirectionOrder.UpdatedAt: query = query.OrderBy(q => q.UpdatedAt); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case WorkflowDirectionOrder.Id: query = query.OrderByDescending(q => q.Id); break; case WorkflowDirectionOrder.WorkflowDefinition: query = query.OrderByDescending(q => q.WorkflowDefinitionId); break; case WorkflowDirectionOrder.FromStep: query = query.OrderByDescending(q => q.FromStepId); break; case WorkflowDirectionOrder.ToStep: query = query.OrderByDescending(q => q.ToStepId); break; case WorkflowDirectionOrder.UpdatedAt: query = query.OrderBy(q => q.UpdatedAt); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
private IQueryable <WorkflowDirectionDAO> OrFilter(IQueryable <WorkflowDirectionDAO> query, WorkflowDirectionFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <WorkflowDirectionDAO> initQuery = query.Where(q => false); foreach (WorkflowDirectionFilter WorkflowDirectionFilter in filter.OrFilter) { IQueryable <WorkflowDirectionDAO> queryable = query; if (WorkflowDirectionFilter.Id != null) { queryable = queryable.Where(q => q.Id, WorkflowDirectionFilter.Id); } if (WorkflowDirectionFilter.WorkflowDefinitionId != null) { queryable = queryable.Where(q => q.WorkflowDefinitionId, WorkflowDirectionFilter.WorkflowDefinitionId); } if (WorkflowDirectionFilter.FromStepId != null) { queryable = queryable.Where(q => q.FromStepId, WorkflowDirectionFilter.FromStepId); } if (WorkflowDirectionFilter.ToStepId != null) { queryable = queryable.Where(q => q.ToStepId, WorkflowDirectionFilter.ToStepId); } if (WorkflowDirectionFilter.UpdatedAt != null) { queryable = queryable.Where(q => q.UpdatedAt, WorkflowDirectionFilter.UpdatedAt); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <WorkflowDirectionDAO> DynamicFilter(IQueryable <WorkflowDirectionDAO> query, WorkflowDirectionFilter filter) { if (filter == null) { return(query.Where(q => false)); } if (filter.Id != null) { query = query.Where(q => q.Id, filter.Id); } if (filter.WorkflowDefinitionId != null) { query = query.Where(q => q.WorkflowDefinitionId, filter.WorkflowDefinitionId); } if (filter.FromStepId != null) { query = query.Where(q => q.FromStepId, filter.FromStepId); } if (filter.ToStepId != null) { query = query.Where(q => q.ToStepId, filter.ToStepId); } if (filter.UpdatedAt != null) { query = query.Where(q => q.UpdatedAt, filter.UpdatedAt); } query = OrFilter(query, filter); return(query); }
private async Task <List <WorkflowDirection> > DynamicSelect(IQueryable <WorkflowDirectionDAO> query, WorkflowDirectionFilter filter) { List <WorkflowDirection> WorkflowDirections = await query.Select(q => new WorkflowDirection() { Id = filter.Selects.Contains(WorkflowDirectionSelect.Id) ? q.Id : default(long), WorkflowDefinitionId = filter.Selects.Contains(WorkflowDirectionSelect.WorkflowDefinition) ? q.WorkflowDefinitionId : default(long), FromStepId = filter.Selects.Contains(WorkflowDirectionSelect.FromStep) ? q.FromStepId : default(long), ToStepId = filter.Selects.Contains(WorkflowDirectionSelect.ToStep) ? q.ToStepId : default(long), UpdatedAt = filter.Selects.Contains(WorkflowDirectionSelect.UpdatedAt) ? q.UpdatedAt : default(DateTime), FromStep = filter.Selects.Contains(WorkflowDirectionSelect.FromStep) && q.FromStep != null ? new WorkflowStep { Id = q.FromStep.Id, WorkflowDefinitionId = q.FromStep.WorkflowDefinitionId, Code = q.FromStep.Code, Name = q.FromStep.Name, RoleId = q.FromStep.RoleId, SubjectMailForReject = q.FromStep.SubjectMailForReject, BodyMailForReject = q.FromStep.BodyMailForReject, } : null, ToStep = filter.Selects.Contains(WorkflowDirectionSelect.ToStep) && q.ToStep != null ? new WorkflowStep { Id = q.ToStep.Id, WorkflowDefinitionId = q.ToStep.WorkflowDefinitionId, Code = q.ToStep.Code, Name = q.ToStep.Name, RoleId = q.ToStep.RoleId, SubjectMailForReject = q.ToStep.SubjectMailForReject, BodyMailForReject = q.ToStep.BodyMailForReject, } : null, WorkflowDefinition = filter.Selects.Contains(WorkflowDirectionSelect.WorkflowDefinition) && q.WorkflowDefinition != null ? new WorkflowDefinition { Id = q.WorkflowDefinition.Id, Code = q.WorkflowDefinition.Code, Name = q.WorkflowDefinition.Name, WorkflowTypeId = q.WorkflowDefinition.WorkflowTypeId, StartDate = q.WorkflowDefinition.StartDate, EndDate = q.WorkflowDefinition.EndDate, StatusId = q.WorkflowDefinition.StatusId, } : null, }).ToListAsync(); return(WorkflowDirections); }