コード例 #1
0
        // POST: LogIn/Delete/5
        //[HttpPost]
        //[ValidateAntiForgeryToken]
        public ActionResult CrearChat(string User)
        {
            using (var client = new HttpClient())
            {
                Conversacion newConv = new Conversacion();
                var          Actual  = JsonConvert.DeserializeObject <SubmitModel>(HttpContext.Session.GetString("User"));
                newConv.Remitente  = Actual.User;
                client.BaseAddress = new Uri(hostSettings.DireccionHost);
                //HTTP GET User destino
                client.DefaultRequestHeaders.Authorization
                    = new AuthenticationHeaderValue("Bearer", Token);
                var Content     = new StringContent(User);
                var ResponseGet = client.GetAsync("/api/Usuario/GetWithParam?Id=" + User);
                var result      = ResponseGet.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsStringAsync();
                    readTask.Wait();
                    var model = JsonConvert.DeserializeObject <SubmitModel>(readTask.Result);
                    //Sabemos que existe el User Destinatario se agrega a la conversacion
                    newConv.Destinatario = model.User;



                    var responseGet2 = client.GetAsync("api/Conversation/GetWithParam?Emisor=" + Actual.User + "&Receptor=" + model.User);
                    var resultGet1   = responseGet2.Result;
                    if (resultGet1.IsSuccessStatusCode)
                    {
                        ModelState.AddModelError(string.Empty, "La conversacion ya existe");
                        return(RedirectToAction("VistaLlenarLista"));
                    }
                    else if (!resultGet1.IsSuccessStatusCode)
                    {
                        var responseGet3 = client.GetAsync("api/Conversation/GetWithParam?Emisor=" + model.User + "&Receptor=" + Actual.User);
                        var resultGet2   = responseGet2.Result;
                        if (resultGet2.IsSuccessStatusCode)
                        {
                            ModelState.AddModelError(string.Empty, "La conversacion ya existe");
                            return(RedirectToAction("VistaLlenarLista"));
                        }
                        else
                        {
                            var JSON         = JsonConvert.SerializeObject(newConv);
                            var contenido    = new StringContent(JSON, Encoding.UTF8, "application/json");
                            var responseTask = client.PostAsync("api/Conversation/Create/", contenido);
                            var resultPost   = responseTask.Result;
                        }
                    }



                    return(View("Create"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
                }
            }
            return(View());
        }
コード例 #2
0
ファイル: ChatHub.cs プロジェクト: Light-lig/SVX
        public void send(int idTo, int idConversacion, int idFrom, string nombreFrom, string mensaje, string conversacion, string idAnuncio)
        {
            Conversacion con = new Conversacion();

            if (idConversacion == 0)
            {
                con.nombre = conversacion;
                contexto.Conversacion.Add(con);
                contexto.SaveChanges();
                con            = contexto.Conversacion.ToList().LastOrDefault();
                idConversacion = con.idConversacion;
                joinRoom(con.idConversacion.ToString());
            }
            Mensaje men = new Mensaje();

            men.idTo           = idTo;
            men.idConversacion = idConversacion;
            men.idFrom         = idFrom;
            men.mensaje1       = mensaje;
            men.fecha          = System.DateTime.Now;
            men.idAnuncio      = idAnuncio;
            contexto.Mensaje.Add(men);
            contexto.SaveChanges();
            Clients.Group(idConversacion.ToString()).addMensajes(idTo, idConversacion, idFrom, nombreFrom, mensaje, System.DateTime.Now.ToString("MM/dd/yyyy hh:mm tt"), idAnuncio);
        }
コード例 #3
0
        // Permite obtener las conversaciones realizadas por codigo de solicitud
        public List <Conversacion> GetConversacionesXOrden(string codigo_documento)
        {
            List <Conversacion> lconversacion = new List <Conversacion>();

            try
            {
                CapaDatos.StoreProcedure consulta = new CapaDatos.StoreProcedure("[lafarnet].[dbo].[sp_get_conversacion_x_orden]");
                consulta.AgregarParametro("@codigo_documento", codigo_documento);
                DataTable dt = consulta.RealizarConsulta(Parametros.ConexionBDSAP());

                foreach (DataRow item in dt.Rows)
                {
                    Conversacion c = new Conversacion
                    {
                        id_conversacion  = Convert.ToInt32(item["id_conversacion"]),
                        codigo_documento = (item["codigo_documento"]).ToString(),
                        username         = (item["username"]).ToString(),
                        nombre_usuario   = (item["nombre_usuario"]).ToString(),
                        fecha_hora       = Convert.ToDateTime(item["fecha_hora"]),
                        mensaje          = (item["mensaje"]).ToString(),
                        estado           = (item["estado"]).ToString(),
                    };
                    lconversacion.Add(c);
                }
                return(lconversacion);
            }
            catch (Exception ex)
            {
                return(lconversacion);
            }
        }
コード例 #4
0
ファイル: NPC.cs プロジェクト: Zereck/proyecto-pokemon
    public Conversacion AniadirDialogoASecuencia(Conversacion ultimaConversacion)
    {
        for (int i = listaConversaciones.Count - 1; i >= 0; i--)
        {
            if (ultimaConversacion != null && listaConversaciones[i].logroConseguido == ultimaConversacion.logroConseguido)
            {
                return(ultimaConversacion);
            }

            if (listaConversaciones[i].logroConseguido == Logro.NINGUNO || ControladorDatos.Instancia.Datos.ContieneLogro(listaConversaciones[i].logroConseguido) || (ultimaConversacion != null && ultimaConversacion.darLogroPorTerminarConversacion == listaConversaciones[i].logroConseguido))
            {
                ControladorEventos.Instancia.LanzarEvento(new EventoPersonajeMirarDireccion(transform.position));
                if (listaConversaciones[i].tipoConversacion == TipoConversacion.Hablar)
                {
                    ControladorEventos.Instancia.LanzarEvento(new EventoMostrarMensajeConversacion(listaConversaciones[i]));
                }
                else if (listaConversaciones[i].tipoConversacion == TipoConversacion.Luchar && listaConversaciones[i].equipoPokemon != null)
                {
                    ControladorEventos.Instancia.LanzarEvento(new EventoIniciarCombateContraEntrenador(listaConversaciones[i], nombre));
                }
                return(listaConversaciones[i]);
            }
        }
        return(null);
    }
        // GET: Conversaciones
        public ActionResult Conversaciones()
        {
            string id = new Jwt().ObtenerId();

            if (id != "")
            {
                var Direccion = "Conversaciones/" + id;
                var Respuesta = Data.Instancia.RocketChat.Cliente.GetAsync(Direccion);
                Respuesta.Wait();
                var Resultado = Respuesta.Result;

                if (Resultado.StatusCode == HttpStatusCode.OK)
                {
                    var ReadTask = Resultado.Content.ReadAsStringAsync();
                    ReadTask.Wait();

                    var ConversacionesUser  = JsonConvert.DeserializeObject <List <string> >(ReadTask.Result);
                    var ListaConversaciones = new List <string>();
                    foreach (var Conversacion in ConversacionesUser)
                    {
                        ListaConversaciones.Add(Conversacion.Split('.')[0]);
                    }
                    return(View(ListaConversaciones));
                }
                else
                {
                    return(RedirectToAction("HomePerfil", "Perfil"));
                }
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
コード例 #6
0
        public ActionResult InsertMensaje(Mensajes model)
        {
            model.ToString();
            model.FechaCreacion = DateTime.Now;

            if (ModelState.IsValid)
            {
                using (var context = new ApplicationDbContext())
                {
                    context.Mensajes.Add(model);

                    Conversacion conversacion = new Conversacion
                    {
                        ApplicationUserId = model.UsuarioRecibe,
                        MensajeId         = model.MensajeId
                    };

                    context.Conversaciones.Add(conversacion);
                    context.SaveChanges();
                }
            }

            ChatHub.NotifyCurrentEmployeeInformationToAllClients();
            return(RedirectToAction("Index"));
        }
コード例 #7
0
    void Start()
    {
        cmp_MarcoConversacion = GameObject.FindObjectOfType <MarcoConversacion> ();

        //Borrar despues:
        conversacion = new Conversacion(nConversacion);
    }
コード例 #8
0
        public void CalcularPuntosConversacion_OK()
        {
            //Arange
            Conversacion conversacion = new Conversacion();

            conversacion.Nombre = "CONVERSACION 1";
            conversacion.Lineas = new System.Collections.Generic.List <Linea>()
            {
                new Linea()
                {
                    Emisor = "CLIENTE1", Mensaje = "Hola, buenos dias.", Fecha = DateTime.Now
                },
                new Linea()
                {
                    Emisor = "ASESOR1", Mensaje = "Hola CLIENTE1, bienvenido al centro de servicio.", Fecha = DateTime.Now
                }
            };

            List <IReglaConversacion> reglasDeNegocio = new List <IReglaConversacion>()
            {
                new CalcularConversacionAbandonada(),
                new CalcularBuenServicio(),
                new CalcularCoincidenciasPalabraUrgente(),
                new CalcularNumeroMensajes()
            };

            //Act
            int puntos = CalificadorUtil.CalcularPuntosConversacion(conversacion, reglasDeNegocio);

            //Asert
            Assert.AreEqual(15, puntos);
        }
コード例 #9
0
        public IActionResult CrearConversacion(int id_usuario, int id_contacto, string username)
        {
            var Con           = new Conversacion();
            var _convesacion  = new Conversacion();
            var _particantes  = new Participantes();
            var _particantes1 = new Participantes();

            _convesacion.Descripcion = username;

            var datos = _context.Conversacion.Add(_convesacion);

            _context.SaveChanges();
            if (datos != null)
            {
                Con = _context.Conversacion.OrderByDescending(x => x.IdConversacion).FirstOrDefault();
                if (Con != null)
                {
                    _particantes.IdUsuario      = id_usuario;
                    _particantes.IdConversacion = Con.IdConversacion;
                    var datos1 = _context.Participantes.Add(_particantes);
                    _particantes1.IdUsuario      = id_contacto;
                    _particantes1.IdConversacion = Con.IdConversacion;
                    var datos2 = _context.Participantes.Add(_particantes1);
                    _context.SaveChanges();
                }
            }
            else
            {
                return(NotFound());
            }

            return(Ok(Con));
        }
コード例 #10
0
        public ConversacionResponse obtenerConversacionResponse(int UsuarioHost, int UsuarioGuest, string facultadbd)
        {
            //RETORNA UNA CONVERSACION EN CASO DE ESTAR CREADA UNA QUE TENGA A AMBOS USUARIOS (EN AMBOS ROLES)
            //CREA Y RETORNA UNA EN CASO DE NO HABER

            //FALTA VERIFICAR QUE EXISTA EL USUARIO EN LA BASE DE DATOS RELACIONAL

            Conversacion           conv     = obtenerConversacion(UsuarioHost, UsuarioGuest, facultadbd);
            List <MensajeResponse> listMens = new List <MensajeResponse>();

            if (conv.Mensajes.Count() > 0)
            {
                foreach (Datos.MongoDB.Clases.Mensaje mens in conv.Mensajes)
                {
                    listMens.Add(new MensajeResponse()
                    {
                        Texto         = mens.Texto,
                        UsuarioEmisor = mens.UsuarioEmisor,
                        FechaEnviado  = mens.FechaHora
                    });
                }
            }
            return(new ConversacionResponse()
            {
                Mensajes = listMens,
                UsuarioHost = conv.UsuarioHost,
                UsuarioGuest = conv.UsuarioGuest
            });
        }
コード例 #11
0
    void newConversacion()
    {
        if (indexConversacion >= conversaciones.Length)
        {
            displayGameOver();
            return;
        }

        contestacionesActuales.Clear();
        Conversacion conversacionActual = conversaciones[indexConversacion];

        indexConversacion++;

        Conversacion.text = conversacionActual.texto;

        while (contestacionesActuales.Count < 3)
        {
            Contestacion contestacion = conversacionActual.contestacionRandom();
            if (!contestacionesActuales.Contains(contestacion))
            {
                contestacionesActuales.Add(contestacion);
            }
        }

        opcion1.text = contestacionesActuales[0].text;
        opcion2.text = contestacionesActuales[1].text;
        opcion3.text = contestacionesActuales[2].text;
    }
コード例 #12
0
        public ActionResult NuevoMensaje(string Mensaje)
        {
            using (var client = new HttpClient())
            {
                AddNewMessageModel n1 = new AddNewMessageModel();
                var Actual            = JsonConvert.DeserializeObject <SubmitModel>(HttpContext.Session.GetString("User"));
                n1.Id              = IDConversacion;
                n1.EmisorMensaje   = Actual.User;
                n1.FechaEnviado    = DateTime.Now;
                n1.Message         = Mensaje;
                client.BaseAddress = new Uri(hostSettings.DireccionHost);
                //HTTP POSt
                client.DefaultRequestHeaders.Authorization
                    = new AuthenticationHeaderValue("Bearer", Token);
                var JSON         = JsonConvert.SerializeObject(n1);
                var contenido    = new StringContent(JSON, Encoding.UTF8, "application/json");
                var ResponseGet2 = client.PostAsync("/api/Conversation/NMensaje", contenido);
                var result2      = ResponseGet2.Result;
                if (result2.IsSuccessStatusCode)
                {
                    var readTask = result2.Content.ReadAsStringAsync();
                    readTask.Wait();
                    Conversacion model = JsonConvert.DeserializeObject <Conversacion>(readTask.Result);

                    return(RedirectToAction("VisualizarChat", new { Id = model.Id }));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
                }
            }

            return(View());
        }
コード例 #13
0
    public void NuevaConversacion(Conversacion conversacion)
    {
//		Debug.Log ("MarcoConversacion] Nueva conversacion");
        Mision.estadoDelJuego = Mision.EstadoDelJuego.Conversando;
        componentesVisibles.SetActive(true);

        conversacionActual = conversacion;
        lineaActual        = -1;

        ReproducirSiguienteLinea();
    }
コード例 #14
0
        private Conversacion nuevaConversacion(int UsuarioHost, int UsuarioGuest, string nombreFacultad)
        {
            Conversacion conv = new Conversacion()
            {
                UsuarioGuest = UsuarioGuest,
                UsuarioHost  = UsuarioHost,
                Mensajes     = new List <Datos.MongoDB.Clases.Mensaje>()
            };
            Mongodb mdb = new Mongodb(nombreFacultad);

            mdb.InsertRecord(collection, conv);
            return(conv);
        }
コード例 #15
0
        public bool enviarMensaje(MensajeRequest mensajeRequest)
        {
            Conversacion conversacion = obtenerConversacion(mensajeRequest.UsuarioEmisor, mensajeRequest.UsuarioReceptor, mensajeRequest.Facultad);
            Mongodb      mdb          = new Mongodb(_contextoGeneral.Facultad.SingleOrDefault(x => x.Url == mensajeRequest.Facultad).NombreBD);

            conversacion.Mensajes.Add(new Datos.MongoDB.Clases.Mensaje()
            {
                Texto         = mensajeRequest.Texto,
                UsuarioEmisor = mensajeRequest.UsuarioEmisor,
            });
            mdb.UpsertRecord(collection, conversacion.Id, conversacion);
            PusherUtil.Enviar(PusherUtil.canal, PusherUtil.evento, conversacion.Mensajes.LastOrDefault());
            return(true);
        }
コード例 #16
0
        private async Task ValidarYEnviarEscenario(ITurnContext turnContext, Conversacion conversacion, CancellationToken cancellationToken)
        {
            string respuesta = turnContext.Activity.Text;

            if (_menuActividades.Contains(respuesta.ToLower()))
            {
                conversacion.Eleccion = respuesta.ToLower();
                conversacion.Cambio   = true;
                await GuardarCambios(turnContext, cancellationToken);

                await turnContext.SendActivityAsync($"Perfecto, ahora estás comunicado con el área de {respuesta}, cómo puedo ayudarte?");

                if (respuesta.ToLower() != "agente")
                {
                    await ConsultarBotAsync(turnContext, conversacion);
                }
            }
            switch (respuesta.ToLower())
            {
            case "menu":
                await turnContext.SendActivityAsync(MostrarMenuInicial(turnContext, cancellationToken, conversacion).Result, cancellationToken);

                break;

            case "preguntas":
                conversacion.Eleccion = respuesta.ToLower();
                await GuardarCambios(turnContext, cancellationToken);

                await turnContext.SendActivityAsync($"Perfecto, ahora estás comunicado con el área de {respuesta}, cómo puedo ayudarte?");

                break;

            case "/salir":
                conversacion.Eleccion = "preguntas";
                conversacion.Token    = conversacion.Conv = null;
                conversacion.Cambio   = true;
                conversacion.Menu     = false;
                await GuardarCambios(turnContext, cancellationToken);

                await turnContext.SendActivityAsync($"Gracias {turnContext.Activity.From.Name}, acá estaré cuando me necesites.");

                var cardAttachment = CreateAdaptiveCardAttachment(_cards[0]);
                await turnContext.SendActivityAsync(MessageFactory.Attachment(cardAttachment), cancellationToken);

                break;
            }
            await GuardarCambios(turnContext, cancellationToken);
        }
コード例 #17
0
        public ActionResult VisualizarChat(string Id)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(hostSettings.DireccionHost);
                //HTTP POSt
                client.DefaultRequestHeaders.Authorization
                    = new AuthenticationHeaderValue("Bearer", Token);
                var ResponseGet = client.GetAsync("/api/Conversation/GetFromId?Id=" + Id);
                var result      = ResponseGet.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsStringAsync();
                    readTask.Wait();
                    Conversacion       model     = JsonConvert.DeserializeObject <Conversacion>(readTask.Result);
                    SubmitConversacion nuevaConv = new SubmitConversacion();
                    nuevaConv.Id           = model.Id;
                    nuevaConv.Remitente    = model.Remitente;
                    nuevaConv.Destinatario = model.Destinatario;

                    var JSON         = JsonConvert.SerializeObject(nuevaConv);
                    var contenido    = new StringContent(JSON, Encoding.UTF8, "application/json");
                    var ResponseGet2 = client.PostAsync("/api/Conversation/ObtMensaje", contenido);
                    var result2      = ResponseGet2.Result;

                    if (result2.IsSuccessStatusCode)
                    {
                        var readTask2 = result2.Content.ReadAsStringAsync();
                        readTask2.Wait();
                        List <SubmitMensaje> n1 = new List <SubmitMensaje>();
                        IDConversacion = model.Id;
                        if (result2.StatusCode != HttpStatusCode.OK)
                        {
                            n1 = JsonConvert.DeserializeObject <List <SubmitMensaje> >(readTask2.Result);
                        }


                        return(View(n1));
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
                }
            }
            return(View());
        }
コード例 #18
0
        /// <summary>
        /// Metodo que permite tomar el texto de las conversaciones y cargarlo en la lista de objetos Conversacion
        /// </summary>
        /// <param name="lineas">texto del archivo de conversaciones</param>
        private void CargarConversaciones(List <string> textoConversaciones)
        {
            Conversacion conversacion = null;

            for (int i = 0; i < textoConversaciones.Count; i++)
            {
                //Validar encabezado y crear conversacion
                if (textoConversaciones[i].ToUpper().Contains("CONVERSACION") &&
                    CalificadorUtil.ValidarNombreEncabezadoConversacion(textoConversaciones[i]))
                {
                    conversacion = new Conversacion()
                    {
                        Nombre = textoConversaciones[i]
                    };
                    continue;
                }

                //Validar si se termino una conversacion y adicionarla a la lista de conversaciones
                //(el espacio en el archivo determina donde finaliza y donde comienzan las conversaciones)
                if (string.IsNullOrEmpty(textoConversaciones[i]))
                {
                    if (conversacion != null)
                    {
                        _conversaciones.Add(conversacion);
                        conversacion = null;
                    }
                    continue;
                }

                //Adicionar linea a la conversacion que se esta recorriendo
                if (conversacion != null)
                {
                    //se valida si el mensaje tiene el formato correcto y se adiciona a la conversacion, de lo contrario la conversacion sera omitida
                    Linea linea = CalificadorUtil.CargarLineaConversacion(textoConversaciones[i], conversacion.Nombre);
                    if (linea != null)
                    {
                        conversacion.Lineas.Add(linea);
                    }
                    else
                    {
                        conversacion = null;
                    }
                }
            }
        }
コード例 #19
0
        /// <summary>
        /// Metodo que permite calular los puntos de una conversacion de acuerdo a las reglas de negocio que se hayan configurado
        /// </summary>
        /// <param name="conversacion"></param>
        /// <param name="reglasDeNegocio"></param>
        /// <returns></returns>
        public static int CalcularPuntosConversacion(Conversacion conversacion, List <IReglaConversacion> reglasDeNegocio)
        {
            int puntosAcumulados = 0, puntos = 0;

            foreach (var regla in reglasDeNegocio)
            {
                puntos            = regla.CalcularPuntos(conversacion.Lineas);
                puntosAcumulados += puntos;

                //EXCELENTE SERVICIO o Conversacion abandonada
                if (puntos == 100 || puntos == -100)
                {
                    break;
                }
            }

            return(puntosAcumulados);
        }
コード例 #20
0
        public Boolean AddConversacionOrden(Conversacion c)
        {
            try
            {
                CapaDatos.StoreProcedure consulta = new CapaDatos.StoreProcedure("sp_insert_conversacion_orden");
                consulta.AgregarParametro("@codigo_documento", c.codigo_documento);
                consulta.AgregarParametro("@username", c.username);
                consulta.AgregarParametro("@nombre_usuario", c.nombre_usuario);
                consulta.AgregarParametro("@mensaje", c.mensaje);
                consulta.AgregarParametro("@estado", c.estado);
                DataTable dt = consulta.RealizarConsulta(Parametros.ConexionBDSAP());

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #21
0
 // POST api/scconversacionsolicitud
 public ResponseAddConversacion Post([FromBody] Conversacion value)
 {
     if (cn.Add(value))
     {
         return(new ResponseAddConversacion
         {
             status = 200,
             message = "OK"
         });
     }
     else
     {
         return(new ResponseAddConversacion
         {
             status = 303,
             message = "NO"
         });
     }
 }
コード例 #22
0
ファイル: FriendsService.cs プロジェクト: hugo-palma/TechoApp
        public async Task <Object> PostNuevaConversacionAsync(int sesionId, int[] friendoId, string nombre)
        {
            Conversacion conversacion            = new Conversacion();
            RestClient <Conversacion> restClient = new RestClient <Conversacion>("nuevaConversacion");

            conversacion.idUsuarios = sesionId;
            conversacion.idFriends  = friendoId;
            conversacion.nombre     = nombre;
            string jsonResult = await restClient.PostAsync(conversacion);

            string status = (string)JObject.Parse(jsonResult)["status"];

            if (status == "added")
            {
                string idGrupos = (string)JObject.Parse(jsonResult)["options"];
                return(idGrupos);
            }
            return("unsuccessful");
        }
コード例 #23
0
        public async Task <IActionResult> Create([Bind("ConversacionId,RealizadoEl,EmpresaId,Observaciones,Estado")] Conversacion conversacion)
        {
            if (ModelState.IsValid)
            {
                _context.Add(conversacion);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            var estadosConversacion = new[]
            {
                new { Estado = (int)EstadoConversacion.PorRealizar, DataValueField = Enum.GetName(typeof(EstadoConversacion), EstadoConversacion.PorRealizar) },
                new { Estado = (int)EstadoConversacion.EnProceso, DataValueField = Enum.GetName(typeof(EstadoConversacion), EstadoConversacion.EnProceso) },
                new { Estado = (int)EstadoConversacion.Listo, DataValueField = Enum.GetName(typeof(EstadoConversacion), EstadoConversacion.Listo) }
            };

            ViewData["EstadoConversacion"] = new SelectList(estadosConversacion, "Estado", "DataValueField", conversacion.Estado);
            ViewData["EmpresaId"]          = new SelectList(_context.Empresas, "EmpresaId", "Alias", conversacion.EmpresaId);
            return(View(conversacion));
        }
コード例 #24
0
    /// <summary>
    /// Draws one element of the list (ListItemExample)
    /// </summary>
    /// <param name="rect"></param>
    /// <param name="index"></param>
    /// <param name="active"></param>
    /// <param name="focused"></param>
    private void DrawElement(Rect rect, int index, bool active, bool focused)
    {
        Conversacion item = npc.listaConversaciones[index];

        EditorGUI.BeginChangeCheck();

        item.logroConseguido = (Logro)EditorGUI.EnumPopup(new Rect(rect.x, rect.y, rect.width, 18), new GUIContent("Logro Requerido", "Si ha cumplido este logro mostrará este diálogo"), item.logroConseguido);
        EditorGUI.HelpBox(new Rect(rect.x, rect.y + (18 * 2), rect.width, (18)), "Mensaje NPC. Si es un combate lo dirá antes de combatir", MessageType.Info);
        item.texto            = EditorGUI.TextArea(new Rect(rect.x, rect.y + (18 * 3), rect.width, (18 * 4)), item.texto);
        item.tipoConversacion = (TipoConversacion)EditorGUI.EnumPopup(new Rect(rect.x, rect.y + 18, rect.width, 18), new GUIContent("Tipo Conversación"), item.tipoConversacion);
        item.darLogroPorTerminarConversacion = (Logro)EditorGUI.EnumPopup(new Rect(rect.x, rect.y + (18 * 7), rect.width, 18), new GUIContent("Logro al terminar conversacion/combate", "Al terminar la conversación el jugador recibirá este logro"), item.darLogroPorTerminarConversacion);
        item.curarEquipoPokemonDelJugador    = EditorGUI.Toggle(new Rect(rect.x, rect.y + (18 * 8), rect.width, 18), "Curar Equipo Pokemon del Jugador", item.curarEquipoPokemonDelJugador);
        if (item.darLogroPorTerminarConversacion != Logro.NINGUNO)
        {
            item.darItemPorTerminarConversacion = (ItemID)EditorGUI.EnumPopup(new Rect(rect.x, rect.y + (18 * 9), rect.width, 18), new GUIContent("Item al terminar conversación/combate", "Al terminar la conversación recibirá este objeto"), item.darItemPorTerminarConversacion);
            if (item.darItemPorTerminarConversacion != ItemID.NINGUNO)
            {
                item.cantidadDeItems = EditorGUI.IntField(new Rect(rect.x, rect.y + (18 * 10), rect.width, 18), "Cantidad del item anterior", item.cantidadDeItems);
            }
        }


        if (item.tipoConversacion == TipoConversacion.Luchar && item.darLogroPorTerminarConversacion != Logro.NINGUNO)
        {
            EditorGUI.HelpBox(new Rect(rect.x, rect.y + (18 * 11), rect.width, (18)), "Mensaje tras ganar el combate", MessageType.Info);
            item.texto2            = EditorGUI.TextArea(new Rect(rect.x, rect.y + (18 * 12), rect.width, (18 * 4)), item.texto2);
            item.monedasRecompensa = EditorGUI.IntField(new Rect(rect.x, rect.y + (18 * 16), rect.width, 18), "Dinero Recompensa", item.monedasRecompensa);
            item.equipoPokemon     = (EquipoPokemonEntrenador)EditorGUI.ObjectField(new Rect(rect.x, rect.y + (18 * 17), rect.width, 18), item.equipoPokemon, typeof(EquipoPokemonEntrenador), true);
        }
        else if (item.tipoConversacion == TipoConversacion.Luchar)
        {
            EditorGUI.HelpBox(new Rect(rect.x, rect.y + (18 * 11), rect.width, (18 * 3)), "Un NPC que lucha siempre debe dar un logro al terminar, si no se podrá luchar con él repetidas veces", MessageType.Error);
        }

        if (EditorGUI.EndChangeCheck())
        {
            EditorUtility.SetDirty(target);
        }
    }
コード例 #25
0
        public async Task <IActionResult> Edit(int id, [Bind("ConversacionId,RealizadoEl,EmpresaId,Observaciones,Estado")] Conversacion conversacion)
        {
            if (id != conversacion.ConversacionId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(conversacion);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ConversacionExists(conversacion.ConversacionId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            var estadosConversacion = new[]
            {
                new { Estado = (int)EstadoConversacion.PorRealizar, DataValueField = Enum.GetName(typeof(EstadoConversacion), EstadoConversacion.PorRealizar) },
                new { Estado = (int)EstadoConversacion.EnProceso, DataValueField = Enum.GetName(typeof(EstadoConversacion), EstadoConversacion.EnProceso) },
                new { Estado = (int)EstadoConversacion.Listo, DataValueField = Enum.GetName(typeof(EstadoConversacion), EstadoConversacion.Listo) }
            };

            ViewData["EstadoConversacion"] = new SelectList(estadosConversacion, "Estado", "DataValueField", conversacion.Estado);
            ViewData["EmpresaId"]          = new SelectList(_context.Empresas, "EmpresaId", "Alias", conversacion.EmpresaId);
            return(View(conversacion));
        }
コード例 #26
0
        // GET: Chat
        public ActionResult Index()
        {
            if (Session["nombre_usuario"] == null)
            {
                return(RedirectToAction("Index", "Login"));
            }
            List <Conversacion> conversaciones = new List <Conversacion>();
            var conversacion_db = db_chat.manboss_chat.ToList();

            foreach (var chat in conversacion_db)
            {
                Conversacion aux = new Conversacion();
                aux.id    = chat.id;
                aux.fecha = db_mandados.manboss_mandados.Where(x => x.id == chat.mandado).Select(x => x.fecha).FirstOrDefault().ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
                int mandado_cliente = db_mandados.manboss_mandados.Where(x => x.id == chat.mandado).Select(x => x.cliente).FirstOrDefault();
                aux.cliente = db_clientes.manboss_clientes.Where(x => x.id == mandado_cliente).Select(x => x.nombre).FirstOrDefault();
                int mandado_repartidor = db_repartidores.manboss_repartidores.Where(x => x.id == chat.repartidor).Select(x => x.repartidor).FirstOrDefault();
                aux.repartidor = db_usuarios.manboss_usuarios.Where(x => x.id == mandado_repartidor).Select(x => x.nombre).FirstOrDefault();
                conversaciones.Add(aux);
            }
            ViewBag.conversaciones = conversaciones;
            return(View());
        }
コード例 #27
0
        static void Main(string[] args)
        {
            CentralTelefonica cTel = new CentralTelefonica();

            cTel.Registrar("8321234");
            cTel.Registrar("555555");
            cTel.Registrar("6410000");
            cTel.Registrar("666666");
            cTel.Registrar("555555");
            cTel.Registrar("8339999");
            cTel.Registrar("777777");

            cTel.Descolgar("8321234");
            cTel.Marcar("8321234", "555555");
            Console.WriteLine(cTel.EstaSonando("555555")); // debe devolver true
            cTel.Descolgar("555555");

            cTel.Descolgar("6410000");
            cTel.Marcar("6410000", "666666");
            cTel.Descolgar("666666");
            cTel.Descolgar("8339999");
            cTel.Marcar("8339999", "777777");
            IEnumerator e = cTel.EnumeradorDeConversaciones();

            cTel.Colgar("555555");
            cTel.Colgar("8321234");
            cTel.Descolgar("777777");
            while (e.MoveNext())
            {
                Conversacion conv = (Conversacion)e.Current;
                Console.WriteLine(conv.numeroLlamante + " - " +
                                  conv.numeroReceptor);
            }

            // 8321234 - 555555
            // 6410000 - 666666
        }
コード例 #28
0
 public EventoIniciarCombateContraEntrenador(Conversacion conversacion, string nombreNPC)
 {
     Conversacion = conversacion;
     NombreNPC    = nombreNPC;
 }
コード例 #29
0
 public EventoMostrarMensajeConversacion(Conversacion mensaje)
 {
     Conversacion = mensaje;
 }
コード例 #30
0
    public void EjecutarAccion()
    {
        Conversacion ultimaConversacion = null;

        for (int i = 0; i < secuenciaDeAcciones.Count; i++)
        {
            accionActual = secuenciaDeAcciones[i];

            if (accionActual.npc != null && !accionActual.npc.gameObject.activeSelf)
            {
                accionActual.npc.gameObject.SetActive(true);
            }
            switch (accionActual.TipoDeAccion)
            {
            case AccionSequencia.NPC_MoverAPosicionEspecifica:
                ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.MoverHastaPosicion(accionActual.npc.MoverNPC, accionActual.posicion.position));
                break;

            case AccionSequencia.NPC_MoverASuPosicionInicial:
                ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.MoverHastaPosicion(accionActual.npc.MoverNPC, accionActual.npc.PosicionInicial));
                break;

            case AccionSequencia.NPC_MoverHastaElPersonaje:
                ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.MoverHastaPosicion(accionActual.npc.MoverNPC, Personaje.Posicion));
                break;

            case AccionSequencia.NPC_MostrarConversacion:
                NPC npc = accionActual.npc.GetComponent <NPC>();
                if (npc != null && npc.TieneDialogoPendiente())
                {
                    ultimaConversacion = npc.AniadirDialogoASecuencia(ultimaConversacion);
                }
                break;

            case AccionSequencia.NPC_Ocultar:
                ControladorDatos.Instancia.AniadirCorrutinaACola(DesactivarNPC(accionActual.npc.gameObject));
                break;

            case AccionSequencia.Personaje_MoverAPosicionEspecífica:
                ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.MoverHastaPosicion(Personaje.MoverPersonaje, accionActual.posicion.position));
                break;

            case AccionSequencia.Personaje_TeletransportarAPosicionEspecifica:
                ControladorEventos.Instancia.LanzarEvento(new EventoTeletransportarse(accionActual.posicion.position, accionActual.direccion));
                break;

            case AccionSequencia.Personaje_SeguirNPC:
                ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.SeguirObjeto(Personaje.MoverPersonaje, accionActual.npc.MoverNPC), false, "Seguir");
                break;

            case AccionSequencia.Personaje_DejarDeSeguirNPC:
                ControladorDatos.Instancia.AniadirCorrutinaACola(DetenerSeguimiento("Seguir"), false);
                break;

            case AccionSequencia.EjecutarMetodos:
                ControladorDatos.Instancia.AniadirCorrutinaACola(EjecutarEventoUnity(accionActual.eventoUnity));
                break;

            case AccionSequencia.EsperarTiempo:
                ControladorDatos.Instancia.AniadirCorrutinaACola(DetenerTiempo(accionActual.tiempoDeEspera));
                break;

            case AccionSequencia.ReproducirAnimacion:
                ControladorDatos.Instancia.AniadirCorrutinaACola(ReproducirAnimacion(accionActual.animator, accionActual.nombreAnimacionODialogo));
                break;

            case AccionSequencia.CurarEquipoPokemon:
                ControladorDatos.Instancia.AniadirCorrutinaACola(CentroPokemon());
                break;

            case AccionSequencia.MostrarDialogoEspecifico:
                ControladorDatos.Instancia.AniadirCorrutinaACola(UIControlador.Instancia.Dialogo.componentePrincipal.MostrarTextoCorrutina(accionActual.nombreAnimacionODialogo, true));
                break;
            }
        }

        ControladorDatos.Instancia.AniadirCorrutinaACola(Fin(), false);
    }