예제 #1
0
        public void ShowAddTrainingGroup(IFormFactory formFactory,
                                         ITrainingGroupRepository trainingGroupRepository,
                                         ITrainingRepository trainingRepository,
                                         ITrainingPeriodRepository trainingPeriodRepository,
                                         IMainController mainController)
        {
            IAddTrainingGroupForm form = formFactory.CreateAddTrainingGroupForm();

            List <Training> trainings = trainingRepository.GetAllTrainings();

            List <TrainingPeriod> trainingPeriods = trainingPeriodRepository.GetAllTrainingPeriods().ToList();

            // Uklanjanje zauzetih termina s popisa dostupnih termina
            foreach (TrainingGroup group in trainingGroupRepository.GetAllTrainingGroups())
            {
                foreach (TrainingPeriod trainingPeriod in group.TrainingPeriods)
                {
                    int index = trainingPeriods.FindIndex(period => period.PeriodId == trainingPeriod.PeriodId);

                    if (index != -1)
                    {
                        trainingPeriods.RemoveAt(index);
                    }
                }
            }

            List <TrainingPeriod> newPeriods = trainingPeriods.Select(item => item).ToList();

            form.ShowModal(mainController, trainings, newPeriods);
        }
예제 #2
0
 public void AddTrainingPeriod(TrainingPeriod trainingPeriod, ITrainingPeriodRepository trainingPeriodRepository)
 {
     try
     {
         trainingPeriodRepository.AddTrainingPeriod(trainingPeriod);
     }
     catch (PeriodAlreadyTakenException periodEx)
     {
         throw periodEx;
     }
 }
예제 #3
0
        public void ShowEditTrainingPeriod(IFormFactory formFactory,
                                           ITrainingPeriodRepository trainingPeriodRepository,
                                           int periodId,
                                           IMainController mainController)
        {
            IEditTrainingPeriodForm form = formFactory.CreateEditTrainingPeriodForm();

            TrainingPeriod trainingPeriod = trainingPeriodRepository.GetTrainingPeriodWithId(periodId);

            form.ShowModal(mainController, trainingPeriod);
        }
예제 #4
0
        public void ShowTrainingPeriods(IViewTrainingPeriodsForm form, ITrainingPeriodRepository trainingPeriodRepository,
                                        IMainController mainController)
        {
            List <TrainingPeriod> trainingPeriods = trainingPeriodRepository.GetAllTrainingPeriods();

            Subject subject = (Subject)trainingPeriodRepository;

            subject.Attach((IObserver)form);

            form.ShowModaless(mainController, trainingPeriods);
        }
예제 #5
0
 public void EditTrainingPeriodWithId(int periodId, TrainingPeriod trainingPeriod,
                                      ITrainingPeriodRepository trainingPeriodRepository)
 {
     try
     {
         trainingPeriodRepository.EditTrainingPeriodWithId(periodId, trainingPeriod);
     }
     catch (PeriodAlreadyTakenException periodEx)
     {
         throw periodEx;
     }
 }
예제 #6
0
 public MainController(IFormFactory formFactory, IClientDebtRepository clientDebtRepository,
                       IClientRepository clientRepository, IExerciseRepository exerciseRepository,
                       ITrainingGroupRepository trainingGroupRepository, ITrainingPeriodRepository trainingPeriodRepository,
                       ITrainingRepository trainingRepository)
 {
     this.formFactory              = formFactory;
     this.clientDebtRepository     = clientDebtRepository;
     this.clientRepository         = clientRepository;
     this.exerciseRepository       = exerciseRepository;
     this.trainingGroupRepository  = trainingGroupRepository;
     this.trainingPeriodRepository = trainingPeriodRepository;
     this.trainingRepository       = trainingRepository;
 }
예제 #7
0
        public void RemoveTrainingPeriodWithId(int periodId, ITrainingPeriodRepository trainingPeriodRepository, ITrainingGroupRepository trainingGroupRepository)
        {
            List <TrainingGroup> trainingGroups = trainingGroupRepository.GetAllTrainingGroups();

            if (!trainingGroups.Any(group =>
                                    group.TrainingPeriods.FindIndex(period =>
                                                                    period.PeriodId == periodId) != -1))
            {
                trainingPeriodRepository.RemoveTrainingPeriodWithId(periodId);
            }
            else
            {
                throw new DependantDataNotDeletableException();
            }
        }