public ActionResult <List <Msg> > Get([FromRoute] string idEmisor, [FromRoute] string idReceptor)
        {
            var mensajesEnConversacion = _userService.GetMessages(idEmisor, idReceptor);

            foreach (var mensaje in mensajesEnConversacion)
            {
                var sdes = new SDES(mensaje.Contenido, 250);
                mensaje.Contenido = sdes.OperarMensaje(2);
            }

            return(Ok(mensajesEnConversacion));
        }
        public IActionResult Authenticate([FromBody] User userParameter)
        {
            var sdes = new SDES(userParameter.Contrasena, 250);
            var jwt  = _userService.Authenticate(userParameter.Username, sdes.OperarMensaje(1));

            if (jwt == null)
            {
                return(BadRequest(new { message = "USUARIO O CONTRASENA INCORRECTOS" }));
            }

            return(Accepted(jwt));
        }
        public IActionResult Authenticate([FromBody] User userParameter)
        {
            var sdes = new SDES(userParameter.Contraseña, 250);
            var jwt  = _userService.Authenticate(userParameter.Username, sdes.OperarMensaje(1));

            //SI DEVUELVE UN JWT NULO, QUIERE DECIR QUE HUBO UN PROBLEMA CON LA AUTENTICACION
            if (jwt == null)
            {
                return(BadRequest(new { message = "USUARIO O CONTRASENA INCORRECTOS" }));
            }

            //DE LO CONTRARIO, SE DEVOLVERA UN JWT CON LA INFORMACION PERTINENTE

            return(Accepted(jwt));
        }
        public IActionResult Create([FromBody] User usuario)
        {
            try
            {
                var sdes = new SDES(usuario.Contrasena, 250);
                usuario.Contrasena = sdes.OperarMensaje(1);
                var USER = _userService.Create(usuario);

                if (USER != null)
                {
                    return(Created("Chat/" + USER.Id, USER));
                }

                return(Conflict());
            }
            catch (Exception e)
            {
                return(BadRequest(new { message = "INFORMACION INCORRECTA, POR FAVOR REVISE LA INFORMACION" }));
            }
        }
        public ActionResult Update(string id, [FromBody] User usuario)
        {
            try
            {
                var Usuario = _userService.Get(id);

                if (Usuario == null)
                {
                    return(NotFound());
                }

                var sdes = new SDES(usuario.Contrasena, 250);
                usuario.Contrasena = sdes.OperarMensaje(1);
                _userService.UpdateUser(id, usuario);
                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(new { message = "INFORMACION INCORRECTA, POR FAVOR REVISE LA INFORMACION" }));
            }
        }
        public ActionResult UpdateMessage([FromRoute] string idEmisor, [FromRoute] string idReceptor, [FromBody] Msg mensaje)
        {
            mensaje.Emisor   = idEmisor;
            mensaje.Receptor = idReceptor;
            mensaje.Fecha    = DateTime.Now.ToString();

            var sdes = new SDES(mensaje.Contenido, 250);

            mensaje.Contenido = sdes.OperarMensaje(1);


            var usernameCompuesto = _userService.UpdateMessageEmisor(mensaje.Emisor, mensaje);

            var correct = _userService.UpdateMessageReceptor(mensaje.Receptor, usernameCompuesto, mensaje);

            if (correct)
            {
                return(Ok()); //Se actualizaron emisor y receptor
            }

            return(NoContent()); //Solo se actulizó emisor
        }