Exemplo n.º 1
0
        public async Task <Respuesta> RegisterUserAsync(string urlBase,
                                                        string servicePrefix,
                                                        string controller,
                                                        RegistrarNuevoUsuarioViewModel nuevoUsuarioPeticion)
        {
            try
            {
                var request = JsonConvert.SerializeObject(nuevoUsuarioPeticion);
                var content = new StringContent(request, Encoding.UTF8, "application/json");
                var client  = new HttpClient
                {
                    BaseAddress = new Uri(urlBase)
                };

                var url      = $"{servicePrefix}{controller}";
                var response = await client.PostAsync(url, content);

                var answer = await response.Content.ReadAsStringAsync();

                var obj = JsonConvert.DeserializeObject <Respuesta>(answer);
                return(obj);
            }
            catch (Exception ex)
            {
                return(new Respuesta
                {
                    EsExitoso = false,
                    Mensaje = ex.Message,
                });
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Register(RegistrarNuevoUsuarioViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var user = await this.usuarioHelper.GetUserByEmailAsync(model.Username);

                if (user == null)
                {
                    user = new Usuarios
                    {
                        Email    = model.Username,
                        UserName = model.Username
                    };

                    var result = await this.usuarioHelper.AddUserAsync(user, model.Password);

                    if (result != IdentityResult.Success)
                    {
                        this.ModelState.AddModelError(string.Empty, "No se pudo creae el usuario.");
                        return(this.View(model));
                    }


                    var loginViewModel = new LoginViewModel
                    {
                        Password   = model.Password,
                        RecordarMe = false,
                        Usuario    = model.Username
                    };

                    var result2 = await this.usuarioHelper.LoginAsync(loginViewModel);

                    if (result2.Succeeded)
                    {
                        return(this.RedirectToAction("Index", "Home"));
                    }

                    this.ModelState.AddModelError(string.Empty, "No se pudo iniciar sesión.");
                    return(this.View(model));
                }

                this.ModelState.AddModelError(string.Empty, "El Usuario ya existe.");
            }

            return(this.View(model));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> PostUsuario([FromBody] RegistrarNuevoUsuarioViewModel peticion)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(this.BadRequest(new Respuesta
                    {
                        EsExitoso = false,
                        Mensaje = "Petición erronea."
                    }));
                }

                var usuario = await this.usuarioHelper.GetUserByEmailAsync(peticion.Username);

                if (usuario != null)
                {
                    return(this.BadRequest(new Respuesta
                    {
                        EsExitoso = false,
                        Mensaje = "Este usuario está registrado."
                    }));
                }

                usuario = new Usuarios
                {
                    Email         = peticion.Username,
                    UserName      = peticion.Username,
                    PhoneNumber   = "",
                    FechaCreaReg  = DateTime.UtcNow,
                    FechaModifReg = DateTime.UtcNow,
                    FechaBajaReg  = null
                };

                var result = await this.usuarioHelper.AddUserAsync(usuario, peticion.Password);

                if (result != IdentityResult.Success)
                {
                    return(this.BadRequest(result.Errors.FirstOrDefault().Description));
                }

                var myToken = await this.usuarioHelper.GenerateEmailConfirmationTokenAsync(usuario);

                var tokenLink = this.Url.Action("ConfirmEmail", "Usuario", new
                {
                    userid = usuario.Id,
                    token  = myToken
                }, protocol: HttpContext.Request.Scheme);

                //var persona = await this.Persona.GetCityAsync(peticion.CityId);


                this.mailHelper.SendMail(peticion.Username, "Email Confirmación RN77", $"<h1>Email  Confirmación RN77</h1>" +
                                         $"Para habilitar el usuario, " +
                                         $"por favor click en este link:</br></br><a href = \"{tokenLink}\">Confirme Email</a>");

                return(Ok(new Respuesta
                {
                    EsExitoso = true,
                    Mensaje = "Un mail de confirmacón a sido enviado. Por favor confirmar su cuenta e ingresar en la aplicación."
                }));
            }
            catch (Exception ee)
            {
                return(this.BadRequest(new Respuesta
                {
                    EsExitoso = false,
                    Mensaje = "Error en la creación del usuario.\r\n" + ee.Message
                }));
            }
        }