Exemplo n.º 1
0
        /// <summary>
        /// Fügt ein Item hinzu oder ersetzt das vorhandene
        /// </summary>
        /// <param name="mf"></param>
        /// <returns></returns>
        public static Boolean AddItem(MP3File.MP3File mf)
        {
            try
            {
                MP3File.MP3File ent = RatedListItems.Find(x => x.Pfad == mf.Pfad);
                if (ent == null)
                {
                    //nicht gefunden daher zufügen
                    RatedListItems.Add(mf);
                }
                else
                {
                    RatedListItems.Remove(ent);
                    RatedListItems.Add(mf);
                }
                WriteData();
            }
            catch
            {
                return(false);
            }

            return(false);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Überprüft ob die übergeben ConditionGroup in den Feldern enthalten ist.
        /// </summary>
        /// <param name="cog">Liste der Conditionobjekctgroup</param>
        /// <param name="mp3">Zu prüfender Song</param>
        /// <returns></returns>
        static public Boolean Ceck(ConditionObjectGroup cog, MP3File.MP3File mp3)
        {
            Boolean retval = false;

            bool[] condition = new bool[cog.ConditionObjectList.Count];
            int    counter   = 0;

            //Für jedes Objekt prüfen, ob die Conditon gegeben ist und setzen.
            foreach (ConditionObject b in cog.ConditionObjectList)
            {
                string checker = String.Empty;

                switch (b.Feld)
                {
                case "Album":
                    checker = mp3.Album;
                    break;

                case "Artist":
                    checker = mp3.Artist;
                    break;

                case "Verlag":
                    checker = mp3.Verlag;
                    break;

                case "Typ":
                    checker = mp3.Typ;
                    break;

                case "Bewertung":
                    checker = mp3.Bewertung;
                    break;

                case "BewertungMine":
                    checker = mp3.BewertungMine;
                    break;

                case "Gelegenheit":
                    checker = mp3.Gelegenheit.ToString();
                    break;

                case "Genre":
                    checker = mp3.Genre;
                    break;

                case "Geschwindigkeit":
                    checker = mp3.Geschwindigkeit.ToString();
                    break;

                case "Jahr":
                    checker = mp3.Jahr;
                    break;

                case "Komponist":
                    checker = mp3.Komponist;
                    break;

                case "Lyric":
                    checker = mp3.Lyric;
                    break;

                case "Stimmung":
                    checker = mp3.Stimmung.ToString();
                    break;

                case "Titel":
                    checker = mp3.Titel;
                    break;

                case "Tracknumber":
                    checker = mp3.Tracknumber.ToString(CultureInfo.InvariantCulture);
                    break;

                case "Aufwecken":
                    checker = Convert.ToString(mp3.Aufwecken);
                    break;

                case "ArtistPlaylist":
                    checker = Convert.ToString(mp3.ArtistPlaylist);
                    break;
                }

                /* Wenn das Feld gefunden wurde, wird nun geprüft, welcher Vergleichsoperator genomen wurde und
                 * sollte dieser entsprechen wird die condition auf true gesetzt.
                 */
                int ch;
                int wert;
                if (b.Wert == null)
                {
                    b.Wert = String.Empty;
                }
                switch (b.Operator)
                {
                case FieldOperator.Contains:
                    if (!String.IsNullOrEmpty(b.Wert) && b.Wert.Contains(","))
                    {
                        string[] k = b.Wert.Split(',');
                        condition[counter] = false;
                        foreach (string con in k)
                        {
                            if (checker.ToLower().Contains(con.TrimStart().ToLower()))
                            {
                                condition[counter] = true;
                                break;
                            }
                        }
                    }
                    else
                    {
                        condition[counter] = checker.ToLower().Contains(b.Wert.ToLower());
                    }
                    break;

                case FieldOperator.Equal:
                    condition[counter] = checker == b.Wert;

                    break;

                case FieldOperator.NonEqual:
                    condition[counter] = checker != b.Wert;
                    break;

                case FieldOperator.StartsWith:
                    if (!String.IsNullOrEmpty(b.Wert) && b.Wert.Contains(","))
                    {
                        string[] k = b.Wert.Split(',');
                        condition[counter] = false;
                        foreach (string con in k)
                        {
                            if (checker.ToLower().StartsWith(con.TrimStart().ToLower()))
                            {
                                condition[counter] = true;
                                break;
                            }
                        }
                    }
                    else
                    {
                        condition[counter] = !checker.ToLower().StartsWith(b.Wert.ToLower());
                    }
                    break;

                case FieldOperator.EndWith:
                    if (!String.IsNullOrEmpty(b.Wert) && b.Wert.Contains(","))
                    {
                        string[] k = b.Wert.Split(',');
                        condition[counter] = false;
                        foreach (string con in k)
                        {
                            if (checker.ToLower().EndsWith(con.TrimStart().ToLower()))
                            {
                                condition[counter] = true;
                                break;
                            }
                        }
                    }
                    else
                    {
                        condition[counter] = !checker.ToLower().EndsWith(b.Wert.ToLower());
                    }
                    break;

                case FieldOperator.ContainsNot:
                    if (!String.IsNullOrEmpty(b.Wert) && b.Wert.Contains(","))
                    {
                        string[] k = b.Wert.Split(',');
                        condition[counter] = true;
                        foreach (string con in k)
                        {
                            if (checker.ToLower().Contains(con.TrimStart().ToLower()))
                            {
                                condition[counter] = false;
                                break;
                            }
                        }
                    }
                    else
                    {
                        condition[counter] = !checker.ToLower().Contains(b.Wert.ToLower());
                    }
                    break;

                case FieldOperator.No:
                    condition[counter] = checker.ToLower() == "false";
                    break;

                case FieldOperator.Yes:
                    condition[counter] = checker.ToLower() == "true";
                    break;

                case FieldOperator.Bigger:
                    try
                    {
                        ch   = Convert.ToInt16(checker);
                        wert = Convert.ToInt16(b.Wert);
                        if (ch > wert)
                        {
                            condition[counter] = true;
                        }
                        else
                        {
                            condition[counter] = false;
                        }
                    }
                    catch
                    {
                        condition[counter] = false;
                    }
                    break;

                case FieldOperator.Smaler:
                    try
                    {
                        ch   = Convert.ToInt16(checker);
                        wert = Convert.ToInt16(b.Wert);
                        if (ch < wert)
                        {
                            condition[counter] = true;
                        }
                        else
                        {
                            condition[counter] = false;
                        }
                    }
                    catch
                    {
                        condition[counter] = false;
                    }
                    break;
                }


                counter++;
            }
            //CombineOperator prüfen.
            switch (cog.CombineOperator)
            {
            case CombineOperator.And:
                foreach (bool c in condition)
                {
                    if (c == false)
                    {
                        retval = false;
                        break;
                    }
                    retval = true;
                }
                break;

            case CombineOperator.Or:
                foreach (bool c in condition)
                {
                    if (c)
                    {
                        retval = true;
                        break;
                    }
                }
                break;
            }
            return(retval);
        }