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(); }
/// <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."); } }