ILIAS  trunk Revision v13.0_alpha-52-g21c366bbdd4
class.DomainService.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
30
36{
39
40 // for managers that need to be created
41 // on the fly and should be cached
42 protected static array $managers = [];
43
44 public function __construct(
47 ) {
48 $this->domain_service = $domain_service;
49 $this->repo_service = $repo_service;
50 }
51
52
53 public function assignments(int $obj_id, int $user_id): AssignmentManager
54 {
55 return new AssignmentManager(
56 $this->repo_service,
57 $this->domain_service,
58 $obj_id,
60 );
61 }
62
63 public function assignmentsRetrieval(int $exercise_id): AssignmentsRetrieval
64 {
65 return new AssignmentsRetrieval($this->domain_service, $exercise_id);
66 }
67
72 public function randomAssignments(\ilObjExercise $exercise, ?\ilObjUser $user = null): Mandatory\RandomAssignmentsManager
73 {
74 if (!isset(self::$managers[Mandatory\RandomAssignmentsManager::class][$exercise->getId()])) {
75 self::$managers[Mandatory\RandomAssignmentsManager::class][$exercise->getId()] =
78 $this->repo_service->assignment()->randomAssignments(),
79 $this->repo_service->submission(),
80 $user
81 );
82 }
83 return self::$managers[Mandatory\RandomAssignmentsManager::class][$exercise->getId()];
84 }
85
91 {
92 if (!isset(self::$managers[Mandatory\MandatoryAssignmentsManager::class][$exercise->getId()])) {
93 self::$managers[Mandatory\MandatoryAssignmentsManager::class][$exercise->getId()] =
95 }
96 return self::$managers[Mandatory\MandatoryAssignmentsManager::class][$exercise->getId()];
97 }
98
99 public function state(int $ass_id, int $user_id): \ilExcAssMemberState
100 {
101 return \ilExcAssMemberState::getInstanceByIds($ass_id, $user_id);
102 }
103
105 {
106 $stakeholder = new \ilExcInstructionFilesStakeholder();
107 return new InstructionFileManager(
108 $ass_id,
109 $this->repo_service->instructionFiles(),
110 $stakeholder
111 );
112 }
113
115 {
116 $stakeholder = new \ilExcSampleSolutionStakeholder();
117 return new SampleSolutionManager(
118 $ass_id,
119 $this->repo_service->sampleSolution(),
120 $stakeholder,
121 $this->domain_service
122 );
123 }
124
126 {
127 $stakeholder = new \ilExcTutorFeedbackFileStakeholder();
128 $team_stakeholder = new \ilExcTutorTeamFeedbackFileStakeholder();
129 $observer = new TutorFeedbackFileObserver($this->domain_service, $ass_id);
130 return new TutorFeedbackFileManager(
131 $ass_id,
132 $this->repo_service,
133 $this->domain_service,
134 $stakeholder,
135 $team_stakeholder,
136 $observer
137 );
138 }
139
141 {
142 $stakeholder = new \ilExcTutorFeedbackZipStakeholder();
143 $user_stakeholder = new \ilExcTutorFeedbackFileStakeholder();
144 return new TutorFeedbackZipManager(
145 $this->repo_service,
146 $this->domain_service,
147 $stakeholder,
148 $user_stakeholder
149 );
150 }
151
155 public function getAssignment(int $ass_id): \ilExAssignment
156 {
157 return new \ilExAssignment($ass_id);
158 }
159
160}
randomAssignments(\ilObjExercise $exercise, ?\ilObjUser $user=null)
Get random assignment manager.
__construct(InternalDomainService $domain_service, InternalRepoService $repo_service)
mandatoryAssignments(\ilObjExercise $exercise)
Get mandatory assignment manager.
Manages random mandatory assignments of an exercise (business logic)
Exercise assignment.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilObjExercise.
User class.
ilObjExercise $exercise