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")); } }
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()); }
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 }
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()); } }