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, }); } }
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)); }
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 })); } }