public IActionResult Disciplinas([Bind("DisciplinaId,Nome,Ano,ProfessorId")] Disciplina disciplina, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { _context.Disciplina.Add(disciplina); _context.SaveChanges(); return(View()); } return(View()); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (string.IsNullOrEmpty(Input.TipoUtilizador)) { ModelState.AddModelError("TipoUtilizador", "Tipo de Utilizador invalido"); return(Page()); } if (ModelState.IsValid) { var user = new ApplicationUser { UserName = Input.Username, Email = Input.Email, EmailConfirmed = true }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("Criado novo utilizador"); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirme o seu email", $"Por favor confirme a sua conta ao clicar <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>aqui</a>."); switch (Input.TipoUtilizador.ToString()) { case "Estudante": _context.Estudante.Add(new Estudante() { Nome = Input.Username, Email = Input.Email }); await _userManager.AddToRoleAsync(user, "Estudante"); _context.SaveChanges(); break; case "Professor": _context.Professor.Add(new Professor() { Nome = Input.Username, Email = Input.Email }); await _userManager.AddToRoleAsync(user, "Professor"); _context.SaveChanges(); break; } // Faz login no novo user //await _signInManager.SignInAsync(user, isPersistent: false); return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }