示例#1
0
        private void UpdateSeen(IrcUser ircUser, UserSeenStatus.ActivityType activityType, string activityText, string channel)
        {
            if (UsersSeen.ContainsKey(ircUser.NickName))
            {
                UserSeenStatus userSeenStatus = UsersSeen[ircUser.NickName];

                if (userSeenStatus.SeenEvents.ContainsKey(activityType))
                {
                    userSeenStatus.SeenEvents[activityType].ActivityText = activityText;
                    userSeenStatus.SeenEvents[activityType].TimeSeen     = DateTime.Now;
                    userSeenStatus.SeenEvents[activityType].Channel      = channel;
                }
                else
                {
                    userSeenStatus.SeenEvents.Add(activityType, new Action {
                        ActivityText = activityText, TimeSeen = DateTime.Now, Channel = channel
                    });
                }

                //update hostmask
                userSeenStatus.HostMask = $"{ircUser.NickName}!{ircUser.UserName}@{ircUser.HostName}";
            }
            else
            {
                UsersSeen.Add(ircUser.NickName, new UserSeenStatus());
                UserSeenStatus userSeenStatus = UsersSeen[ircUser.NickName];
                userSeenStatus.HostMask = $"{ircUser.NickName}!{ircUser.UserName}@{ircUser.HostName}";
                userSeenStatus.SeenEvents.Add(activityType, new Action {
                    ActivityText = activityText, TimeSeen = DateTime.Now, Channel = channel
                });
            }

            SaveSeen();
        }
示例#2
0
        /// <summary>
        /// Converts the enum to a friendly display value.
        /// </summary>
        /// <remarks>Needed because you can't overide ToString() on an enum.</remarks>
        /// <param name="me"></param>
        /// <returns></returns>
        public static string ToFriendlyString(this UserSeenStatus.ActivityType me)
        {
            switch (me)
            {
            case UserSeenStatus.ActivityType.Chat:
                return("saying");

            case UserSeenStatus.ActivityType.Action:
                return("doing");

            case UserSeenStatus.ActivityType.Join:
                return("joining");

            case UserSeenStatus.ActivityType.Part:
                return("parting");

            case UserSeenStatus.ActivityType.NicknameChange:
                return("changing nickname");

            default:
                throw new ArgumentException("Unknown enum.");
            }
        }