Example #1
0
        public ActionResult Registo(FormCollection Dados)
        {
            if (DB.Utilizadors.Where(x => x.email == HttpContext.User.Identity.Name).Count() > 0)
            {
                return(RedirectToAction("ProvasRealizadas", "Teste"));
            }
            if (Dados["UserName"] == null || Dados["UserName"] == "")
            {
                ModelState.AddModelError("UserName", "Tem de introduzir um Username!");
            }

            if (Dados["NomeCompleto"] == null || Dados["NomeCompleto"] == "")
            {
                ModelState.AddModelError("NomeCompleto", "Tem de introduzir um Nome!");
            }

            if (Dados["Email"] == null || Dados["Email"] == "")
            {
                ModelState.AddModelError("Email", "Tem de introduzir um Email!");
            }

            if (Dados["Password1"] == null || Dados["Password1"] == "")
            {
                ModelState.AddModelError("Password1", "Tem de introduzir uma Password!");
            }

            if (Dados["Password2"] == null || Dados["Password2"] == "" || Dados["Password2"] != Dados["Password1"])
            {
                ModelState.AddModelError("Password2", "Tem de introduzir novamente a Password!");
            }

            if (Dados["Telefone"] == null || Dados["Telefone"] == "")
            {
                ModelState.AddModelError("Telefone", "Tem de introduzir um Telefone!");
            }

            try
            {
                if (Convert.ToDateTime(Dados["datadenascimento"]) > DateTime.Now)
                {
                    ModelState.AddModelError("datadenascimento", "A data tem de ser inferior à data atual.");
                }
            }
            catch
            {
                ModelState.AddModelError("datadenascimento", "Tem de inserir uma Data.");
            }

            if (Dados["Telefone"] == null || Dados["Telefone"] == "")
            {
                ModelState.AddModelError("Localidade", "Tem de introduzir uma Localidade!");
            }

            if (Dados["Telefone"] == null || Dados["Telefone"] == "")
            {
                ModelState.AddModelError("Morada", "Tem de introduzir uma Morada!");
            }

            if (Dados["Telefone"] == null || Dados["Telefone"] == "")
            {
                ModelState.AddModelError("CodPostal", "Tem de introduzir um Código Postal!");
            }

            if (Dados["CheckBoxConcordar"] == null)
            {
                ModelState.AddModelError("CheckBoxConcordar", "Tem de concordar com os termos!");
            }

            if (ModelState.IsValid)
            {
                //Criar Novo Registo
                Utilizador NovoUser = new Utilizador();

                NovoUser.username       = Dados["UserName"];
                NovoUser.nome           = Dados["NomeCompleto"];
                NovoUser.email          = Dados["Email"];
                NovoUser.palavra_chave  = Funcionalidades.CalculateMD5Hash(Dados["password1"] + "IPC");
                NovoUser.tefelone       = Dados["Telefone"];
                NovoUser.dataNascimento = Convert.ToDateTime(Dados["datadenascimento"]);
                NovoUser.morada         = Dados["Morada"];
                NovoUser.localidade     = Dados["Localidade"];
                NovoUser.codigoPostal   = Dados["CodPostal"];
                NovoUser.RoleName       = "Utilizador";
                NovoUser.token          = Funcionalidades.GenerateToken();
                NovoUser.isActive       = true;
                NovoUser.dataCriacao    = DateTime.Now;

                DB.Utilizadors.InsertOnSubmit(NovoUser);
                DB.SubmitChanges();

                Funcionalidades.SendEmail(Dados["Email"], NovoUser.username + " REGISTO EM PHOSYS", "Pode ativar a sua conta com a chave: " + NovoUser.token);

                return(RedirectToAction("AtivarConta"));
            }
            else
            {
                TempData["MsgError_CriarConta"] = "Erro ao criar um novo registo, verifique os dados!";
                return(View());
            }
        }