public async Task <IActionResult> Details(int courseId)
        {
            Course           courseFromDB  = _coursesRepository.GetById(courseId);
            SubjectViewModel subjectFromDB = _subjectsRepository.GetById(courseFromDB.Subject.SubjectId);
            List <CourseModuleEditViewModel> modulesFromDB = await _coursesRepository.GetScheduleModules(courseId);

            List <Student> students = await _studentsRepository.GetStudentsByCourse(courseId);

            User userFromDB = await _usersRepository.GetByEmail(courseFromDB.Teacher.Email);

            CourseDetailsViewModel courseDetailsViewModel = new CourseDetailsViewModel()
            {
                Course  = courseFromDB,
                Subject = new Subject()
                {
                    SubjectId   = subjectFromDB.SubjectId,
                    Name        = subjectFromDB.Name,
                    Description = subjectFromDB.Description
                },
                Teacher = new AspNetUsers()
                {
                    FirstName  = userFromDB.FirstName,
                    LastName   = userFromDB.LastName,
                    MiddleName = userFromDB.MiddleName
                },
                Modules  = modulesFromDB,
                Students = students
            };

            return(View(courseDetailsViewModel));
        }
 public ActionResult <SubjectsDTO> GetSubjectsById(string id)
 {
     try
     {
         var result = repository.GetById(id);
         if (result != null)
         {
             return(Ok(mapper.Map <SubjectsDTO>(result)));
         }
         return(NotFound());
     }
     catch (System.Exception msg)
     {
         return(NotFound(msg));
     }
 }
        private void FillSlotsWithSubjects()
        {
            for (int i = 0; i < _subjectsRepository.Count; i++)
            {
                Subject subject = _subjectsRepository.GetById(i + 1);
                int     slotId;
                do
                {
                    slotId = _random.Next(0, _slotsCount);
                } while (!CanSubjectBePlacedAtSlot(slotId, subject)); //if it is different it means that there is already some subject at this slot

                for (int j = slotId; j < slotId + subject.Duration; j++)
                {
                    _slots[j].SubjectId = subject.Id;
                }
            }
        }
        public float CalculateFitness(List <Slot> genes)
        {
            float score = 0.0f;

            List <IGrouping <int, Slot> > slotsGroupedBySubject =
                genes.Where(x => x.SubjectId != -1).GroupBy(x => x.SubjectId).ToList();

            foreach (IGrouping <int, Slot> group in slotsGroupedBySubject)
            {
                Slot subjectSlot = group.First();

                Subject subject = _subjectsRepository.GetById(subjectSlot.SubjectId);
                Room    room    = _roomsRepository.GetById(subjectSlot.RoomId);

                //check if room is good for subject
                if (subject.Type == room.Type)
                {
                    score++;
                }
            }

            return(score / _maxScore);
        }
示例#5
0
        public IActionResult Edit(int id)
        {
            SubjectViewModel subjectViewModel = _subjectRepository.GetById(id);

            return(View("Edit", _subjectRepository.GetById(id)));
        }