public async Task<IActionResult> RegisterUserAsync([FromBody] NewUserRequest request) { if (!ModelState.IsValid) { return BadRequest(new Resp<object>{ IsSuccess = false, Message = MessageErrorHelper.showModelStateError(ModelState) }); } var user = await _userHelper.GetUserByEmailAsync(request.Correo); if (user != null) { return BadRequest(new Resp<object> { IsSuccess = false, Message = MessageCenter.appTextEmailUsed }); } var newUser = new UsuarioViewModel { Correo = request.Correo , CellPhone = request.CellPhone , FirstName = request.FirstName , LastName = request.LastName , RoleId = request.RoleId , Rol = _combosHelper.GetComboRolesByValue(request.RoleId.ToString()) , Password = request.Password , PasswordConfirm = request.PasswordConfirm }; var addUserResult = await _userHelper.AddUsuario(newUser); if (addUserResult != IdentityResult.Success) { return BadRequest(new Resp<object> { IsSuccess = false, Message = MessageErrorHelper.showIdentityResultError(addUserResult) }); } var userLogin = await _userHelper.GetUserByEmailAsync(request.Correo); var myToken = await _userHelper.GenerateEmailConfirmationTokenAsync(userLogin); var tokenLink = Url.Action("ConfirmEmail", "Account", new { userid = userLogin.Id, token = myToken }, protocol: HttpContext.Request.Scheme); _mailHelper.SendEmailAccountConfirmation(request.Correo, tokenLink); return Ok(new Resp<object>{ IsSuccess = true, Message = MessageCenter.commonMessageEmailInst }); }
/*[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]*/ public async Task<IActionResult> GetUserByEmailAsync([FromBody]EmailRequest request) { if (!ModelState.IsValid) { return BadRequest(MessageErrorHelper.showModelStateError(ModelState)); } var usuario = await _dataContext.Usuarios.Include(c => c.UserLogin) .Include(c => c.Automotores) .Include(c => c.Tramites).ThenInclude(a => a.Adjuntos) .Include(c => c.Tramites).ThenInclude(t => t.TipoTramite) .Include(c => c.Tramites).ThenInclude(s => s.Status) .Include(c => c.Tramites).ThenInclude(b => b.Automotor) .Include(c => c.DatosFiscales) .FirstOrDefaultAsync(u => u.UserLogin.NormalizedEmail == request.Email.ToUpper()); if ( usuario == null ) { return NotFound(request); } IList<string> roles = await _userHelper.GetRolesByUserAsync(usuario?.UserLogin); return Ok(ToUsuarioResponse( usuario , roles.FirstOrDefault().ToString() , _combosHelper.GetTipoTramites() , await _dataContext.Requisitos.Include(r => r.TipoTramite).ToListAsync() , await _dataContext.FormasDePago.ToListAsync() ) ); }//GetUsuarioByEmail
/*[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]*/ public async Task<IActionResult> GetFondosInversionByFilter([FromBody]FilterFondoInversion request) { if ( !ModelState.IsValid ) { return BadRequest(MessageErrorHelper.showModelStateError(ModelState)); } var personaFisica = true; var personaMoral = true; var personaMoralNoContri = false; var sociedadesDeInversion = false; var montoMin = 10000000; ICollection<FondosInversionMontosMinimos> fondos = await _dataContext.FondosInversionMontosMinimos.Include(fi => fi.Precios).Where(fi => (fi.Activo == MessageCenter.FONDO_ACTIVO) && (fi.MontoMinimo >= montoMin)).ToListAsync(); fondos = personaFisica == true ? fondos.Where(fi => fi.PersonaFisica == true).ToList() : fondos; fondos = personaMoral == true ? fondos.Where(fi => fi.PersonaMoral == true).ToList() : fondos; fondos = personaMoralNoContri == true ? fondos.Where(fi => fi.PersonaMoralNoContribuyente == true).ToList() : fondos; fondos = sociedadesDeInversion == true ? fondos.Where(fi => fi.SociedadesDeInversion == true).ToList() : fondos; return Ok(); }//GetFondosInversionByFilter
public async Task<IActionResult> Register(UsuarioViewModel viewModel) { if (ModelState.IsValid) { var rol = _combosHelper.GetComboRoles().Where(r => r.Value == viewModel.RoleId.ToString()).Select(r => r.Text); viewModel.Rol = rol.FirstOrDefault().ToString(); var addUserResult = await _userHelper.AddUsuario(viewModel); if (addUserResult == IdentityResult.Success) { var userLogin = await _userHelper.GetUserByEmailAsync(viewModel.Correo); await _dataContext.Usuarios.AddAsync(new Usuario { DatosFiscales = null, FirstName = viewModel.FirstName, LastName= viewModel.LastName, UserLogin = userLogin }); await _dataContext.SaveChangesAsync(); //ToDo: implementar el guardado en sesión del TOKEN /*TokenResponse token = _userHelper.BuildToken(new LoginTARequest { Email = view.Correo, Password = view.Password, RememberMe = false }); var result = await _userHelper.LoginAsync(new LoginTARequest { Email =view.Correo, Password = view.Password, RememberMe= false }); if (result.Succeeded) { return RedirectToAction("Index", "Home"); } */ var defaultToken = await _userHelper.GenerateEmailConfirmationTokenAsync(userLogin); var tokenLink = Url.Action("ConfirmEmail", "Account", new { userid = userLogin.Id, token = defaultToken } , protocol: HttpContext.Request.Scheme); _mailHelper.SendEmailAccountConfirmation(viewModel.Correo, tokenLink); ViewBag.Message = MessageCenter.commonMessageEmailInst; return View(viewModel); } ModelState.AddModelError(string.Empty, MessageErrorHelper.showIdentityResultError(addUserResult) ); viewModel.Rol = rol.FirstOrDefault().ToString(); return View(viewModel); } return View(viewModel); }