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); }
public IActionResult Edit(int id) { SubjectViewModel subjectViewModel = _subjectRepository.GetById(id); return(View("Edit", _subjectRepository.GetById(id))); }