Beispiel #1
0
        public async Task <IActionResult> TeacherRegister(RegisterTeacherViewModel registerUserViewModel)
        {
            registerUserViewModel.DeparmentItems = populateDepartments();
            registerUserViewModel.PositionItems  = populatePositions();

            if (_databaseWorker.DepartmentExists(registerUserViewModel.DepartmentId) && _databaseWorker.PositionExists(registerUserViewModel.PositionId))
            {
                if (ModelState.IsValid)
                {
                    IdentityResult result = await _authentication.CreateUserAsync(registerUserViewModel);


                    if (result.Succeeded)
                    {
                        User user = await _authentication.FindUserByEmailAsync(registerUserViewModel.Email);

                        if (!await _authentication.CreateTeacherUserAsync(user.Id, registerUserViewModel.DepartmentId, registerUserViewModel.PositionId))
                        {
                            await _authentication.DeleteUserAsync(user);

                            return(View(registerUserViewModel));
                        }

                        // установка куки
                        await _authentication.SignInAsync(user);

                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        foreach (var error in result.Errors)
                        {
                            ModelState.AddModelError(string.Empty, error.Description);
                        }
                    }
                }
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Choosen Department or Position does not exists!");
            }


            return(View(registerUserViewModel));
        }
Beispiel #2
0
        public async Task <IActionResult> CreateTeacher(RegisterTeacherViewModel registerUserViewModel)
        {
            registerUserViewModel.DeparmentItems = PopulateDepartments();
            registerUserViewModel.PositionItems  = PopulatePositions();

            if (_databaseWorker.DepartmentExists(registerUserViewModel.DepartmentId) && _databaseWorker.PositionExists(registerUserViewModel.PositionId))
            {
                if (ModelState.IsValid)
                {
                    IdentityResult result = await _authentication.CreateUserAsync(registerUserViewModel);


                    if (result.Succeeded)
                    {
                        User user = await _authentication.FindUserByEmailAsync(registerUserViewModel.Email);

                        if (!await _authentication.CreateTeacherUserAsync(user.Id, registerUserViewModel.DepartmentId, registerUserViewModel.PositionId))
                        {
                            await _authentication.DeleteUserAsync(user);

                            return(View("CreateTeacher", registerUserViewModel));
                        }

                        return(RedirectToAction("Users"));
                    }
                    else
                    {
                        foreach (var error in result.Errors)
                        {
                            ModelState.AddModelError(string.Empty, error.Description);
                        }
                    }
                }
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Выбирете кафедру для преподователя");
            }

            return(View("CreateTeacher", registerUserViewModel));
        }