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); }
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) })); }