Пример #1
0
        private IEnumerable <TabEntryDto> GetJobsTab(DeviceConfig config, PaginationRequest pagination, SortRequest sort,
                                                     IEnumerable <AdvancedFilterRequest> filterRequest)
        {
            var jobs = _messageHandler.GetJobs(config)
                       .AsQueryable()
                       .Cast <Job>();

            foreach (var filter in filterRequest)
            {
                JobFilter.AddFilter(ref jobs, filter.FilterBy, filter.FilterString, filter.FilterExcluding);
            }

            JobFilter.AddJobSort(ref jobs, sort.SortBy, sort.SortOrderAscending);

            //FIXME -> Pagination in Watch implementieren !
            //Momentan für Watch -> limit 10 Jobs !!!
            if (config.DeviceId.DeviceName == "B")
            {
                pagination.PageSize = 10;
                jobs = jobs.Where(x => x.Status != JobStatus.Done);
            }
            //END FIXME

            List <Job> list;

            if (pagination.PageNumber > 0 && pagination.PageSize > 0)
            {
                list = jobs.ToPagedList(pagination.PageNumber, pagination.PageSize);
            }
            else
            {
                list = jobs.ToList();
            }
            //            return list.Select(x => new TabEntryDto { Entry = x });
            var actionDefs    = _configHandler.GetActions(config.Actions);
            var actionEntries = actionDefs.Select(x => new TabEntryDto {
                ListUi = x
            })
                                .Where(x => string.Equals(x.ListUi.Tab, "dashboard", StringComparison.Ordinal))
                                .OrderBy(x => x.ListUi.Id).ToList();
            var jobEntries = list.Select(x => new TabEntryDto {
                Entry = x
            }).ToList();

            jobEntries.AddRange(actionEntries);
            return(jobEntries);
        }
Пример #2
0
        public IEnumerable <JobEntryDto> GetJobs(DeviceId deviceId, PaginationRequest pagination, SortRequest sort,
                                                 IEnumerable <AdvancedFilterRequest> filterRequest)
        {
            var config = _configHandler.GetDeviceConfig(deviceId);
            var jobs   = _messageHandler.GetJobs(config)
                         .AsQueryable()
                         .Cast <Job>();

            foreach (var filter in filterRequest)
            {
                JobFilter.AddFilter(ref jobs, filter.FilterBy, filter.FilterString, filter.FilterExcluding);
            }
            JobFilter.AddJobSort(ref jobs, sort.SortBy, sort.SortOrderAscending);

            //FIXME -> Pagination in Watch implementieren !
            //Momentan für Watch -> limit 10 Jobs !!!
//            if (config.DeviceId.DeviceName == "B")
//            {
//                if (pagination == null)
//                {
//                    pagination = new PaginationRequest();
//                }
//                pagination.PageSize = 10;
//                jobs = jobs.Where(x => x.Status != JobStatus.Done);
//            }
            //END FIXME

            List <Job> list;

            if (pagination != null && pagination.PageNumber > 0 && pagination.PageSize > 0)
            {
                list = jobs.ToPagedList(pagination.PageNumber, pagination.PageSize);
            }
            else
            {
                list = jobs.ToList();
            }

            var uiLayouts = _configHandler.GetUiLayouts();

            return(list.Select(x => new JobEntryDto()
            {
                Entry = x,
                Ui = uiLayouts.FirstOrDefault(y => y.Id == x.Name)
            }));
        }