Esempio n. 1
0
        public async Task <ProfessorResponse> GetProfessorAsync(string cpf)
        {
            var professor = await _professorRepository.GetProfessorWithGradeAsync(cpf);

            double totalAlunos = 0;
            double totalGrades = 0;

            foreach (var grade in professor.Grades)
            {
                foreach (var subgrade in grade.Subgrades)
                {
                    if (subgrade.Matriculas.Count > 0)
                    {
                        totalGrades += 1;
                        totalAlunos += subgrade.Matriculas.Count;
                    }
                }
            }

            var coefficient = (totalAlunos / Constants.MAX_STUDENTS * totalGrades);

            var salary = coefficient * Constants.BONUS_BASE + Constants.SALARY;

            return(new ProfessorResponse(professor.CodigoFuncionario, professor.Nome, professor.Cpf, professor.Email, (int)totalGrades, (int)totalAlunos, salary));
        }