public ActionResult Registrarse(RegistroUsuarioViewModel model, bool captchaValid)
        {
            if (!ModelState.IsValid)
            {
                if (!captchaValid)
                {
                    ModelState.AddModelError("", "Favor validar que no eres un robot.");
                }
                return(View(model));
            }

            try
            {
                var perfil = perfilseg.GetPerfilbyId(1);

                var ValidPassword = CheckPassword(model.Password, perfil.LenMinPass, perfil.CantLetrasMin, perfil.CantLetrasMayMin, perfil.CantNumeroMin, perfil.CantCharEspecialMin);

                if (!ValidPassword.IsValid)
                {
                    foreach (var item in ValidPassword.Mensajes)
                    {
                        ModelState.AddModelError("", item);
                    }
                    return(View(model));
                }

                var respuesta = userlogic.RegistrarUsuario(new Entidades.Usuarios {
                    Email = model.Email, Password = util.encriptar(model.Password)
                });
                if (respuesta.response)
                {
                    return(RedirectToAction("Login"));
                }
                ModelState.AddModelError("", respuesta.mensaje);
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
            }
            return(View(model));
        }
        public HttpResponseMessage RegistrarUsuario(RegistroUsuarioModelRequest request)
        {
            RespondModel respondModel = new RespondModel();

            ResponseMsj responseMsj = new ResponseMsj();

            if (!ModelState.IsValid)
            {
                //var ErrorList = ModelState.Keys
                //.SelectMany(key => ModelState[key].Errors.Select(x => new { Error = key + " " + x.ErrorMessage })
                //.ToList());

                var ErrorList = ModelState.Keys
                                .SelectMany(key => ModelState[key].Errors.Select(x => new { Error = x.ErrorMessage })
                                            .ToList());

                respondModel.SetResponse(false, string.Join("\n", ErrorList.Select(x => x.Error).ToList()));

                return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.BadRequest));
            }
            else
            {
                var perfil = perfilseg.GetPerfilbyId(1);

                var ValidPassword = CheckPassword(request.Password, perfil.LenMinPass, perfil.CantLetrasMin, perfil.CantLetrasMayMin, perfil.CantNumeroMin, perfil.CantCharEspecialMin);



                if (!ValidPassword.IsValid)
                {
                    respondModel.SetResponse(false, string.Join("\n", ValidPassword.Mensajes));

                    return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.BadRequest));
                }

                respondModel = userlogic.RegistrarUsuario(new Entidades.Usuarios {
                    Email = request.Email, Password = util.encriptar(request.Password)
                });

                if (!respondModel.response)
                {
                    return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.BadRequest));
                }

                /*Creando codigo de validacion*/

                var Usuario = userlogic.GetUsuariosPorUserName(request.Email);

                var codigoValidacion = codigoValidacionUsuarioLogic.GenerarCodigoValidacionEmailUsuario(Usuario.Id, util.GetKey, util.GetIV);

                if (codigoValidacion == string.Empty)
                {
                    respondModel.SetResponse(false, "Error al generar Pin de Validación");
                    return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.BadRequest));
                }

                //string MessageBody = System.IO.File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath("~\\Content\\index.htm")) ;
                string MessageBody = System.IO.File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath("~\\Content\\email.html"));
                MessageBody = MessageBody.Replace("**To**", Usuario.Email);
                MessageBody = MessageBody.Replace("**Codigo**", codigoValidacion);
                MessageBody = MessageBody.Replace("**Anio**", DateTime.Now.Year.ToString());

                //mailer.SendMail(Usuario.Email, "Confirmación de usuario", MessageBody);
                //mailer.SendMail(Usuario.Email, "Confirmación de usuario", MessageBody);
                mailer.SendMail(Usuario.Email, "Confirmación de usuario", MessageBody);
                //mailer.EnviarCorreoGmailAccesTokenAsync("*****@*****.**", "NJIFYUjss1OwfQNFXvWSWr6l", Usuario.Email,"Codigo de Activación de Cuenta", codigoValidacion);

                return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.OK));
            }
        }