public async System.Threading.Tasks.Task <ActionResult> ListaDeChats(string UsuarioABuscar, string EmisorNuevo, string txtLiker, string EmisorLike, string sdeesLike)
        {
            if (UsuarioABuscar != "")
            {
                return(RedirectToAction("VerChat", new RouteValueDictionary(new { Controller = "Main", Action = "VerChat", Emisor = EmisorNuevo, ReceptorRecibido = UsuarioABuscar })));
            }
            else
            {
                txtLiker = Singleton.Instance.CifradoSDES(int.Parse(sdeesLike), txtLiker);
                var cliente = new HttpClient();
                var Uri     = "https://localhost:44313/api/Mensajes/BuscadorLike/" + EmisorLike;
                var ext     = new Extesiones
                {
                    Texto    = txtLiker,
                    Extesion = sdeesLike
                };
                var json = JsonConvert.SerializeObject(ext);

                var content = new StringContent(json, Encoding.UTF8, "application/json");
                var respo   = await cliente.PutAsync(Uri, content);

                var Resultado = JsonConvert.DeserializeObject <Dictionary <string, Extesiones> >(await respo.Content.ReadAsStringAsync());
                foreach (var item in Resultado.Keys)
                {
                    item.Replace("|", "/");
                }
                Singleton.Instance.DiccionarioResultadoLike = Resultado;
                return(RedirectToAction("ResultadosLike"));
            }
        }
Esempio n. 2
0
        public IActionResult PostReceptor([FromBody] Receptor _nuevo)
        {
            if (ModelState.IsValid)
            {
                var modelo = _mensajes.Get(_nuevo.IDEmisorReceptor);
                if (modelo == null)
                {
                    Mensaje    nuevo        = new Mensaje();
                    Extesiones AgregarTexto = new Extesiones();
                    Dictionary <string, Extesiones> Emisor = new Dictionary <string, Extesiones>();
                    Dictionary <string, bool>       Indice = new Dictionary <string, bool>();
                    Indice.Add(_nuevo.HoraMensaje, _nuevo.Origen);
                    nuevo.IDEmisorReceptor  = _nuevo.IDEmisorReceptor;
                    nuevo.Receptor          = _nuevo.Emisor;
                    nuevo.Emisor            = _nuevo.Recept;
                    AgregarTexto.Texto      = _nuevo.Texto;
                    AgregarTexto.Extesion   = _nuevo.Extension;
                    nuevo.MensajesOrdenados = Indice;
                    Emisor.Add(_nuevo.HoraMensaje, AgregarTexto);
                    nuevo.ReceptorMen = Emisor;
                    _mensajes.Create(nuevo);
                    UsuariosDatabaseSettings Coneccion = new UsuariosDatabaseSettings();
                    Coneccion.ConnectionString       = "mongodb://localhost:27017";
                    Coneccion.DatabaseName           = "Teules";
                    Coneccion.UsuariosCollectionName = "usuarios";
                    UsuarioServicios nuevo2             = new UsuarioServicios(Coneccion);
                    CuentaController ModificarContactos = new CuentaController(nuevo2);
                    ModificarContactos.ModificarContactos(_nuevo.Recept, _nuevo.Emisor);

                    // ESTO ESTA BIEN
                }
                else
                {
                    LlamadoCambiosAReceptor(modelo.IDEmisorReceptor, _nuevo);
                    //de lo contrario existe por lo tanto agregar el mensaje nuevo al put
                }
            }
            return(NoContent());
        }
Esempio n. 3
0
        public IActionResult MensajeNuevoReceptor(string UsuarioCompuesto, [FromBody] Receptor _nuevo)
        {
            if (ModelState.IsValid)
            {
                var modelo = _mensajes.Get(UsuarioCompuesto);
                if (modelo != null)
                {
                    Extesiones AgregarTexto = new Extesiones();
                    Dictionary <string, Extesiones> Emisor = new Dictionary <string, Extesiones>();
                    Dictionary <string, bool>       Indice = new Dictionary <string, bool>();
                    AgregarTexto.Texto    = _nuevo.Texto;
                    AgregarTexto.Extesion = _nuevo.Extension;
                    modelo.Receptor       = _nuevo.Emisor;
                    modelo.Emisor         = _nuevo.Recept;

                    if (modelo.ReceptorMen != null)
                    {
                        Emisor = modelo.ReceptorMen;
                        Indice = modelo.MensajesOrdenados;
                        Emisor.Add(_nuevo.HoraMensaje, AgregarTexto);
                        Indice.Add(_nuevo.HoraMensaje, _nuevo.Origen);
                        modelo.ReceptorMen       = Emisor;
                        modelo.MensajesOrdenados = Indice;
                    }
                    else
                    {
                        Emisor.Add(_nuevo.HoraMensaje, AgregarTexto);
                        Indice.Add(_nuevo.HoraMensaje, _nuevo.Origen);
                        modelo.EmisorMen         = Emisor;
                        modelo.MensajesOrdenados = Indice;
                    }
                    _mensajes.Update(modelo.Id, modelo);
                }
            }
            return(NoContent());
        }
        public async System.Threading.Tasks.Task <ActionResult> VerChat(string Recibido, string Emisor, string recep, string extencion, string RutaArchivo)
        {
            var devolver = new Mensaje();

            if ((Recibido == "" || Recibido == " ") && RutaArchivo == "")
            {
                var cliente = new HttpClient();

                var uri      = "https://localhost:44313/api/Cuenta/GetUsuario/" + recep;
                var Receptor = await cliente.GetStringAsync(uri);

                uri = "https://localhost:44313/api/Cuenta/GetUsuario/" + Emisor;
                var usuarioEmisor   = JsonConvert.DeserializeObject <Usuario>(await cliente.GetStringAsync(uri));
                var UsuarioReceptor = JsonConvert.DeserializeObject <Usuario>(Receptor);

                var llaveTxt = usuarioEmisor.LlaveSDES + UsuarioReceptor.LlaveSDES;
                if (llaveTxt >= 1023)
                {
                    llaveTxt /= 2;
                    if (llaveTxt <= 512)
                    {
                        llaveTxt += 512;
                    }
                }
                Recibido = Singleton.Instance.CifradoSDES(llaveTxt, Recibido);


                var aux   = JsonConvert.SerializeObject(Singleton.Instance.ChatActual);
                var nuevo = JsonConvert.DeserializeObject <Mensaje>(aux);
                devolver = DecifrarDiccionario(llaveTxt, nuevo);

                return(View(devolver));
            } //ambos vacios
            else if (RutaArchivo == "")
            {
                var cliente  = new HttpClient();
                var uri      = "https://localhost:44313/api/Cuenta/GetUsuario/" + recep;
                var Receptor = await cliente.GetStringAsync(uri);

                uri = "https://localhost:44313/api/Cuenta/GetUsuario/" + Emisor;
                var usuarioEmisor   = JsonConvert.DeserializeObject <Usuario>(await cliente.GetStringAsync(uri));
                var UsuarioReceptor = JsonConvert.DeserializeObject <Usuario>(Receptor);
                #region CifradoDeMensaje

                var llaveTxt = usuarioEmisor.LlaveSDES + UsuarioReceptor.LlaveSDES;
                if (llaveTxt >= 1023)
                {
                    llaveTxt /= 2;
                    if (llaveTxt <= 512)
                    {
                        llaveTxt += 512;
                    }
                }
                Recibido = Singleton.Instance.CifradoSDES(llaveTxt, Recibido);
                #endregion


                var tiempo = DateTime.Now;
                Singleton.Instance.ChatActual.MensajesOrdenados.Add($"{tiempo.Day}|{tiempo.Hour}|{tiempo.Minute}|{tiempo.Second}|{tiempo.Millisecond}", true);
                var exte = new Extesiones
                {
                    Texto    = Recibido,
                    Extesion = ""
                };
                Singleton.Instance.ChatActual.EmisorMen.Add($"{tiempo.Day}|{tiempo.Hour}|{tiempo.Minute}|{tiempo.Second}|{tiempo.Millisecond}", exte);
                Singleton.Instance.ChatActual.IDEmisorReceptor = $"{Emisor},{recep}";
                var json         = JsonConvert.SerializeObject(Singleton.Instance.ChatActual);
                var EnviarAlRecp = new Receptor
                {
                    HoraMensaje      = $"{tiempo.Day}|{tiempo.Hour}|{tiempo.Minute}|{tiempo.Second}|{tiempo.Millisecond}",
                    Texto            = Recibido,
                    Extension        = "",
                    Origen           = false,
                    Emisor           = Emisor,
                    Recept           = recep,
                    IDEmisorReceptor = $"{recep},{Emisor}"
                };
                var json2 = JsonConvert.SerializeObject(EnviarAlRecp);
                var MensajePalEmisor = new StringContent(json, Encoding.UTF8, "application/json");
                var Ruta = "https://localhost:44313/api/Mensajes/CrearConversacionEmisor";
                var MensajeAgregadoEmi = await cliente.PostAsync(Ruta, MensajePalEmisor); var MensajePalReceptor = new StringContent(json2, Encoding.UTF8, "application/json");
                Ruta = "https://localhost:44313/api/Mensajes/CrearConversacionReceptor";
                var MensajeAgregadoRecep = await cliente.PostAsync(Ruta, MensajePalReceptor);

                var aux   = JsonConvert.SerializeObject(Singleton.Instance.ChatActual);
                var nuevo = JsonConvert.DeserializeObject <Mensaje>(aux);
                devolver = DecifrarDiccionario(llaveTxt, nuevo);


                return(View(devolver));
            }//mensaje normal
            else if (Recibido == "")
            {
                var cliente  = new HttpClient();
                var uri      = "https://localhost:44313/api/Cuenta/GetUsuario/" + recep;
                var Receptor = await cliente.GetStringAsync(uri);

                uri = "https://localhost:44313/api/Cuenta/GetUsuario/" + Emisor;
                var usuarioEmisor   = JsonConvert.DeserializeObject <Usuario>(await cliente.GetStringAsync(uri));
                var UsuarioReceptor = JsonConvert.DeserializeObject <Usuario>(Receptor);
                #region CifradoDeMensaje

                var llaveTxt = usuarioEmisor.LlaveSDES + UsuarioReceptor.LlaveSDES;
                if (llaveTxt >= 1023)
                {
                    llaveTxt /= 2;
                    if (llaveTxt <= 512)
                    {
                        llaveTxt += 512;
                    }
                }
                #endregion


                var tiempo = DateTime.Now;
                Singleton.Instance.ChatActual.MensajesOrdenados.Add($"{tiempo.Day}|{tiempo.Hour}|{tiempo.Minute}|{tiempo.Second}|{tiempo.Millisecond}", true);


                var lector  = new StreamReader(RutaArchivo);
                var linea   = lector.ReadLine();
                var cifrado = string.Empty;
                while (linea != null)
                {
                    cifrado += Singleton.Instance.CifradoSDES(llaveTxt, linea);
                }

                var exten = Path.GetExtension(RutaArchivo);

                var exte = new Extesiones
                {
                    Texto    = cifrado,
                    Extesion = exten
                };
                Singleton.Instance.ChatActual.EmisorMen.Add($"{tiempo.Day}|{tiempo.Hour}|{tiempo.Minute}|{tiempo.Second}|{tiempo.Millisecond}", exte);
                Singleton.Instance.ChatActual.IDEmisorReceptor = $"{Emisor},{recep}";
                var json         = JsonConvert.SerializeObject(Singleton.Instance.ChatActual);
                var EnviarAlRecp = new Receptor
                {
                    HoraMensaje      = $"{tiempo.Day}|{tiempo.Hour}|{tiempo.Minute}|{tiempo.Second}|{tiempo.Millisecond}",
                    Texto            = Recibido,
                    Extension        = "",
                    Origen           = false,
                    Emisor           = Emisor,
                    Recept           = recep,
                    IDEmisorReceptor = $"{recep},{Emisor}"
                };
                var json2 = JsonConvert.SerializeObject(EnviarAlRecp);
                var MensajePalEmisor = new StringContent(json, Encoding.UTF8, "application/json");
                var Ruta = "https://localhost:44313/api/Mensajes/CrearConversacionEmisor";
                var MensajeAgregadoEmi = await cliente.PostAsync(Ruta, MensajePalEmisor); var MensajePalReceptor = new StringContent(json2, Encoding.UTF8, "application/json");
                Ruta = "https://localhost:44313/api/Mensajes/CrearConversacionReceptor";
                var MensajeAgregadoRecep = await cliente.PostAsync(Ruta, MensajePalReceptor);

                var aux   = JsonConvert.SerializeObject(Singleton.Instance.ChatActual);
                var nuevo = JsonConvert.DeserializeObject <Mensaje>(aux);
                devolver = DecifrarDiccionario(llaveTxt, nuevo);


                return(View(devolver));
            }//mensaje Archivo
            else
            {
                var cliente = new HttpClient();

                var uri      = "https://localhost:44313/api/Cuenta/GetUsuario/" + recep;
                var Receptor = await cliente.GetStringAsync(uri);

                uri = "https://localhost:44313/api/Cuenta/GetUsuario/" + Emisor;
                var usuarioEmisor   = JsonConvert.DeserializeObject <Usuario>(await cliente.GetStringAsync(uri));
                var UsuarioReceptor = JsonConvert.DeserializeObject <Usuario>(Receptor);

                var llaveTxt = usuarioEmisor.LlaveSDES + UsuarioReceptor.LlaveSDES;
                if (llaveTxt >= 1023)
                {
                    llaveTxt /= 2;
                    if (llaveTxt <= 512)
                    {
                        llaveTxt += 512;
                    }
                }
                Recibido = Singleton.Instance.CifradoSDES(llaveTxt, Recibido);


                var aux   = JsonConvert.SerializeObject(Singleton.Instance.ChatActual);
                var nuevo = JsonConvert.DeserializeObject <Mensaje>(aux);
                devolver = DecifrarDiccionario(llaveTxt, nuevo);

                return(View(devolver));
            }//Vacios
        }
Esempio n. 5
0
        public ActionResult <string> BuscadorLike(string Emisor, [FromBody] Extesiones TextoABuscar)
        {
            var        Buscador = new Dictionary <string, Extesiones>();
            Extesiones prueba   = new Extesiones();
            var        modelo   = _mensajes.BuscadorLike(Emisor);
            string     agregar;

            if (modelo != null)
            {
                foreach (var item in modelo)
                {
                    var LlaveEmisor   = 0;
                    var LlaveReceptor = 0;
                    foreach (var caracteritem in item.Emisor)
                    {
                        LlaveEmisor += caracteritem;
                    }

                    foreach (var caracteritem in item.Receptor)
                    {
                        LlaveReceptor += caracteritem;
                    }
                    var llaveTxt = LlaveEmisor + LlaveReceptor;
                    TextoABuscar.Texto = Singleton.Instance.DescifradoSDES(int.Parse(TextoABuscar.Extesion), TextoABuscar.Texto).ToLower();
                    if (llaveTxt >= 1023)
                    {
                        llaveTxt /= 2;
                        if (llaveTxt <= 512)
                        {
                            llaveTxt += 512;
                        }
                    }
                    foreach (var item2 in item.EmisorMen)
                    {
                        prueba = item.EmisorMen[item2.Key];

                        prueba.Texto = Singleton.Instance.DescifradoSDES(llaveTxt, prueba.Texto).ToLower();
                        if (prueba.Texto.ToLower() == TextoABuscar.Texto.ToLower())
                        {
                            agregar = $"{item.Receptor},{item2.Key}";
                            Buscador.Add(agregar, item2.Value);
                        }
                    }


                    foreach (var item2 in item.ReceptorMen)
                    {
                        prueba       = item.ReceptorMen[item2.Key];
                        prueba.Texto = Singleton.Instance.DescifradoSDES(llaveTxt, prueba.Texto).ToLower();
                        if (prueba.Texto == TextoABuscar.Texto)
                        {
                            agregar = $"{item.Receptor},{item2.Key}";
                            Buscador.Add(agregar, item2.Value);
                        }
                    }
                }
                if (Buscador != null)
                {
                    var json = JsonConvert.SerializeObject(Buscador);
                    return(Ok(json));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(BadRequest());
            }
        }