Beispiel #1
0
        public IPage<ITask> GetTasksByFilter(ITaskFilter filter)
        {
            IQueryable<TaskEntity> tasks = SetOfTask().OrderByDescending(x=>x.CreatedDateTime);

            if (filter.PriorityCode.HasValue)
            {
                tasks = tasks.Where(x => x.PriorityCode == filter.PriorityCode);
            }

            if (filter.StartCreatedDate.HasValue)
            {
                DateTime from = filter.StartCreatedDate.Value.Date;
                tasks = tasks.Where(x => x.CreatedDateTime >= from);
            }

            if (filter.EndCreatedDate.HasValue)
            {
                DateTime to = filter.EndCreatedDate.Value.Date.AddDays(1).AddSeconds(-1);
                tasks = tasks.Where(x => x.CreatedDateTime <= to);
            }

            if (!string.IsNullOrWhiteSpace(filter.SearchText))
            {
                tasks = tasks.Where(x => x.Name.Contains(filter.SearchText) || x.Description.Contains(filter.SearchText));
            }

            return new PageResult<ITask>(filter.PageIndex, filter.PageSize).ExecuteWith(tasks);
        }
        public IPage <ITask> GetTasksByFilter(ITaskFilter filter)
        {
            IQueryable <TaskEntity> tasks = SetOfTask().OrderByDescending(x => x.CreatedDateTime);


            if (filter.PriorityCode.HasValue)
            {
                tasks = tasks.Where(x => x.PriorityCode == filter.PriorityCode);
            }

            if (filter.StartCreatedDate.HasValue)
            {
                DateTime from = filter.StartCreatedDate.Value.Date;
                tasks = tasks.Where(x => x.CreatedDateTime >= from);
            }

            if (filter.EndCreatedDate.HasValue)
            {
                DateTime to = filter.EndCreatedDate.Value.Date.AddDays(1).AddSeconds(-1);
                tasks = tasks.Where(x => x.CreatedDateTime <= to);
            }

            if (!string.IsNullOrWhiteSpace(filter.SearchText))
            {
                tasks = tasks.Where(x => x.Name.Contains(filter.SearchText) || x.Description.Contains(filter.SearchText));
            }

            return(new PageResult <ITask>(filter.PageIndex, filter.PageSize).ExecuteWith(tasks));
        }
Beispiel #3
0
        public static void Run()
        {
            for (int i = 0; i < Hallocation.ProduceCount; i += 1)
            {
                Spider spider = new Spider(i);
                Spiders.Add(spider);
            }
            for (int i = 0; i < Hallocation.ProduceCount; i += 1)
            {
                Spider spider = Spiders[i];
                ThreadPool.QueueUserWorkItem((obj =>
                {
#if DEBUG
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine("[Runner]\t{0}号蜘蛛被唤醒\r\n", spider.Index);
#endif
                    spider.Start();
                }));
            }
            ThreadPool.QueueUserWorkItem((obj) =>
            {
                CheckEnd();
            });

            for (int i = 0; i < Hallocation.CustomerCount; i += 1)
            {
                int j = i;
                ThreadPool.QueueUserWorkItem((obj) =>
                {
                    while (true)
                    {
                        SpiderTask task = GetResult();
                        if (task == null)
                        {
                            Thread.Sleep(400);
                            continue;
                        }
#if DEBUG
                        Console.ForegroundColor = ConsoleColor.DarkGreen;
                        Console.WriteLine("[Executor]\t拿到结果并交给{0}来处理\r\n", task.ProcessorKey);
#endif
                        if (!String.IsNullOrEmpty(task.FilterKey))
                        {
                            ITaskFilter filter = Filters[task.FilterKey];
                            filter.Run(task);
                        }
                        if (!String.IsNullOrEmpty(task.ProcessorKey))
                        {
                            ITaskProcessor processor = Processors[task.ProcessorKey];
                            processor.Run(task);
                        }
                        PostTask(task);
                    }
                });
            }
        }
        public async Task <IList <ManagerTask> > GetListAsync(ITaskFilter taskFilter, DateTime?date)
        {
            using (var db = new BkDbContext())
            {
                var lowerName    = taskFilter.Name?.ToLower();
                var lowerPurpose = taskFilter.Purpose?.ToLower();
                var agentIds     = taskFilter.AgentIds == null ? new int[] { } : taskFilter.AgentIds;

                var filterByName    = !string.IsNullOrEmpty(lowerName);
                var filterByPurpose = !string.IsNullOrEmpty(lowerPurpose);
                var filterByInn     = !string.IsNullOrEmpty(taskFilter.Inn);
                var filterByAgents  = agentIds.Length > 0;
                var filterByDate    = date.HasValue;

                var tasksQuery = (
                    from task in db.Tasks
                    join resolution in db.Resolutions on task.Id equals resolution.TaskId
                    where task.IsArchive == taskFilter.IsArchive &&
                    (!filterByName || task.Name != null && task.Name.ToLower().Contains(lowerName)) &&
                    (!filterByPurpose || task.PurposeOfPayment != null && task.PurposeOfPayment.ToLower().Contains(lowerPurpose)) &&
                    (!filterByInn || task.Inn != null && task.Inn.Contains(taskFilter.Inn)) &&
                    (!filterByAgents || agentIds.Contains(resolution.AgentId)) &&
                    (!filterByDate || task.Date == date.Value)
                    select task)
                                 .Distinct()
                                 .OrderByDescending(p => p.Date)
                                 .Skip(taskFilter.Offset);

                if (taskFilter.Limit > 0)
                {
                    tasksQuery = tasksQuery.Take(taskFilter.Limit);
                }

                var tasks = (await tasksQuery.ToListAsync()).Select(p => new ManagerTask(p)).ToList();

                return(await FillManagerTasksStatusesAndDecisions(db, tasks, taskFilter.Type));
            }
        }
 public RegisteredTaskFilter(ITaskFilter taskFilter)
 {
     Argument.IsNotNull(taskFilter, nameof(taskFilter));
     TaskFilterInstance = taskFilter;
 }
 protected RepoBase()
 {
     _taskFilter = ServiceLocator.GetInstance<ITaskFilter>();
 }
        public ICompositeTaskSet GetCompositeTasks(ITaskFilter filter)
        {
            ICompositeTaskSet taskSet = repositoryContext.ApplyTaskFilterWithCompute(CreateSid(), filter);

            return new CompositeTaskSet
            {
                LoggedUser = userContext.Logged,
                Page = taskSet.Page,
                Priorities = clsService.GetPriorities()
                                       .Merge(taskSet.Priorities, x => x.Id, x => x.Id, (x, y) => new AggregateClassifier { Id = x.Id, Name = x.Name, Total = y.Total }, x => new AggregateClassifier { Id = x.Id, Name = x.Name, Total = 0 })
                                       .ToArray(),

                Statuses = clsService.GetStatuses()
                                       .Merge(taskSet.Statuses, x => x.Id, x => x.Id, (x, y) => new AggregateClassifier { Id = x.Id, Name = x.Name, Total = y.Total }, x => new AggregateClassifier { Id = x.Id, Name = x.Name, Total = 0 })
                                       .ToArray(),

                Users = clsService.GetSystemUsers().Merge(taskSet.Users, x => x.Id, x => x.Id, (x, y) => new UserObject { Id = x.Id, Name = x.Name, TotalTasks = y.TotalTasks }, x => new UserObject(x)).ToArray()

            };

        }
 public IPage<ITask> GetTasksByFilter(ITaskFilter filter)
 {
     return repositoryContext.ApplyTaskFilterOnly(CreateSid(), filter);
 }
Beispiel #9
0
 public TaskManager()
 {
     _entries = new List <TaskEntry>();
     _filter  = null;
 }
 public ICompositeTaskSet ApplyTaskFilterWithCompute(Guid? sid, ITaskFilter filter)
 {
     return new CompositeTaskSet(filter.PageIndex, filter.PageSize).ExecuteWith(ApplyFilter(SetOfTask(), sid, filter));
 }
 public IPage<ITask> ApplyTaskFilterOnly(Guid? sid , ITaskFilter filter)
 {
     return new PageResult<ITask>(filter.PageIndex, filter.PageSize).ExecuteWith(ApplyFilter(SetOfTask(),sid,filter));
 }
        private IQueryable<TaskEntity> ApplyFilter(IQueryable<TaskEntity> query, Guid? sid, ITaskFilter filter)
        {
            if (sid.HasValue)
            {
                query = query.Where(x => x.AuthorId == sid || x.ManagerId == sid || x.EmployeeId == sid);
            }

            if (filter.PriorityCode.HasValue)
            {
                query = query.Where(x => x.PriorityId == filter.PriorityCode);
            }

            if (filter.StartCreatedDate.HasValue)
            {
                DateTime from = filter.StartCreatedDate.Value.Date;
                query = query.Where(x => x.CreatedDateTime >= from);
            }

            if (filter.EndCreatedDate.HasValue)
            {
                DateTime to = filter.EndCreatedDate.Value.Date.AddDays(1).AddSeconds(-1);
                query = query.Where(x => x.CreatedDateTime <= to);
            }

            if (!string.IsNullOrWhiteSpace(filter.SearchText))
            {
                query = query.Where(x => x.Name.Contains(filter.SearchText) || x.Description.Contains(filter.SearchText));
            }

            return query.OrderByDescending(x => x.CreatedDateTime);

        }