Beispiel #1
0
        public ActionResult Registrar(string nombre, string apellido, int dni, string password, string passwordRepetir,
                                      int telefono, string email, DateTime fechaNacimiento,
                                      bool sexo, string provincia, string localidad, string domicilio, int codigoPostal)
        {
            var bll = new dtoUsuario();

            if (password == passwordRepetir)
            {
                var existe = bll.BuscarUsuario(email);
                if (existe != null)
                {
                    ModelState.AddModelError("email", "*El e-mail ingresado corresponde a un usuario ya registrado.");

                    var provincias = LlenarComboProvincias();

                    return(View("Login", provincias));
                }

                var dtoRol     = new dtoRoles();
                var rolCliente = dtoRol.BuscarRolCliente();

                UsuarioViewModels usuarioVM = new UsuarioViewModels()
                {
                    Nombre          = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(nombre),
                    Apellido        = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(apellido),
                    DNI             = dni,
                    Password        = password,
                    Telefono        = telefono,
                    Email           = email,
                    FechaNacimiento = fechaNacimiento,
                    Sexo            = sexo
                };

                usuarioVM.Direccion = new List <DireccionViewModels>();

                DireccionViewModels direccionVM = new DireccionViewModels()
                {
                    CodigoPostal = codigoPostal.ToString(),
                    Domicilio    = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(domicilio),
                    Localidad    = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(localidad),
                    Provincia    = provincia
                };

                usuarioVM.Direccion.Add(direccionVM);


                ViewBag.Password = password;

                //ENCRIPTAR PASSWORD
                var keyNew    = EncriptadorPassword.GeneratePassword(5);
                var npassword = EncriptadorPassword.EncodePassword(password, keyNew);

                usuarioVM.Password     = npassword;
                usuarioVM.PasswordHash = keyNew;

                App_Start.AutoMapperWebConfiguration.Configure();
                var DTO = Mapper.Map <UsuarioViewModels, dtoUsuario>(usuarioVM);

                DTO.IdRol = rolCliente.IdRol;

                try
                {
                    UAIBay.Servicios.CorreoElectronico.Bienvenida(usuarioVM.Email, (usuarioVM.Nombre + " " + usuarioVM.Apellido));

                    bll.Crear(DTO);

                    return(RedirectToAction("Ingresar", "Account", new { user = email, pw = ViewBag.Password }));
                }
                catch (Exception)
                {
                    bll.Crear(DTO);

                    return(RedirectToAction("Ingresar", "Account", new { user = email, pw = ViewBag.Password }));
                }
                //}
            }

            ModelState.AddModelError("contraseña", "*Las contraseñas ingresadas no coinciden.");

            var prov = LlenarComboProvincias();

            return(View("Login", prov));
        }