Пример #1
0
        public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };

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

                if (result.Succeeded)
                {
                    if (model.Student)
                    {
                        var student = new StudentViewModel
                        {
                            Id    = Guid.Parse(user.Id),
                            Name  = model.Name,
                            Email = user.Email
                        };
                        _studentAppService.Add(student);
                    }
                    if (model.Teacher)
                    {
                        await _userManager.AddClaimAsync(user, new Claim("Courses", "Read"));

                        await _userManager.AddClaimAsync(user, new Claim("Courses", "Write"));

                        var teacher = new TeacherViewModel
                        {
                            Id    = Guid.Parse(user.Id),
                            Name  = model.Name,
                            Email = user.Email
                        };
                        _teacherAppService.Add(teacher);
                    }



                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                    await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);

                    await _signInManager.SignInAsync(user, isPersistent : false);

                    _logger.LogInformation("User created a new account with password.");
                    return(RedirectToLocal(returnUrl));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Пример #2
0
        public IActionResult Create(TeacherViewModel teacherViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(teacherViewModel));
            }
            _teacherAppService.Add(teacherViewModel);

            ViewBag.SuccessCreated = GetMessageCreate(teacherViewModel);
            return(View(teacherViewModel));
        }
        public ActionResult Create(TeacherViewModel teacher)
        {
            if (ModelState.IsValid)
            {
                var teacherDomain = Mapper.Map <TeacherViewModel, Teacher>(teacher);
                _teacherApp.Add(teacherDomain);

                return(RedirectToAction("Index"));
            }
            return(View(teacher));
        }