예제 #1
0
        public async Task <IActionResult> SendMail()
        {
            try
            {
                var urlAPI = @"http://*****:*****@javeriana.edu.co", "Prueba", "Por fin!", atts);

                return(Ok("Mensaje Enviado"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Error", ex.Message);
                return(BadRequest(ModelState));
            }
        }
예제 #2
0
        public async Task <IActionResult> AddUsuario([FromBody] Usuario usuario)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            usuario.NombreSuscripcion = usuario.Nombre.ToLower()
                                        .Replace(" ", "_")
                                        .Replace("á", "a")
                                        .Replace("é", "e")
                                        .Replace("í", "i")
                                        .Replace("ó", "o")
                                        .Replace("ú", "u")
                                        .Replace("ñ", "n");

            usuario.Activo = false;
            _context.Usuario.Add(usuario);

            try
            {
                await _context.SaveChangesAsync().ConfigureAwait(false);


                var user = new UserInfo(usuario);
                Services.SecurityServices.IUserService userService =
                    new Services.SecurityServices.UserService(_configuration, _context);

                if (await userService.AutenticateAndGenerateNewTokenAsync(user).ConfigureAwait(false))
                {
                    usuario.TokenMedio = user.Token;
                    _context.TokenUser.Add(new TokenUser()
                    {
                        IdUser = user.IdUsuario, Email = user.Email, Token = user.Token, SignToken = user.Token.Split('.')[2]
                    });
                    await _context.SaveChangesAsync().ConfigureAwait(false);

                    Services.MailServices.IMessagingServiceMail messaging = new Services.MailServices.MessageServiceMail(_configuration);
                    await messaging.SendEmailAsync(user.Nombre, user.Email, "Token", GetBodyToken(user), null).ConfigureAwait(false);
                }
                await UpdateUsuario(usuario.IdUsuario, usuario);
            }
            catch (ArgumentException aex)
            {
                ModelState.AddModelError("", aex.Message);
                return(BadRequest(ModelState));
            }
            catch (DbUpdateException)
            {
                if (EmailExists(usuario.Email))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(CreatedAtAction("GetUsuario", new { id = usuario.IdUsuario }, usuario));
        }