class-wpml-tp-jobs-collection.php
1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
class WPML_TP_Jobs_Collection {
private $project;
private $job_factory;
private $batch_factory;
private $jobs;
public function __construct(
TranslationProxy_Project $project,
WPML_TP_Job_Factory $job_factory,
WPML_Translation_Batch_Factory $batch_factory
) {
$this->project = $project;
$this->job_factory = $job_factory;
$this->batch_factory = $batch_factory;
}
/**
* @return WPML_TP_Job[]
*/
public function get_all() {
$jobs_obj = array();
if ( ! $this->jobs ) {
$jobs = $this->project->jobs();
foreach ( $jobs as $job ) {
$jobs_obj[] = $this->job_factory->create( $job );
}
$this->jobs = $jobs_obj;
}
return $this->jobs;
}
/**
* @param WPML_Translation_Job $job
*
* @return bool
*/
public function is_job_canceled( WPML_Translation_Job $job ) {
$canceled = false;
$batch = $this->batch_factory->create( $job->get_batch_id() );
foreach ( $this->get_all() as $tp_job ) {
if ( (int) $batch->get_batch_tp_id() === $tp_job->get_batch()->id
&& (int) $job->get_original_element_id() === $tp_job->get_original_element_id()
&& WPML_TP_Job::CANCELLED === $tp_job->get_job_state()
) {
$canceled = true;
}
}
return $canceled;
}
}