Beispiel #1
0
        private Dictionary <string, Dictionary <int, int> > GetEmojiInfoTotal(IEnumerable <Message> inMessages)
        {
            var result = new Dictionary <string, Dictionary <int, int> >();

            foreach (var message in inMessages)
            {
                var enumerator = StringInfo.GetTextElementEnumerator(message.Text);
                while (enumerator.MoveNext())
                {
                    var textElement = enumerator.GetTextElement();
                    if (emojiService.TryGetEmoji(textElement, out Emoji emoji))
                    {
                        emoji = emoji.FullyQualified;

                        if (!result.TryGetValue(emoji.CodePoints, out Dictionary <int, int> forSenders))
                        {
                            result.Add(emoji.CodePoints, forSenders = new Dictionary <int, int>());
                        }

                        if (!forSenders.TryGetValue(message.SenderId, out int count))
                        {
                            forSenders.Add(message.SenderId, count = 0);
                        }

                        count++;
                        forSenders[message.SenderId] = count;
                    }
                }
            }

            return(result);
        }