Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        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"));
        }