Exemplo n.º 1
0
        public async Task <List <AlgorithmTaskListForDisplayDTO> > GetAlgorithmTasksForDisplayAsync()
        {
            int rateCounter = 0;
            int rateSum     = 0;
            var tasks       = await _repository.GetAlgorithmTasksForDisplayAsync();

            var mappedTask = _mapper.Map <List <AlgorithmTaskListForDisplayDTO> >(tasks);


            foreach (var item in mappedTask)
            {
                var result = await _repository.GetRateListByIdAsync(item.Id);

                rateCounter = 0;
                rateSum     = 0;
                foreach (var rate in result)
                {
                    rateSum += rate.Points;
                    rateCounter++;
                }
                if (rateCounter > 0 && rateSum > 0)
                {
                    int rateAverage = rateSum / rateCounter;
                    item.RatePoints = rateAverage;
                }
            }
            return(mappedTask);
        }
Exemplo n.º 2
0
        public async Task <List <AlgorithmTaskListForDisplayDTO> > GetTasksAssignedToUserAsync(int userId)
        {
            int rateCounter;
            int rateSum;
            List <AlgorithmTask> tasks         = new List <AlgorithmTask>();
            List <AlgorithmTask> filteredTasks = new List <AlgorithmTask>();
            List <AlgorithmTask> correctTasks  = new List <AlgorithmTask>();
            var user = await _repository.GetTasksAssignedToUserAsync(userId);

            var verdicts = await _verdictRepository.GetUserVerdictsAsync(userId);

            foreach (var assignment in user.GroupAssignment)
            {
                foreach (var courseAssignment in assignment.Group.TaskToGroupAssignment)
                {
                    tasks.Add(courseAssignment.AlgorithmTask);
                }
            }
            foreach (var task in tasks.ToList())
            {
                if (!filteredTasks.Contains(task))
                {
                    filteredTasks.Add(task);
                }
            }

            foreach (var task in filteredTasks)
            {
                var taskDB = await _repository.GetAlgorithmTaskAsync(task.Id);

                correctTasks.Add(taskDB);
            }

            var mappedTasks = _mapper.Map <List <AlgorithmTaskListForDisplayDTO> >(correctTasks);

            foreach (var item in mappedTasks)
            {
                var result = await _taskRepository.GetRateListByIdAsync(item.Id);

                rateCounter = 0;
                rateSum     = 0;
                foreach (var rate in result)
                {
                    rateSum += rate.Points;
                    rateCounter++;
                }
                if (rateCounter > 0 && rateSum > 0)
                {
                    int rateAverage = rateSum / rateCounter;
                    item.RatePoints = rateAverage;
                }
            }
            foreach (var item in mappedTasks.ToList())
            {
                foreach (var verdict in verdicts)
                {
                    if (verdict.AlgorithmTaskId == item.Id)
                    {
                        mappedTasks.Remove(item);
                        break;
                    }
                }
            }
            return(mappedTasks);
        }