Пример #1
0
        public TrainingDetailDTO GetTrainingDetailByID(int trainingID)
        {
            try
            {
                TrainingDetailDTO returnTraining = new TrainingDetailDTO();

                //Call a DAL method to get Training by TrainingId
                Training training = _trainingRepository.Get(trainingID);


                returnTraining.TrainingId = training.Id;
                returnTraining.ProgramId  = training.ProgramId;

                var program = _programRepository.Get(training.ProgramId);

                returnTraining.ProgramName    = program.ProgramTitle;
                returnTraining.StatusId       = training.StatusId;
                returnTraining.StatusName     = training.TrainingStatus.StatusName; //need to check
                returnTraining.StartDate      = training.StartDate.ToString();
                returnTraining.EndDate        = training.EndDate.ToString();
                returnTraining.TotalDuration  = training.TotalDuration;
                returnTraining.MaxHoursPerDay = _configurationRepository.GetMaximumHoursPerDay();

                #region Get array trainees assigned

                List <ShortTraineeDetailDTO> listTraineesAssigned = new List <ShortTraineeDetailDTO>();

                //Call a DAL method to get trainees by array traineeIDs
                List <Trainee> listTrainees = _traineeRepository.getTraineesByArrayId(training.ArrayOfAssignedTrainees);

                foreach (var x in listTrainees)
                {
                    ShortTraineeDetailDTO trainee = new ShortTraineeDetailDTO();

                    trainee.TraineeId = x.Id;

                    var person = _personRepository.Get(x.PersonId);

                    trainee.Name = person.Name;

                    listTraineesAssigned.Add(trainee);
                }

                returnTraining.TraineesAssigned = listTraineesAssigned;

                #endregion

                #region Get array trainers assigned

                List <ShortTrainerDetailDTO> listTrainersAssigned = new List <ShortTrainerDetailDTO>();

                //Call a DAL method to get trainers by array trainerIDs
                List <Trainer> trainerList = _trainerRepository.GetTrainersByArrayId(training.ArrayOfAssignedTrainers);

                foreach (var x in trainerList)
                {
                    ShortTrainerDetailDTO trainer = new ShortTrainerDetailDTO();

                    trainer.TrainerId = x.Id;

                    var person = _personRepository.Get(x.PersonId);

                    trainer.Name = person.Name;

                    listTrainersAssigned.Add(trainer);
                }

                returnTraining.TrainersAssigned = listTrainersAssigned;

                #endregion

                #region Get array modules included

                List <ShortModuleDetailDTO> listModulesIncluded = new List <ShortModuleDetailDTO>();

                //Array moduleIDs
                ModuleArrangementDTO[] arrayModulesArrangement = JsonConvert.DeserializeObject <ModuleArrangementDTO[]>(training.ModuleArrangement);

                foreach (ModuleArrangementDTO moduleArrangement in arrayModulesArrangement.ToList())
                {
                    ShortModuleDetailDTO shortModule = new ShortModuleDetailDTO();

                    //Get id and TrainTime of module
                    shortModule.ModuleId  = moduleArrangement.ModuleId;
                    shortModule.TrainTime = moduleArrangement.TrainTime;
                    //With each ModuleId, we get module data from database by that ModuleId
                    Module module = _moduleRepository.Get(moduleArrangement.ModuleId);

                    shortModule.ModuleTitle = module.Title;
                    shortModule.Duration    = module.Theory + module.Pratical;

                    //Get TotalDate
                    if ((shortModule.Duration % shortModule.TrainTime) != 0)
                    {
                        double temp = shortModule.Duration / shortModule.TrainTime;
                        shortModule.TotalDate = Math.Truncate(temp) + 1;
                    }
                    else
                    {
                        shortModule.TotalDate = shortModule.Duration / shortModule.TrainTime;
                    }

                    //Get Competencies trained by this module
                    List <CompetenceDTO> listCompetenciesTrained = new List <CompetenceDTO>();
                    List <Competence>    competencies            =
                        _competenceRepository.GetCompetenciesByCompetenceID(module.ArrayOfTrainingCompetencies);

                    foreach (var competence in competencies)
                    {
                        CompetenceDTO competenceDto = new CompetenceDTO();

                        competenceDto.CompetenceID = competence.Id;
                        competenceDto.Name         = competence.Name;
                        competenceDto.Description  = competence.Description;

                        listCompetenciesTrained.Add(competenceDto);
                    }

                    shortModule.Competencies = listCompetenciesTrained;

                    listModulesIncluded.Add(shortModule);
                }

                returnTraining.ModulesArrangement = listModulesIncluded;

                #endregion

                return(returnTraining);
            }
            catch
            {
                return(null);
            }
        }
Пример #2
0
        public EndDateMessageDTO CalculaterEndDate(CalculateEndDateInputDTO calculateEndDateInput)
        {
            try
            {
                string endDate = "";

                #region Get total dates to train the program

                //Total dates to train the program
                double totalDates = 0;

                //Get modules included to program
                List <ShortModuleDetailDTO> listModulesIncluded = new List <ShortModuleDetailDTO>();

                //Get program by ProgramId
                var program = _programRepository.Get(calculateEndDateInput.ProgramID);

                int[] modulesIncludedID = program.ArrayOfIncludedModules;

                //Call a DAL method to get list module
                var modules = _moduleRepository.GetModulesByArrayID(modulesIncludedID);

                foreach (Module module in modules)
                {
                    ShortModuleDetailDTO shortModule = new ShortModuleDetailDTO();

                    //Get id and TrainTime of module
                    shortModule.ModuleId  = module.Id;
                    shortModule.TrainTime = _configurationRepository.GetMaximumHoursPerDay();

                    shortModule.ModuleTitle = module.Title;
                    shortModule.Duration    = module.Theory + module.Pratical;

                    //Get TotalDate
                    if ((shortModule.Duration % shortModule.TrainTime) != 0)
                    {
                        double temp = shortModule.Duration / shortModule.TrainTime;
                        shortModule.TotalDate = Math.Truncate(temp) + 1;
                    }
                    else
                    {
                        shortModule.TotalDate = shortModule.Duration / shortModule.TrainTime;
                    }

                    //Get Competencies trained by this module
                    List <CompetenceDTO> listCompetenciesTrained = new List <CompetenceDTO>();

                    var competenciesTrained = _competenceRepository.GetCompetenciesByCompetenceID(module.ArrayOfTrainingCompetencies);

                    foreach (Competence competence in competenciesTrained)
                    {
                        CompetenceDTO competenceDto = new CompetenceDTO();

                        competenceDto.CompetenceID = competence.Id;
                        competenceDto.Name         = competence.Name;
                        competenceDto.Description  = competence.Description;

                        listCompetenciesTrained.Add(competenceDto);
                    }

                    shortModule.Competencies = listCompetenciesTrained;

                    listModulesIncluded.Add(shortModule);
                }

                foreach (ShortModuleDetailDTO module in listModulesIncluded)
                {
                    totalDates += module.TotalDate;
                }

                #endregion

                #region Calculate end date

                //List days off in a week
                List <int> daysOff = JsonConvert.DeserializeObject <int[]>(_configurationRepository.GetDaysOff()).ToList();

                endDate = _compareAppService.CalculateEndDate(calculateEndDateInput.StartDate, totalDates, daysOff);

                #endregion

                return(new EndDateMessageDTO()
                {
                    status = true,
                    message = L("CalculaterEndDateSuccess"),
                    endDate = endDate
                });
            }
            catch
            {
                return(new EndDateMessageDTO()
                {
                    status = false,
                    message = L("UnknownError"),
                    endDate = "null"
                });
            }
        }
Пример #3
0
        public ProgramDetailDTO GetProgramDetailByID(int programID)
        {
            try
            {
                ProgramDetailDTO programDetailDTO = new ProgramDetailDTO();

                //Call a DAL method to get program detail by id
                var program = _programRepository.Get(programID);

                programDetailDTO.ProgramId      = program.Id;
                programDetailDTO.ProgramTitle   = program.ProgramTitle;
                programDetailDTO.MaxHoursPerDay = _configurationRepository.GetMaximumHoursPerDay();

                #region Get modules included to program

                List <ShortModuleDetailDTO> listModulesIncluded = new List <ShortModuleDetailDTO>();

                //Call a DAL method to get list module
                List <Module> modules = _moduleRepository.GetModulesByArrayID(program.ArrayOfIncludedModules).ToList();

                foreach (Module module in modules)
                {
                    ShortModuleDetailDTO shortModule = new ShortModuleDetailDTO();

                    //Get id and TrainTime of module
                    shortModule.ModuleId    = module.Id;
                    shortModule.TrainTime   = _configurationRepository.GetMaximumHoursPerDay();
                    shortModule.ModuleTitle = module.Title;
                    shortModule.Duration    = module.Theory + module.Pratical;

                    //Get TotalDate
                    if ((shortModule.Duration % shortModule.TrainTime) != 0)
                    {
                        double temp = shortModule.Duration / shortModule.TrainTime;
                        shortModule.TotalDate = Math.Truncate(temp) + 1;
                    }
                    else
                    {
                        shortModule.TotalDate = shortModule.Duration / shortModule.TrainTime;
                    }

                    //Get Competencies trained by this module
                    List <CompetenceDTO> listCompetenciesTrained = new List <CompetenceDTO>();
                    List <Competence>    CompetenciesTrained     =
                        _competenceRepository.GetCompetenciesByCompetenceID(module.ArrayOfTrainingCompetencies);

                    foreach (var competence in CompetenciesTrained)
                    {
                        CompetenceDTO competenceDto = new CompetenceDTO();

                        competenceDto.CompetenceID = competence.Id;
                        competenceDto.Name         = competence.Name;
                        competenceDto.Description  = competence.Description;

                        listCompetenciesTrained.Add(competenceDto);
                    }

                    shortModule.Competencies = listCompetenciesTrained;

                    listModulesIncluded.Add(shortModule);
                }

                programDetailDTO.ModulesIncluded = listModulesIncluded;

                #endregion

                #region Get potential trainees

                List <ShortTraineeDetailDTO> listPotentialTrainees = new List <ShortTraineeDetailDTO>();

                //Call a DAL method to get list potentail trainees
                List <Trainee> potentailTrainees = _traineeRepository.getTraineesByArrayId(program.ArrayOfNeedByPotentialTrainees);

                foreach (Trainee trainee in potentailTrainees)
                {
                    ShortTraineeDetailDTO Shotttrainee = new ShortTraineeDetailDTO();

                    Shotttrainee.TraineeId = trainee.Id;

                    var person = _personRepository.Get(trainee.PersonId);

                    Shotttrainee.Name = person.Name;

                    listPotentialTrainees.Add(Shotttrainee);
                }

                programDetailDTO.NeedByPotentialTrainees = listPotentialTrainees;

                #endregion

                #region Get total Duration

                double totalDuration = 0;

                foreach (ShortModuleDetailDTO module in programDetailDTO.ModulesIncluded)
                {
                    totalDuration += module.Duration;
                }

                programDetailDTO.TotalDuration = totalDuration;

                #endregion

                return(programDetailDTO);
            }
            catch
            {
                return(null);
            }
        }