Exemple #1
0
        private ObservableCollection <EmoEmotion> ProcessEmotions(EmotionScores scores, EmoFace emoface)
        {
            var emotionList = new ObservableCollection <EmoEmotion>();
            var properties  = scores.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
            //var filterProperties = properties.Where(p => p.PropertyType == typeof(float));
            var filterProperties = from p in properties
                                   where p.PropertyType == typeof(float)
                                   select p;

            var emoType = EmoEmotionEnum.Undetermined;

            foreach (var prop in filterProperties)
            {
                if (!Enum.TryParse <EmoEmotionEnum>(prop.Name, out emoType))
                {
                    emoType = EmoEmotionEnum.Undetermined;
                }

                var emoEmotion = new EmoEmotion();
                emoEmotion.Score       = (float)prop.GetValue(scores);
                emoEmotion.EmotionType = emoType;
                emoEmotion.Face        = emoface;

                emotionList.Add(emoEmotion);
            }

            return(emotionList);
        }
        private ObservableCollection <EmoEmotion> ProcessEmotions(EmotionScores scores, EmoFace vFace)
        {
            ObservableCollection <EmoEmotion> lEmotion = new ObservableCollection <EmoEmotion>();

            var vProperties       = scores.GetType().GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
            var vFilterProperties = vProperties.Where(x => x.PropertyType == typeof(float));

            var vEmoType = EmoEmotionEnum.Undertermined;

            foreach (var prop in vFilterProperties)
            {
                if (!Enum.TryParse <EmoEmotionEnum>(prop.Name, out vEmoType))
                {
                    vEmoType = EmoEmotionEnum.Undertermined;
                }

                var vEmotion = new EmoEmotion();
                vEmotion.Score       = (float)prop.GetValue(scores);
                vEmotion.EmotionType = vEmoType;
                //vEmotion.EmoFaceId = vFace.Id;
                vEmotion.Face = vFace;

                lEmotion.Add(vEmotion);
            }

            return(lEmotion);
        }
Exemple #3
0
        private ObservableCollection <EmoEmotion> ProcessEmotions(EmotionScores scores, EmoFace emoface)
        {
            //C# es un lenguaje capaz de autodescribirse, es capaz de describir cada uno de los objetos que tiene, sabe como estan construidos cada uno de esos objetos(REFLECTION).
            var emotionList      = new ObservableCollection <EmoEmotion>();
            var properties       = scores.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance); //devuelve toda la informacion del tipo de datos que tiene esta variable
            var filterProperties = properties.Where(p => p.PropertyType == typeof(float));                      //En toda Coleccion se puede meter Linq. | Quiero todas las propiedades de tipo float.
                                                                                                                //from p in properties where p.PropertyType == typeof(float) select p;

            var emotype = EmoEmotionEnum.Undetermined;                                                          //variable auxiliar

            foreach (var prop in filterProperties)
            {
                if (!Enum.TryParse <EmoEmotionEnum>(prop.Name, out emotype))
                {
                    emotype = EmoEmotionEnum.Undetermined;
                }

                var emoEmotion = new EmoEmotion();
                emoEmotion.Score       = (float)prop.GetValue(scores);
                emoEmotion.EmotionType = emotype;
                emoEmotion.Face        = emoface;
                emotionList.Add(emoEmotion);
            }

            return(emotionList);
        }
Exemple #4
0
        private ObservableCollection <Models.Emotion> ProccesEmotions(EmotionScores emotionScores, Face face)
        {
            var emotionList = new ObservableCollection <Models.Emotion>();

            var properties       = emotionScores.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
            var filterProperties = properties.Where(p => p.PropertyType == typeof(float));

            var emotionType = EmotionEnum.Undeterminated;

            foreach (var prop in filterProperties)
            {
                if (!Enum.TryParse <EmotionEnum>(prop.Name, out emotionType))
                {
                    emotionType = EmotionEnum.Undeterminated;
                }
                var emotion = new Models.Emotion
                {
                    Score       = (float)prop.GetValue(emotionScores),
                    EmotionType = emotionType,
                    Face        = face
                };

                emotionList.Add(emotion);
            }

            return(emotionList);
        }
Exemple #5
0
        public static Tuple <string, float> MainEmotion(this EmotionScores s, bool UseNeutral = false)
        {
            float  m = 0;
            string e = "";

            foreach (var p in s.GetType().GetProperties())
            {
                if (!UseNeutral && p.Name == "Neutral")
                {
                    continue;
                }
                if ((float)p.GetValue(s) > m)
                {
                    m = (float)p.GetValue(s);
                    e = p.Name;
                }
            }
            return(new Tuple <string, float>(e, m));
        }
Exemple #6
0
        // Se crea el metodo para
        private ObservableCollection <EmoEmotion> ProcessEmotions(EmotionScores scores, EmoFace emoface)
        {
            // Se instancia una variable lista de EmoEmotion para Almacenar los valores a las emociones
            var emotionList = new ObservableCollection <EmoEmotion>();

            // con GetType se muestro toda la informacion que tiene scores,Con GetProperties Me devuelve todas
            // las propiedades de scores y en los parametros de Getproperties para que no me devuelva todas las
            // las propiedades le especifico cuales quiero traer. El | es un or binario ya que estamos haciendo
            // intercambio con una enumeracion. El Instance es para que no me devuelva los campos estaticos
            var properties = scores.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
            // Se filtran los valores recividos que sean de tipo float de properties
            var filterProperties = properties.Where(p => p.PropertyType == typeof(float));
            // Se Crea una variable para los valores que no estan definidos para que se almacenen en el
            var emotype = EmoEmotionEnum.Undetermined;

            // Se recorre filterProperties para irle agregando los valores de puntuacion
            foreach (var prop in filterProperties)
            {
                // Se convierte los parametros de la Emumeracion EmoEmotionEnum EN un valor equivalente
                // a un Enumerable y si no los convierte el valor recivido se convierte en
                if (!Enum.TryParse <EmoEmotionEnum>(prop.Name, out emotype))
                {
                    emotype = EmoEmotionEnum.Undetermined;
                }

                // Se instancia EmoEmotion
                var emoEmotion = new EmoEmotion();
                // Se le agregan los valores a los atributos de EmoEmotion
                emoEmotion.Score = (float)prop.GetValue(scores);
                // Se le almacena un valor Indeterminado a emoEmotion.EmotionType
                emoEmotion.EmotionType = emotype;
                // Se le almacenan las propiedades definidas en el metodo anterior
                emoEmotion.Face = emoface;
                // Se va llenando la lista con los valores almacenados
                emotionList.Add(emoEmotion);
            }
            // Se returno la Lista que se lleno
            return(emotionList);
        }
Exemple #7
0
        /*
         * La funcion extraera cada emocion de la variable scores para transformarla en un
         * array de EmoEmotion
         * scores: es la respuesta con cada valor de emociones en una sola variable
         *
         */
        private ObservableCollection <EmoEmotion> ProcessEmotions(EmotionScores scores, EmoFace emoFace)
        {
            // se usara reflection
            var emotionList = new ObservableCollection <EmoEmotion>();

            // Obtengo los campos del objeto
            // BindingFlags.Public: para obtener solo las propiedades publicas
            // BindingFlags.Instance: Para que no me devuelva los campos estaticos
            var properties = scores.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

            // como properties es collection, puedo usar linq
            //var filterProperties = properties.Where(p => p.PropertyType == typeof(float));
            var filterProperties = from p in properties
                                   where p.PropertyType == typeof(float)
                                   select p;

            // variable que se usara para tener el tipo de emotion
            var emotype = EmoEmotionEnum.Undetermined;

            foreach (var prop in filterProperties)
            {
                // trato de determinar el valor de la enumeracion
                if (!Enum.TryParse <EmoEmotionEnum>(prop.Name, out emotype))
                {
                    emotype = EmoEmotionEnum.Undetermined;
                }

                var emoEmotion = new EmoEmotion();
                // obtengo el valor de la emotion
                emoEmotion.Score       = (float)prop.GetValue(scores);
                emoEmotion.EmotionType = emotype;
                emoEmotion.Face        = emoFace;

                emotionList.Add(emoEmotion);
            }

            return(emotionList);
        }
        private ObservableCollection <EmoEmotion> ProcessEmotions(EmotionScores scores, EmoFace emoface)
        {
            //Creamos una lista observable de emociones
            var emotionList = new ObservableCollection <EmoEmotion>();

            //Devuelve el tipo y las propiedades publicas y que son parte de una instancia
            var properties = scores.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

            //Las propiedades son generias, las filtramos por el tipo Float que es el tipo
            //de dato que necesitamos de Scores
            var filterProperties = properties.Where(p => p.PropertyType == typeof(float));

            //Incia la iteracion
            var emotype = EmoEmotionEnum.Undetermined;

            foreach (var prop in filterProperties)
            {
                //este metodo recibe dos parametros, 1 un string de valor, y otro un valor de salida del Enum
                if (!Enum.TryParse <EmoEmotionEnum>(prop.Name, out emotype))
                {
                    emotype = EmoEmotionEnum.Undetermined;
                }

                //Instancia del EmoEmotion
                var emoEmotion = new EmoEmotion();
                //Agregamos el valor que se itera de las filtraciones
                emoEmotion.Score       = (float)prop.GetValue(scores);
                emoEmotion.EmotionType = emotype;
                emoEmotion.Face        = emoface;

                //Lo agregamos
                emotionList.Add(emoEmotion);
            }

            //Retornamos la lista
            return(emotionList);
        }
Exemple #9
0
        public static EmotionScores AvEmotions(this IEnumerable <EmotionScores> S)
        {
            if (S.Count() == 0)
            {
                return(null);
            }
            if (S.Count() == 1)
            {
                return(S.First());
            }

            var E = new EmotionScores();

            foreach (var x in E.GetType().GetProperties())
            {
                float f = 0; int c = 0;
                foreach (var z in S)
                {
                    c++; f += (float)x.GetValue(z);
                }
                x.SetValue(E, f / c);
            }
            return(E);
        }
        private ObservableCollection <EmoEmotion> ProcessEmotion(EmotionScores scores, EmoFace emoFace)
        {
            var emotionList = new ObservableCollection <EmoEmotion>();

            // Reflection
            // permite aaceder a los metodos propios de los componentes en tiempo de ejecucion
            // (que sean publicos o propios de la instancia)
            // traer todas las propiedades
            var properties = scores.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

            // linq para hacer query en una lista y filtrar tofas las propiedades float
            // var filterProperties = from p in properties where p.PropertyType == typeof(float) select p;

            var filterProperties = properties.Where(p => p.PropertyType == typeof(float));

            var emoType = EmoEmotionEnum.Undertermined;

            foreach (var prop in filterProperties)
            {
                // asignar el valor en un enum
                // convierte el parametro en una opcion del enumerador ENUM -> retorna booleano


                Enum.TryParse <EmoEmotionEnum>(prop.Name, out emoType);
                var emoEmotion = new EmoEmotion()
                {
                    Score       = (float)prop.GetValue(scores),
                    EmotionType = emoType,
                    Face        = emoFace
                };

                emotionList.Add(emoEmotion);
            }

            return(emotionList);
        }