public ActionResult Register() { var model = new UtilizadoresRegistados { RegisterViewModel = new RegisterViewModel(), Utilizador = new Utilizador() }; model.Utilizador.Email = "teste"; model.Utilizador.UserName = "******"; List <SelectListItem> list = new List <SelectListItem>(); foreach (var role in RoleManager.Roles) { list.Add(new SelectListItem() { Value = role.Name, Text = role.Name }); } ViewBag.Roles = list; return(View(model)); }
public async Task <ActionResult> Register(UtilizadoresRegistados model, HttpPostedFileBase uploadImagem) { if (ModelState.IsValid) { int idNovoUtilizador = 0; try { idNovoUtilizador = db.Utilizador.Max(a => a.Id) + 1; } catch (Exception) { idNovoUtilizador = 1; } model.Utilizador.Id = idNovoUtilizador; string nomeImagem = "Jogo_" + idNovoUtilizador + ".jpg"; string path = ""; if (uploadImagem != null) { path = Path.Combine(Server.MapPath("~/imagens/"), nomeImagem); //uploadImagem.SaveAs(HttpContext.Server.MapPath("~/Imagens/") + uploadImagem.FileName); //jogo.Capa = uploadImagem.FileName; model.Utilizador.Foto = nomeImagem; // escrever o ficheiro com a fotografia no disco rígido, na pasta 'imagens' uploadImagem.SaveAs(path); } var user = new ApplicationUser { UserName = model.RegisterViewModel.Email, Email = model.RegisterViewModel.Email }; var result = await UserManager.CreateAsync(user, model.RegisterViewModel.Password); if (result.Succeeded) { try { /// se houve sucesso com a criação de um utilizador /// tenho de guardar os dados do utilizador que se registou //Utilizador utilizador = new Utilizador(); //utilizador = model.Utilizador; // associar estes dados com o utilizador q se registou //utilizador.UserName = user.UserName; // guardar os dados na base de dados //ApplicationDbContext db = new ApplicationDbContext(); model.Utilizador.UserName = user.UserName; model.Utilizador.Email = user.Email; db.Utilizador.Add(model.Utilizador); db.SaveChanges(); } catch (Exception ex) { /// eventualmente, apagar o utilizador que se acabou de registar /// eventualmente, registar numa tabela da BD o erro /// - o nome do controller /// - o nome do método /// - a data /// - a hora /// - a mensagem de erro (ex.message) /// - outros dados considerados relevantes /// eventualmente, enviar email ao Gestor do Sistema com o relato da ocorrência /// eventualmente, reenviar à view para reescrever os dados } result = await UserManager.AddToRoleAsync(user.Id, "Utilizador"); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }