Example #1
0
        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));
        }
Example #2
0
        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));
        }