// GET: Classes/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Class @class = db.Classes.Find(id); if (@class == null) { return(HttpNotFound()); } EnrolmentViewModel evm = new EnrolmentViewModel(); List <Student> students = new List <Student>(); List <Staff> staff = new List <Staff>(); var classID = Convert.ToInt32(id); evm.Class = db.Classes.Find(classID); foreach (var enrolment in db.Enrolments.Where(e => e.Class_ID.Equals(classID))) { students.Add(enrolment.Student); } foreach (var classStaff in db.ClassStaffs.Where(cs => cs.Class_ID.Equals(classID))) { staff.Add(classStaff.Staff); } evm.Students = students; evm.Staff = staff; return(View(evm)); }
public ActionResult Save(Enrolment enrolment) { if (!ModelState.IsValid) { var newEnrol = new EnrolmentViewModel { Enrolment = enrolment, Students = _context.Students.ToList(), Courses = _context.Courses.ToList(), Plans = _context.Plans.ToList(), }; return(View("Form", newEnrol)); } var enrolmentInDb = _context.Enrolments.SingleOrDefault(c => c.StudentID == enrolment.StudentID && c.CourseID == enrolment.CourseID); if (enrolmentInDb == null) { _context.Enrolments.Add(enrolment); } else { enrolmentInDb.StudentID = enrolment.StudentID; enrolmentInDb.CourseID = enrolment.CourseID; enrolmentInDb.PlanID = enrolment.PlanID; enrolmentInDb.EnrolledAt = enrolment.EnrolledAt == null ? DateTime.Now.Date : enrolment.EnrolledAt; } _context.SaveChanges(); return(RedirectToAction("Index", "Enrolments")); }
/// <summary> /// Enrolls tennant by the requisition functionality /// </summary> /// <param name="unitOfWork"></param> /// <param name="model"></param> private void EnrollTennantByRequisition(UnitOfWork unitOfWork, EnrolmentViewModel model) { var requisition = unitOfWork.PropertyRequisition.Get(model.ReqID); bool isAccepted = requisition.IsAccepted.HasValue ? requisition.IsAccepted.Value : false; if (isAccepted) { string enrolKey = unitOfWork.Property.GetEnrolmentKeyByPropID(model.PropertyID); if (enrolKey.Equals(model.EnrolmentKey)) { PropertyHelper.createRolesIfNotExist(); var user = requisition.User; var property = requisition.Property; //assigning user as tennant if he/she isn't var userTypes = unitOfWork.UserTypeAssoc.GetUserTypesByUserID(user.ID); bool isUserTennant = PropertyHelper.isUserOfType(userTypes, EFPConstants.UserType.Tennant); if (!isUserTennant) { PropertyHelper.associateUserWithUserType(unitOfWork, user.ID, EFPConstants.UserType.Tennant); } Tennant tennant = new Tennant() { ID = Guid.NewGuid(), UserID = user.ID, PropertyID = model.PropertyID, RentAmt = property.Price, SettlementPeriod = model.SettlementPeriod, InstitutionName = model.InstitutionName, ProgrammeName = model.ProgrammeName, ProgrammeStartDate = DateTime.ParseExact(model.ProgrammeStartDate, "MM/dd/yyyy", CultureInfo.InvariantCulture), ProgrammeEndDate = DateTime.ParseExact(model.ProgrammeEndDate, "MM/dd/yyyy", CultureInfo.InvariantCulture), PhotoUrl = null, ReferencedLetterURL = null, DateTCreated = DateTime.Now }; user.DOB = DateTime.ParseExact(model.DOB, "MM/dd/yyyy", CultureInfo.InvariantCulture); unitOfWork.Tennant.Add(tennant); } else { throw new Exception("Enrolment key does not match the property being requested"); } } else { throw new Exception("Requistion was not accepted by the property owner"); } }
public JsonResult Enroll(EnrolmentViewModel model) { ErrorModel errorModel = new ErrorModel(); if (ModelState.IsValid) { using (EasyFindPropertiesEntities dbCtx = new EasyFindPropertiesEntities()) { using (var dbCtxTran = dbCtx.Database.BeginTransaction()) { try { if (!model.Password.Equals(model.ConfirmPassword)) { throw new Exception("The fields Password and Confirm Password are not equal"); } var unitOfWork = new UnitOfWork(dbCtx); if (model.ReqID != new Guid()) { EnrollTennantByRequisition(unitOfWork, model); } else { EnrollNewTennant(unitOfWork, model); } unitOfWork.save(); dbCtxTran.Commit(); } catch (Exception ex) { dbCtxTran.UnderlyingTransaction.Rollback(); errorModel.hasErrors = true; errorModel.ErrorMessages = new List <string>(); errorModel.ErrorMessages.Add(ex.Message); } } } } else { var errors = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage); errorModel.hasErrors = true; errorModel.ErrorMessages = new List <string>(); errorModel.ErrorMessages.AddRange(errors); } return(Json(errorModel)); }
public ActionResult Edit(long id) { var enrol = repository.GetRegistration(id); if (enrol == null) { return(Json("Unable to find entry".ToJsonFail())); } var viewmodel = new EnrolmentViewModel(baseviewmodel); viewmodel.enrolment = enrol.ToModel(); return(View(viewmodel)); }
public ActionResult New() { var students = _context.Students.ToList(); var courses = _context.Courses.ToList(); var plans = _context.Plans.ToList(); var newEnrol = new EnrolmentViewModel { Enrolment = new Enrolment(), Students = students, Courses = courses, Plans = plans }; return(View("Form", newEnrol)); }
public ActionResult Edit(int sid, int cid) { var enrolment = _context.Enrolments.SingleOrDefault(s => s.StudentID == sid && s.CourseID == cid); if (enrolment == null) { return(HttpNotFound()); } var newEnrol = new EnrolmentViewModel { Enrolment = enrolment, Students = _context.Students.ToList(), Courses = _context.Courses.ToList(), Plans = _context.Plans.ToList() }; return(View("Form", newEnrol)); }
/// <summary> /// Enrolls a new user tennant and account for the user /// </summary> /// <param name="unitOfWork"></param> /// <param name="model"></param> private void EnrollNewTennant(UnitOfWork unitOfWork, EnrolmentViewModel model) { string enrolKey = unitOfWork.Property.GetEnrolmentKeyByPropID(model.PropertyID); if (enrolKey.Equals(model.EnrolmentKey)) { var user = PropertyHelper.createUser(unitOfWork, EFPConstants.UserType.Tennant, "", model.Email, model.FirstName, model.LastName, model.CellNum, DateTime.Parse(model.DOB)); PropertyHelper.createUserAccount(unitOfWork, EFPConstants.UserType.Tennant, model.Password); var propertyPrice = unitOfWork.Property.Get(model.PropertyID).Price; Tennant tennant = new Tennant() { ID = Guid.NewGuid(), UserID = user.ID, PropertyID = model.PropertyID, RentAmt = propertyPrice, SettlementPeriod = model.SettlementPeriod, InstitutionName = model.InstitutionName, ProgrammeName = model.ProgrammeName, ProgrammeStartDate = DateTime.Parse(model.ProgrammeEndDate), ProgrammeEndDate = DateTime.Parse(model.ProgrammeEndDate), PhotoUrl = null, ReferencedLetterURL = null, DateTCreated = DateTime.Now }; unitOfWork.Tennant.Add(tennant); } else { throw new Exception("Enrolment key does not match the property being requested"); } }
// GET: Classes/Create public ActionResult Create(string staffSearch, string tutorGroup, string yearGroup, string studentSearch, string className, string warning, string student, string staff) { EnrolmentViewModel evm = new EnrolmentViewModel(); evm.Staff = db.Accounts.OfType <Staff>().ToList(); evm.Students = db.Accounts.OfType <Student>().ToList(); ViewBag.className = className; ViewBag.Students = student; ViewBag.Staff = staff; if (!String.IsNullOrEmpty(tutorGroup)) { evm.Students = evm.Students.Where(st => st.Tutor_Group.Equals(tutorGroup)).ToList(); } if (!String.IsNullOrEmpty(yearGroup)) { evm.Students = evm.Students.Where(st => st.Year_Group.Equals(yearGroup)).ToList(); } if (!String.IsNullOrEmpty(studentSearch)) { var search = studentSearch.ToUpper(); evm.Students = evm.Students.Where(st => st.First_Name.ToUpper().Contains(search) || st.Surname.ToUpper().Contains(search)).ToList(); } if (!String.IsNullOrEmpty(staffSearch)) { var search = staffSearch.ToUpper(); evm.Staff = db.Accounts.OfType <Staff>().Where(st => st.First_Name.ToUpper().Contains(search) || st.Surname.ToUpper().Contains(search)).ToList(); } if (!String.IsNullOrEmpty(warning)) { ViewBag.Error = warning; } if (!String.IsNullOrEmpty(staff)) { List <string> staffMembers = staff.Split(',').ToList <string>(); foreach (var name in staffMembers) { var exists = false; var id = Convert.ToInt32(name); foreach (var listedStaff in evm.Staff) { if (listedStaff.User_ID == id) { exists = true; } } if (exists == false) { evm.Staff.Add(db.Accounts.OfType <Staff>().Where(st => st.User_ID.Equals(id)).FirstOrDefault()); } } } if (!String.IsNullOrEmpty(student)) { List <string> studentMembers = student.Split(',').ToList <string>(); foreach (var name in studentMembers) { var exists = false; var id = Convert.ToInt32(name); foreach (var listedStudent in evm.Students) { if (listedStudent.User_ID == id) { exists = true; } } if (exists == false) { evm.Students.Add(db.Accounts.OfType <Student>().Where(st => st.User_ID.Equals(id)).FirstOrDefault()); } } } return(View(evm)); }
// GET: Classes/Edit/5 public ActionResult Edit(int?id, string staffSearch, string tutorGroup, string yearGroup, string studentSearch, string className, string warning, string student, string staff) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Class @class = db.Classes.Find(id); if (@class == null) { return(HttpNotFound()); } EnrolmentViewModel evm = new EnrolmentViewModel(); evm.Staff = db.Accounts.OfType <Staff>().ToList(); evm.Students = db.Accounts.OfType <Student>().ToList(); var classID = Convert.ToInt32(id); evm.Class = db.Classes.Find(classID); if (String.IsNullOrEmpty(className)) { student = ""; staff = ""; foreach (var enrolment in db.Enrolments.Where(e => e.Class_ID.Equals(classID))) { student = student + enrolment.User_ID + ","; } foreach (var classStaff in db.ClassStaffs.Where(cs => cs.Class_ID.Equals(classID))) { staff = staff + classStaff.User_ID + ","; } } else { if (!String.IsNullOrEmpty(tutorGroup)) { evm.Students = evm.Students.Where(st => st.Tutor_Group.Equals(tutorGroup)).ToList(); } if (!String.IsNullOrEmpty(yearGroup)) { evm.Students = evm.Students.Where(st => st.Year_Group.Equals(yearGroup)).ToList(); } if (!String.IsNullOrEmpty(studentSearch)) { var search = studentSearch.ToUpper(); evm.Students = evm.Students.Where(st => st.First_Name.ToUpper().Contains(search) || st.Surname.ToUpper().Contains(search)).ToList(); } if (!String.IsNullOrEmpty(staffSearch)) { var search = staffSearch.ToUpper(); evm.Staff = db.Accounts.OfType <Staff>().Where(st => st.First_Name.ToUpper().Contains(search) || st.Surname.ToUpper().Contains(search)).ToList(); } if (!String.IsNullOrEmpty(staff)) { if (staff.EndsWith(",")) { staff = staff.Remove(staff.Length - 1); } List <string> staffMembers = staff.Split(',').ToList <string>(); foreach (var name in staffMembers) { var exists = false; var sid = Convert.ToInt32(name); foreach (var listedStaff in evm.Staff) { if (listedStaff.User_ID == sid) { exists = true; } } if (exists == false) { evm.Staff.Add(db.Accounts.OfType <Staff>().Where(st => st.User_ID.Equals(sid)).FirstOrDefault()); } } } if (!String.IsNullOrEmpty(student)) { if (student.EndsWith(",")) { student = student.Remove(student.Length - 1); } List <string> studentMembers = student.Split(',').ToList <string>(); foreach (var name in studentMembers) { var exists = false; var sid = Convert.ToInt32(name); foreach (var listedStudent in evm.Students) { if (listedStudent.User_ID == sid) { exists = true; } } if (exists == false) { evm.Students.Add(db.Accounts.OfType <Student>().Where(st => st.User_ID.Equals(sid)).FirstOrDefault()); } } } } ViewBag.Students = student; ViewBag.Staff = staff; return(View(evm)); }