public async Task <IActionResult> TeacherRegister(CreateTeacherViewModel model)
        {
            var user = _userManager.FindByIdAsync(model.P_Id).Result;
            var role = _roleManager.FindByNameAsync("Teacher").Result;

            Teacher Teacher = new Teacher()
            {
                ApplicationUserId = model.P_Id,
                Grade             = model.teacherGrade,
                OwnClass          = model.ClassRoomId,
                Phone             = model.TpNumber
            };

            var localSuccess = await SaveToDatabase(Teacher);

            model.Email   = user.Email;
            model.Name    = user.Name;
            model.Role_Id = role.Id;

            var success = await PostOnApi("TeacherDetails", model);

            if (success && localSuccess)
            {
                ViewBag.Message = "You have successfully registered a teacher";
            }

            return(RedirectToAction("Register", "Account"));
        }
        // Add, Edit, and Delete Teacher methods
        public void AddTeacher(CreateTeacherViewModel vm)
        {
            var teacher = vm.ToTeacher();

            context.Teachers.Add(teacher);
            Save();
        }
 public ActionResult Create([Bind(Include = "TeacherID, TeacherName")] CreateTeacherViewModel vm)
 {
     if (ModelState.IsValid)
     {
         repo.AddTeacher(vm);
         return(RedirectToAction("Index"));
     }
     return(View(vm));
 }
        public async Task <ActionResult> CreateTeacher([FromBody] CreateTeacherViewModel model)
        {
            if (ModelState.IsValid)
            {
                // creating the school
                var school = new School(model.SchoolName, GetRandomString(6));
                _schoolRepository.Add(school);
                await _schoolRepository.SaveChanges();

                // creating teacher consisting of his school
                var user = _authenticationManager.CreateApplicationUserObject(model.Email, model.Username,
                                                                              model.Password);
                user.School = await _schoolRepository.GetByName(model.SchoolName);

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

                if (result.Succeeded)
                {
                    user = _userManager.Users.SingleOrDefault(u => u.Id == user.Id);
                    if (user.School == null)
                    {
                        return(Ok(
                                   new
                        {
                            Message = "Something went wrong when creating your account."
                        }));
                    }
                    await _userManager.AddToRoleAsync(user, "Teacher");


                    var claim = await CreateClaims(user);

                    //Todo kunnen van CreateClaims in List werken idpv array zodat men niet hoeft de array naar list om te zetten
                    // en in addschoolclaim hoeft men dan geen returnwaarde te geven (want het Adden vd claim is op reference van de lijst)
                    claim = _authenticationManager.AddClaim(claim.ToList(), "school", school.Id.ToString()).ToArray();

                    var token = GetToken(claim);

                    return(Ok(
                               new
                    {
//                            Username = user.UserName,
//                            Token = GetToken(claim)
                        token = new JwtSecurityTokenHandler().WriteToken(token),
                        expiration = token.ValidTo
                    }));
                }
            }

            return(Ok(
                       new
            {
                Message = "Error please make sure your details are correct"
            }));
        }
예제 #5
0
 public ActionResult Edit(CreateTeacherViewModel teacherViewModel)
 {
     if (ModelState.IsValid)
     {
         var subject = db.Subjects.Find(teacherViewModel.SubjectId);
         var teacher = db.Teachers.FirstOrDefault(x => x.Id == teacherViewModel.Id);
         teacher.Name = teacherViewModel.Name; teacher.Subject = subject;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(teacherViewModel));
 }
        public async Task <IActionResult> Create(CreateTeacherViewModel model)
        {
            Teacher teacher = _mapper.Map <CreateTeacherViewModel, Teacher>(model);

            teacher.ID = Guid.NewGuid().ToString();

            await _unitOfWork.Teachers.AddAsync(teacher);

            await _unitOfWork.CompletedAsync();

            return(RedirectToAction(nameof(Index)));
        }
예제 #7
0
        // GET: Teachers/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var teacher = db.Teachers.Find(id);

            if (teacher == null)
            {
                return(HttpNotFound());
            }
            var model = new CreateTeacherViewModel();

            ViewBag.Subjects = db.Subjects.ToList();
            return(View(model));
        }
예제 #8
0
        public ActionResult Create(CreateTeacherViewModel createTeacherViewModel)
        {
            if (ModelState.IsValid)
            {
                var subject = db.Subjects.Find(createTeacherViewModel.SubjectId);
                var teacher = new Teacher()
                {
                    Name    = createTeacherViewModel.Name,
                    Subject = subject
                };

                db.Teachers.Add(teacher);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(createTeacherViewModel));
        }
예제 #9
0
 public IActionResult CreateTeacher(CreateTeacherViewModel createTeacher)
 {
     using (HttpClient client = new HttpClient())
     {
         Teacher teacher = new Teacher()
         {
             Name  = createTeacher.Name,
             Email = createTeacher.Email
         };
         var data    = JsonConvert.SerializeObject(teacher);
         var content = new StringContent(data, Encoding.UTF8, "application/json");
         var resp    = client.PostAsync("http://localhost:56825/api/teacher/CreateTeacher", content).Result;
         if (resp.IsSuccessStatusCode)
         {
             return(RedirectToAction("Index", "Home"));
         }
     }
     return(View());
 }
예제 #10
0
        public async Task <IActionResult> CreateUser([Bind("Email,Password,Login,FirstName,MiddleName,LastName,DegreeId,PostId,Roles")] CreateTeacherViewModel teacher)
        {
            if (ModelState.IsValid)
            {
                var userModel = new TeacherProfile()
                {
                    FirstName  = teacher.FirstName,
                    LastName   = teacher.LastName,
                    MiddleName = teacher.MiddleName,
                    DegreeId   = teacher.DegreeId,
                    PostId     = teacher.PostId,
                    Email      = teacher.Email,
                    UserName   = teacher.Login
                };
                var result = await _userManager.CreateAsync(userModel, teacher.Password);

                if (result.Succeeded)
                {
                    if (teacher.Roles.Contains("admin"))
                    {
                        await _userManager.AddToRoleAsync(userModel, "admin");
                    }
                    if (teacher.Roles.Contains("teacher"))
                    {
                        await _userManager.AddToRoleAsync(userModel, "teacher");
                    }
                    await _userManager.AddToRoleAsync(userModel, "user");

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
                }
            }
            ViewData["DegreeId"] = new SelectList(_context.Degrees, "Id", "Name", teacher.DegreeId);
            ViewData["PostId"]   = new SelectList(_context.Posts, "Id", "Name", teacher.PostId);
            return(View(teacher));
        }
예제 #11
0
        public void CreateTeacherShouldSaveTheTeacher()
        {
            //ARRANGE
            const string userName = "******";
            const string password = "******";
            var          model    = new CreateTeacherViewModel {
                UserName = userName, Password = password
            };

            var userLogic = new Mock <IUserLogic>();

            userLogic
            .Setup(x => x.CreateUser(It.IsAny <User>()))
            .Returns(true)
            .Verifiable("Should store user");


            userLogic
            .Setup(x => x.ResetPassword(It.IsAny <string>(), password))
            .Returns(true)
            .Verifiable("Should set the teachers password");

            userLogic
            .Setup(x => x.AddToRole(It.IsAny <string>(), "Teacher"))
            .Verifiable("Should add to role.");

            var controller = new TeacherController(userLogic.Object, null, null, null, null, null, null);

            //ACT
            var result = controller.Create(model) as RedirectToRouteResult;

            //ASSERT
            userLogic.Verify();

            Assert.NotNull(result);
            Assert.AreEqual("Manage", result.RouteValues["Action"]);
        }
        // Teacher ViewModels
        public CreateTeacherViewModel GetCreateTeacherViewModel()
        {
            var vm = new CreateTeacherViewModel();

            return(vm);
        }