Example #1
0
        public async Task <ActionResult> Create(TeacherCreateViewModel model)
        {
            if (model == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.Password != model.PasswordConfirm)
            {
                ModelState.AddModelError("PasswordConfirm", "Пароль и подтверждение пароля не совпадают.");
                return(View(model));
            }

            var teacherAdded = await _teacherService.AddTeacher(model);

            if (!teacherAdded)
            {
                return(View(model));
            }

            return(RedirectToAction("Index"));
        }
Example #2
0
        public async Task <IActionResult> Edit(int?id)
        {
            var model = await _teacherRepository.GetAll()
                        .Include(t => t.OfficeLocation)
                        .Include(t => t.CourseAssignments)
                        .ThenInclude(c => c.Course)
                        .AsNoTracking()
                        .FirstOrDefaultAsync(a => a.Id == id);

            if (model == null)
            {
                ViewBag.ErrorMessage = $"教师信息Id:{id}的信息不存在,请重试!";
                return(View("NotFound"));
            }

            var dto = new TeacherCreateViewModel
            {
                Name           = model.Name,
                HireDate       = model.HireDate,
                Id             = model.Id,
                OfficeLocation = model.OfficeLocation
            };

            dto.AssignedCourses = AssignedCourseDroupDownList(model);
            return(View(dto));
        }
        public async Task <IActionResult> Create(TeacherCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = UploadedFile(model);

                Teacher teacher = new Teacher
                {
                    ID             = model.ID,
                    firstName      = model.firstName,
                    lastName       = model.lastName,
                    degree         = model.degree,
                    academicRank   = model.academicRank,
                    officeNumber   = model.officeNumber,
                    hireDate       = model.hireDate,
                    profilePicture = uniqueFileName,
                };

                _context.Add(teacher);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", new { id = teacher.ID }));
            }
            return(View());
        }
Example #4
0
        private void btnCreate_Click(object sender, EventArgs e)
        {
            bool result  = false;
            var  message = ValidateFunction(ref result);

            if (result)
            {
                var teacherUser = new TeacherCreateViewModel()
                {
                    Address  = txtAddress.Text,
                    Email    = txtEmail.Text,
                    Name     = txtName.Text,
                    Password = txtPassword.Text,
                    Username = txtUsername.Text
                };
                var teacherCreateResult = UserService.CreateTeacherUser(teacherUser);
                if (teacherCreateResult.Status)
                {
                    ResetTextFields();
                    LoadData();
                }
                else
                {
                    MessageBox.Show(teacherCreateResult.Message, "Error!");
                }
            }
            else
            {
                MessageBox.Show(message);
            }
        }
Example #5
0
        public async Task <IActionResult> Create(
            [Bind("Id,FirstName,LastName,Email")] Teacher teacher,
            [Bind("Email,Password,ConfirmPassword")] RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, "Teacher");

                    _context.Add(teacher);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
            }

            TeacherCreateViewModel teacherCreateViewModel = new TeacherCreateViewModel
            {
                LastName  = teacher.LastName,
                FirstName = teacher.FirstName,
                Email     = teacher.Email,
            };

            return(View(teacherCreateViewModel));
        }
Example #6
0
        //
        // GET
        public ActionResult Create()
        {
            var viewModel = new TeacherCreateViewModel {
            };

            return(View("Manage", viewModel));
        }
Example #7
0
        public IActionResult TeacherCreateWithCourse(TeacherCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                Teacher newTeacher = new Teacher()
                {
                    TeacherName = model.TeacherName,
                };

                DbContext.Teachers.Add(newTeacher);
                DbContext.SaveChanges();

                foreach (var selectedCourse in model.SelectedCourse.Where(s => s.isSelect))
                {
                    var teacherCourse = new TeacherCourse()
                    {
                        CourseId  = selectedCourse.CourseId,
                        TeacherId = newTeacher.TeacherId
                    };
                    DbContext.teacherCourses.Add(teacherCourse);
                    DbContext.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
        public async Task <IActionResult> Edit(int?id)
        {
            var model = await _teacherRepository.GetAll().Include(a => a.OfficeLocation)
                        .Include(a => a.CourseAssignments).ThenInclude(a => a.Course)
                        .AsNoTracking().FirstOrDefaultAsync(a => a.Id == id);

            if (model == null)
            {
                ViewBag.ErrorMessage = $"教师信息ID为{id}的信息不存在,请重试。";
                return(View("NotFound"));
            }
            //处理业务的视图模型
            var dto = new TeacherCreateViewModel
            {
                Name           = model.Name,
                Id             = model.Id,
                HireDate       = model.HireDate,
                OfficeLocation = model.OfficeLocation
            };
            //从课程列表中处理哪些课程已经分配哪些为分配
            var assignedCourses = AssignedCourseDroupDownList(model);

            dto.AssignedCourses = assignedCourses;
            return(View(dto));
        }
        public async Task <IActionResult> Edit(TeacherCreateViewModel input)
        {
            if (ModelState.IsValid)
            {
                var teacher = await _teacherRepository.GetAll().Include(i => i.OfficeLocation).Include(i => i.CourseAssignments).ThenInclude(i => i.Course)
                              .FirstOrDefaultAsync(m => m.Id == input.Id);

                if (teacher == null)
                {
                    ViewBag.Title = $"教师信息ID为{input.Id}的信息不存在,请重试";
                    return(View("NotFound"));
                }
                teacher.HireDate          = input.HireDate;
                teacher.Name              = input.Name;
                teacher.OfficeLocation    = input.OfficeLocation;
                teacher.CourseAssignments = new List <CourseAssignment>();
                //从视图中获取选中的课程信息
                var courses = input.AssignedCourses.Where(a => a.IsSelected == true).ToList();
                foreach (var item in courses)
                {
                    teacher.CourseAssignments.Add(new CourseAssignment
                    {
                        CourseID  = item.CourseID,
                        TeacherID = teacher.Id
                    });
                }
                await _teacherRepository.UpdateAsync(teacher);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(input));
        }
        public async Task <IActionResult> Create(TeacherCreateViewModel input)
        {
            if (ModelState.IsValid)
            {
                var teacher = new Teacher
                {
                    HireDate          = input.HireDate,
                    Name              = input.Name,
                    OfficeLocation    = input.OfficeLocation,
                    CourseAssignments = new List <CourseAssignment>()
                };
                var courses = input.AssignedCourses.Where(a => a.IsSelected == true).ToList();
                foreach (var item in courses)
                {
                    teacher.CourseAssignments.Add(new CourseAssignment {
                        CourseID = item.CourseID, TeacherID = teacher.Id
                    });
                }
                await _teacherRepository.InsertAsync(teacher);

                return(RedirectToAction(nameof(Index)));
            }

            return(View(input));
        }
Example #11
0
        public async Task <ActionResult> Create(
            TeacherCreateViewModel viewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    teacherRepository.Add(viewModel.Teacher);
                    await teacherRepository.SaveAsync();

                    foreach (var selectedSubject
                             in viewModel.Subjects.Where(c => c.IsSelected))
                    {
                        var teacherSubject = new TeacherSubject
                        {
                            SubjectId = selectedSubject.Subject.Id,
                            TeacherId = viewModel.Teacher.Id
                        };

                        TeacherSubjectRepository.Add(teacherSubject);
                        await TeacherSubjectRepository.SaveAsync();
                    }
                    return(RedirectToAction("List", new { id = viewModel.SchoolId }));
                }
            }
            catch (DataException /* dex */)
            {
                //Log the error (uncomment dex variable name after DataException and add a line here to write a log.
                ModelState.AddModelError(string.Empty, "Unable to save changes. Try again, and if the problem persists contact your system administrator.");
            }
            return(View(viewModel));
        }
        public async Task <IActionResult> Create(TeacherCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = UploadedFile(model);

                Teacher teacher = new Teacher
                {
                    Id             = model.Id,
                    FirstName      = model.FirstName,
                    LastName       = model.LastName,
                    Degree         = model.Degree,
                    AcademicRank   = model.AcademicRank,
                    OfficeNumber   = model.OfficeNumber,
                    HireDate       = model.HireDate,
                    ProfilePicture = uniqueFileName,
                };

                _context.Add(teacher);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", new { id = teacher.Id }));
            }
            return(View());
        }
Example #13
0
        public ActionResult Create(TeacherCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                // Check if email is already used by other users
                if (db.Users.Any(u => u.Email == model.Email))
                {
                    ModelState.AddModelError("Email", "En användare med den e-post adressen finns redan");
                    return(View("Manage"));
                }

                var user = new ApplicationUser
                {
                    Name     = model.Name,
                    UserName = model.Email,
                    Email    = model.Email
                };

                var userStore   = new UserStore <ApplicationUser>(db);
                var userManager = new UserManager <ApplicationUser>(userStore);
                var result      = userManager.Create(user, model.Password);

                if (result.Succeeded)
                {
                    var existingUser = userManager.FindByName(model.Email);
                    if (!userManager.IsInRole(existingUser.Id, RoleName.teacher))
                    {
                        userManager.AddToRole(existingUser.Id, RoleName.teacher);
                    }


                    var feedbackMessage  = "Läraren har lagts till";
                    var teacherViewModel = new TeacherViewModel(existingUser);
                    addFeedbackToTempData(feedbackMessage, teacherViewModel);

                    return(View("Manage", new TeacherCreateViewModel()));
                }

                var errorsInSwedish = new List <string>();
                foreach (var error in result.Errors)
                {
                    if (error.Substring(0, error.IndexOf(" ")) == "Passwords")
                    {
                        errorsInSwedish.Add("Lösenord måste ha minst en icke bokstav, en siffra, en versal('A' - 'Z') och bestå av minst 6 tecken.");
                    }
                    else
                    {
                        errorsInSwedish.Add(error);
                    }
                }
                // Add swedish error message
                var resultModified = new IdentityResult(errorsInSwedish);
                AddErrors(resultModified);
            }

            // If we got this far, something failed, redisplay form
            return(View("Manage", model));
        }
Example #14
0
        public async Task <IActionResult> Create()
        {
            var schoolId = await this.userService.GetSchoolIdForUser(UserId);

            var subjects = await this.subjectService.GetAll(schoolId);

            var model = new TeacherCreateViewModel
            {
                Subjects = subjects,
            };

            return(View(nameof(Create), model));
        }
Example #15
0
        // Check is Teacher exists using TeacherBuildModel
        public async Task <bool> IsThisTeacherExists(TeacherCreateViewModel model)
        {
            List <TeacherViewModel> allTeachers = await GetAllTeachers();

            foreach (TeacherViewModel teacher in allTeachers)
            {
                if (teacher.TeacherFirstName == model.FirstName && teacher.TeacherLastName == model.LastName && teacher.TeacherFatherName == model.FatherName)
                {
                    return(true);
                }
            }
            return(false);
        }
Example #16
0
        public IActionResult TeacherCreateWithCourse()
        {
            TeacherCreateViewModel model = new TeacherCreateViewModel();

            foreach (var course in DbContext.Courses)
            {
                model.courseList.Add(new SelectListItem
                {
                    Text  = course.CourseName,
                    Value = course.CourseId.ToString()
                });
            }

            return(View(model));
        }
        private string UploadedFile(TeacherCreateViewModel model)
        {
            string uniqueFileName = null;

            if (model.Picture != null)
            {
                string uploadsFolder = Path.Combine(webHostEnvironment.WebRootPath, "images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + Path.GetFileName(model.Picture.FileName);
                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.Picture.CopyTo(fileStream);
                }
            }
            return(uniqueFileName);
        }
Example #18
0
        public async Task <IActionResult> Create(TeacherCreateViewModel model)
        {
            var schoolId = await this.userService.GetSchoolIdForUser(UserId);

            model.SchoolId = schoolId;

            if (!ModelState.IsValid)
            {
                return(View(nameof(Create)));
            }

            var user = await this.userService.Create(model);

            await this.teacherService.UpdateTeacherSubjects(user.Id, model.SubjectIds);

            return(await Index());
        }
Example #19
0
        public ActionResult Create(int?id)
        {
            var viewModel = new TeacherCreateViewModel
            {
                Subjects = subjectRepository.Items
                           .Select(s => new SubjectSelectViewModel
                {
                    Subject    = s,
                    IsSelected = false
                })
                           .ToList(),
                SchoolId = id,
                Schools  = new SelectList(schoolRepository.Items, "Id", "Name", id)
            };

            return(View(viewModel));
        }
Example #20
0
        // Add new Teacher
        public async Task <bool> AddTeacher(TeacherCreateViewModel model)
        {
            var existingUser = await _userManager.FindByEmailAsync(model.Email);

            if (existingUser != null)
            {
                _validatonDictionary.AddError("Email", "Пользователь с таким e-mail уже существует.");
            }

            bool teacherExist = await IsThisTeacherExists(model);

            if (teacherExist)
            {
                _validatonDictionary.AddError("", "Учитель с таким ФИО уже существует.");
            }

            if (_validatonDictionary.IsValid)
            {
                var user = new ApplicationUser
                {
                    Email    = model.Email,
                    UserName = model.Email
                };

                var result = await _userManager.CreateAsync(user, model.Password);

                if (!result.Succeeded)
                {
                    foreach (string errorMessage in result.Errors)
                    {
                        _validatonDictionary.AddError("", errorMessage);
                    }
                    return(false);
                }

                var teacher = Mapper.Map <Teacher>(model);
                teacher.UserId = user.Id;

                _teacherRepository.CreateTeacher(teacher);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #21
0
        public IActionResult Create()
        {
            var allCourses = _courseRepository.GetAllList();
            var viewModel  = new List <AssignedCourseViewModel>();

            foreach (var course in allCourses)
            {
                viewModel.Add(new AssignedCourseViewModel
                {
                    CourseID   = course.CourseID,
                    IsSelected = false,
                    Title      = course.Title
                });
            }
            var dto = new TeacherCreateViewModel();

            dto.AssignedCourses = viewModel;
            return(View(dto));
        }
Example #22
0
        public ActionResult Create()
        {
            var allCourse = _courseRepository.GetAllList();
            var viewModel = new List <AssignedCourseViewModel>();

            foreach (var item in allCourse)
            {
                viewModel.Add(new AssignedCourseViewModel
                {
                    CourseId   = item.CourseId,
                    Title      = item.Title,
                    IsSelected = false
                });
            }
            var dto = new TeacherCreateViewModel();

            dto.AssignedCourses = viewModel;
            return(View(dto));
        }
Example #23
0
        public static TeacherCreateResponseViewModel CreateTeacherUser(TeacherCreateViewModel model)
        {
            var result = new TeacherCreateResponseViewModel();

            try
            {
                //splitting the incoming model into 2 models that reflects the database table
                var user = new User()
                {
                    Id             = Guid.NewGuid(),
                    IsActive       = true,
                    PasswordHashed = model.HashedPassword,
                    UserName       = model.Username,
                    UserType       = Common.UserType.Teacher
                };
                db.Users.Add(user);

                var teacher = new Teacher()
                {
                    Id      = Guid.NewGuid(),
                    Address = model.Address,
                    Email   = model.Email,
                    Name    = model.Name,
                    UserId  = user.Id
                };
                db.Teachers.Add(teacher);

                db.SaveChanges();

                result.Status        = true;
                result.Message       = "Teacher added successfully";
                result.TeacherUserId = user.Id;
                result.StudentId     = teacher.Id;
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }

            return(result);
        }
Example #24
0
        public async Task <IActionResult> Edit(int?id)
        {
            var model = await _teacherRepository.GetAll().Include(a => a.OfficeLocation).Include(a => a.CourseAssignments)
                        .ThenInclude(a => a.Course).AsNoTracking().FirstOrDefaultAsync(a => a.Id == id);

            if (model == null)
            {
                return(TeacherNotFoundError(id));
            }
            var dto = new TeacherCreateViewModel
            {
                Name           = model.Name,
                Id             = model.Id,
                HireDate       = model.HireDate,
                OfficeLocation = model.OfficeLocation
            };
            var assignedCourses = AssignedCourseDropDownList(model);

            dto.AssignedCourses = assignedCourses;
            return(View(dto));
        }
Example #25
0
        public async Task <IActionResult> Create(TeacherCreateViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user = new Person()
                {
                    UserName    = vm.Username,
                    Name        = vm.Name,
                    Email       = vm.Name,
                    PhoneNumber = vm.Sdt,
                };
                var result = await _userManager.CreateAsync(user, vm.Password);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(user, SD.Teacher);

                    var s = await _userManager.FindByNameAsync(user.UserName);

                    var teacher = new Models.Teacher()
                    {
                        PersonId = s.Id, FacultyId = vm.FaculityId
                    };
                    _db.Teachers.Add(teacher);
                    _db.SaveChanges();
                    return(RedirectToAction("index", "Teacher", new { area = "admin" }));
                }
                else
                {
                    foreach (var er in result.Errors)
                    {
                        ModelState.AddModelError("", er.Description);
                    }
                }
            }
            ViewBag.ListFaculty = new SelectList(_db.Faculties.ToList(), "Id", "Name");
            return(View(vm));
        }