public static string Generate(Course course, UnitOfWork unitOfWork) { StringBuilder sb = new StringBuilder(); sb.Append(DateTime.Now.Year % 100); sb.Append("01"); sb.Append(course.Code.ToString("00")); sb.Append("1"); var students = unitOfWork.StudentRepository.GetAll(null, false).OrderBy(s => s.FacultyNumber); int lastIdNumber = 0; if (students.Count() > 0) { foreach (var s in students) { if (s.FacultyNumber != null && s.FacultyNumber.StartsWith(sb.ToString())) { lastIdNumber = int.Parse(s.FacultyNumber.Substring(7)); } } //students = students.Where(s => s.FacultyNumber.StartsWith(sb.ToString())); } sb.Append((lastIdNumber + 1).ToString("000")); return sb.ToString(); }
public ActionResult CreateEditCourse(CoursesCreateVM model) { if (ModelState.IsValid) { Course course; if (model.Id == 0) { course = new Course(); } else { course = unitOfWork.CourseRepository.GetById(model.Id); } if (unitOfWork.CourseRepository.CheckIfCourseCodeExists(model.CourseCode)) { if (model.CourseCode != course.Code) { model.Subjects = unitOfWork.SubjectRepository.GetAll(true); TempData.FlashMessage("The course code you are trying to create is already in use", null, FlashMessageTypeEnum.Red); return View(model); } } int oldCourseCode = course.Code; course.Name = model.Name; model.Subjects = unitOfWork.SubjectRepository.GetAll(); List<Subject> subjects = new List<Subject>(); foreach (var s in model.Subjects) { if ((Request.Form[s.Id.ToString()] != null) && (Request.Form[s.Id.ToString()] == "on")) { subjects.Add(s); } } if (model.Id == 0) { course.Code = model.CourseCode; unitOfWork.CourseRepository.Insert(course); TempData.FlashMessage("Course Created"); } else { if (course.Code != model.CourseCode) { course.Code = model.CourseCode; List<Student> students = new List<Student>(); foreach (var s in unitOfWork.StudentRepository.GetAll(null, false)) { if (s.FacultyNumber.Substring(4, 2) == oldCourseCode.ToString("00")) { students.Add(s); } } GenerateFacultyNumber.ResetFacultyNumbersbyCourseId(course.Id, students); unitOfWork.StudentRepository.Save(); foreach (var s in students) { s.FacultyNumber = GenerateFacultyNumber.Generate(course, unitOfWork); } } course.Code = model.CourseCode; unitOfWork.CourseRepository.Update(course); TempData.FlashMessage("Course Edited"); } unitOfWork.Save(); unitOfWork.CoursesSubjectsRepository.UpdateTable(course, subjects); return RedirectToAction("ManageCourses", "Admin"); } model.Subjects = unitOfWork.SubjectRepository.GetAll(true); return View(model); }