public ActionResult Edit(TeacherModel model, FormCollection frm) { if (!_permissionService.Authorize("ManageTeachers")) { return(AccessDeniedView()); } var teacher = _smsService.GetTeacherById(model.Id); if (ModelState.IsValid) { teacher = model.ToEntity(teacher); teacher.ModifiedOn = DateTime.Now; if (teacher.EmployeeId > 0) { teacher.Username = _smsService.GetEmployeeById(teacher.EmployeeId).Username; } _smsService.UpdateTeacher(teacher); // Save URL Record model.SystemName = teacher.ValidateSystemName(model.SystemName, model.Name, true); _urlService.SaveSlug(teacher, model.SystemName); } else { model.AvailableEmployees = _smsService.GetAllEmployees().Where(x => (!_smsService.IsEmployeeAlreadyAssignedToTeacher(x.Id) || (model.EmployeeId > 0 && model.EmployeeId == x.Id))).Select(x => new SelectListItem() { Text = ((x.EmpFName + (!string.IsNullOrEmpty(x.EmpLName) ? (" " + x.EmpLName) : " ")) + ("(" + x.Username + ")")), Value = x.Id.ToString() }).OrderBy(x => x.Text).ToList(); model.AvailableQualifications = _smsService.GetAllQualifications().Select(x => new SelectListItem() { Text = x.Name, Value = x.Id.ToString() }).OrderBy(x => x.Text).ToList(); model.AvailableAcadmicYears = _smsService.GetAllAcadmicYears().Select(x => new SelectListItem() { Text = x.Name.Trim(), Value = x.Id.ToString(), Selected = x.IsActive }).ToList(); model.AvailablePersonalityStatuses = (from PersonalityStatus d in Enum.GetValues(typeof(PersonalityStatus)) select new SelectListItem { Text = EnumExtensions.GetDescriptionByValue <PersonalityStatus>(Convert.ToInt32(d)), Value = Convert.ToInt32(d).ToString(), Selected = (Convert.ToInt32(d) == model.PersonalityStatusId) }).ToList(); return(View(model)); } SuccessNotification("Teacher updated successfully."); return(RedirectToAction("List")); }
public ActionResult Create(TeacherModel model) { if (!_permissionService.Authorize("ManageTeachers")) { return(AccessDeniedView()); } if (ModelState.IsValid) { var teacher = model.ToEntity(); teacher.CreatedOn = teacher.ModifiedOn = DateTime.Now; teacher.UserId = _userContext.CurrentUser.Id; if (teacher.EmployeeId > 0) { teacher.Username = _smsService.GetEmployeeById(teacher.EmployeeId).Username; } _smsService.InsertTeacher(teacher); var employ = _smsService.GetEmployeeById(teacher.EmployeeId); // Add A User var newUser = new User(); newUser.Email = employ.Email; newUser.CreatedOn = newUser.ModifiedOn = DateTime.Now; newUser.IsActive = false; newUser.IsApproved = false; newUser.IsDeleted = false; newUser.Password = CodeHelper.GenerateRandomDigitCode(6); newUser.SeoName = employ.Email; newUser.UserGuid = Guid.NewGuid(); newUser.UserId = _userContext.CurrentUser.Id; newUser.UserName = teacher.Username; newUser.Roles.Add(_roleService.GetRoleByName("Teacher")); _userService.Insert(newUser); teacher.ImpersonateId = newUser.Id; _smsService.UpdateTeacher(teacher); // Save URL Record model.SystemName = teacher.ValidateSystemName(model.SystemName, model.Name, true); _urlService.SaveSlug(teacher, model.SystemName); } else { model.AvailableEmployees = _smsService.GetAllEmployees().Where(x => (!_smsService.IsEmployeeAlreadyAssignedToTeacher(x.Id) || (model.EmployeeId > 0 && model.EmployeeId == x.Id))).Select(x => new SelectListItem() { Text = ((x.EmpFName + (!string.IsNullOrEmpty(x.EmpLName) ? (" " + x.EmpLName) : " ")) + ("(" + x.Username + ")")), Value = x.Id.ToString() }).OrderBy(x => x.Text).ToList(); model.AvailableQualifications = _smsService.GetAllQualifications().Select(x => new SelectListItem() { Text = x.Name, Value = x.Id.ToString() }).OrderBy(x => x.Text).ToList(); model.AvailableAcadmicYears = _smsService.GetAllAcadmicYears().Select(x => new SelectListItem() { Text = x.Name.Trim(), Value = x.Id.ToString(), Selected = x.IsActive }).ToList(); return(View(model)); } SuccessNotification("Teacher created successfully."); return(RedirectToAction("List")); }