Beispiel #1
0
        public ICollection <string> GetMergedList()
        {
            //TODO: einstellung ob alle oder nur freunde
            GreetType gt = GreetType.All;

            IEnumerable <string> greetUserList = new List <string>();

            switch (gt)
            {
            case GreetType.All:
                // Alle aus dem Chat, die noch nicht gegrüßt wurden
                greetUserList = UserList.Where(u => !greetedList.Contains(u)).OrderBy(u => u);

                break;

            case GreetType.Friends:
                // Nur Freunde aus dem Chat, die noch nicht gegrüßt wurden
                greetUserList = UserList.Where(u => FriendList.Contains(u) && !greetedList.Contains(u));

                break;
            }

            // Emote davor setzen
            //TODO: bei Freunden gesondertes Emote verwenden, wenn vorhanden
            ICollection <string> greetList = new List <string>();

            foreach (string user in greetUserList)
            {
                string emote = standardEmote;

                if (FriendList.Contains(user))
                {
                    string friendEmote = UserAdmin.GetFriendEmote(user);
                    if (!string.IsNullOrWhiteSpace(friendEmote))
                    {
                        emote = friendEmote;
                    }
                }
                greetList.Add(string.Format("{0} {1}", emote, user));
            }

            ICollection <string> result = StringUtils.MergeByTrimSize(greetList, 500);

            // Gegrüßte der Gegrüßtenliste hinzufügen
            greetUserList.ToList().ForEach(g => GreetedList.Add(g));

            return(result);
        }