private void generateStatusOfTranscodings() { // FIXME:FK fetch using one single SQL query availableTranscodings = new HashMap<>(); availableTranscodings.put(240, new HashSet<OLATResource>()); availableTranscodings.put(360, new HashSet<OLATResource>()); availableTranscodings.put(480, new HashSet<OLATResource>()); availableTranscodings.put(720, new HashSet<OLATResource>()); availableTranscodings.put(1080, new HashSet<OLATResource>()); availableTranscodings.put(2160, new HashSet<OLATResource>()); // determine resource type of interest List<String> types = new ArrayList<>(); types.add("FileResource.VIDEO"); // retrieve all resources of type video olatresources = olatresourceManager.findResourceByTypes(types); // go through all video resources for (OLATResource videoResource : olatresources) { // retrieve all transcodings for each video resource List<VideoTranscoding> transcodings = videoManager.getVideoTranscodings(videoResource); // map resource IDs to resolution for (VideoTranscoding videoTranscoding : transcodings) { if (videoTranscoding != null) { Set<OLATResource> oneResolution = availableTranscodings.get(videoTranscoding.getResolution()); if (oneResolution != null) { oneResolution.add(videoTranscoding.getVideoResource()); } } } } }
// go through all and delete selection private void queueDeleteTranscoding(TranscodingRow source) { for (OLATResource videoResource : olatresources) { if (availableTranscodings.get(source.getResolution()).contains(videoResource)) { List<VideoTranscoding> videoTranscodings = videoManager.getVideoTranscodings(videoResource); for (VideoTranscoding videoTranscoding : videoTranscodings) { if (videoTranscoding.getResolution() == source.getResolution()) { videoManager.deleteVideoTranscoding(videoTranscoding); } } } } }