dependencies Legend  Declarations  Module  Bootstrap  Providers  Exports cluster_ScheincriteriaModule cluster_ScheincriteriaModule_imports cluster_ScheincriteriaModule_exports cluster_ScheincriteriaModule_providers ScheinexamModule ScheinexamModule ScheincriteriaModule ScheincriteriaModule ScheinexamModule->ScheincriteriaModule SheetModule SheetModule SheetModule->ScheincriteriaModule ShortTestModule ShortTestModule ShortTestModule->ScheincriteriaModule StudentModule StudentModule StudentModule->ScheincriteriaModule TutorialModule TutorialModule TutorialModule->ScheincriteriaModule ScheincriteriaService ScheincriteriaService ScheincriteriaModule->ScheincriteriaService ScheincriteriaService ScheincriteriaService ScheincriteriaService->ScheincriteriaModule

File

src/module/scheincriteria/scheincriteria.module.ts

Methods

onModuleInit
onModuleInit()
Returns : void
Private registerCriteria
registerCriteria(criteriaClass: ScheincriteriaClass)

Registers the given criteria to the ScheincriteriaContainer.

This way it can be accessed later as a blue print. The actual saved data in the criterias passed to this do not matter. They only serve as 'blueprints'.

Parameters :
Name Type Optional Description
criteriaClass ScheincriteriaClass No

Criteria to register to the ScheincriteriaContainer.

Returns : void
import { MikroOrmModule } from '@mikro-orm/nestjs';
import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { ScheincriteriaEntity } from '../../database/entities/scheincriteria.entity';
import { ScheinexamModule } from '../scheinexam/scheinexam.module';
import { SheetModule } from '../sheet/sheet.module';
import { ShortTestModule } from '../short-test/short-test.module';
import { StudentModule } from '../student/student.module';
import { TutorialModule } from '../tutorial/tutorial.module';
import { AttendanceCriteria } from './container/criterias/AttendanceCriteria';
import { PresentationCriteria } from './container/criterias/PresentationCriteria';
import { ScheinexamCriteria } from './container/criterias/ScheinexamCriteria';
import { SheetIndividualCriteria } from './container/criterias/SheetIndividualCriteria';
import { SheetTotalCriteria } from './container/criterias/SheetTotalCriteria';
import { ShortTestCriteria } from './container/criterias/ShortTestCriteria';
import { Scheincriteria } from './container/Scheincriteria';
import { ScheincriteriaContainer } from './container/scheincriteria.container';
import { ScheincriteriaClass } from './container/scheincriteria.form';
import { ScheincriteriaController } from './scheincriteria.controller';
import { ScheincriteriaService } from './scheincriteria.service';

export type ScheincriteriaConstructor = new (...args: any[]) => Scheincriteria;

@Module({
    imports: [
        StudentModule,
        SheetModule,
        ScheinexamModule,
        TutorialModule,
        ShortTestModule,
        MikroOrmModule.forFeature([ScheincriteriaEntity]),
    ],
    providers: [ScheincriteriaService],
    controllers: [ScheincriteriaController],
    exports: [ScheincriteriaService],
})
export class ScheincriteriaModule implements OnModuleInit {
    onModuleInit(): void {
        const criterias: ScheincriteriaConstructor[] = [
            AttendanceCriteria,
            PresentationCriteria,
            SheetIndividualCriteria,
            SheetTotalCriteria,
            ScheinexamCriteria,
            ShortTestCriteria,
        ];

        criterias.forEach((criteria) => this.registerCriteria(criteria));
    }

    /**
     * Registers the given criteria to the `ScheincriteriaContainer`.
     *
     * This way it can be accessed later as a blue print. The actual saved data in the criterias passed to this do _not_ matter. They only serve as 'blueprints'.
     *
     * @param criteriaClass Criteria to register to the `ScheincriteriaContainer`.
     */
    private registerCriteria(criteriaClass: ScheincriteriaClass) {
        const logContext = ScheincriteriaModule.name;
        const container = ScheincriteriaContainer.getContainer();
        const criteria = new criteriaClass();
        const identifier = criteria.identifier;

        Logger.log(`Registering scheincriteria '${identifier}'...`, logContext);

        container.registerBluePrint(criteriaClass);

        Logger.log(`Scheincriteria ${identifier} registered`, logContext);
    }
}

results matching ""

    No results matching ""