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")); }
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()); }
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); } }
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)); }
// // GET public ActionResult Create() { var viewModel = new TeacherCreateViewModel { }; return(View("Manage", viewModel)); }
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)); }
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()); }
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)); }
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)); }
// 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); }
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); }
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()); }
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)); }
// 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); } }
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)); }
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)); }
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); }
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)); }
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)); }