private IntelliTwitchUser CreateNewUser(string[] userInfo, int userID) { var user = new IntelliTwitchUser(); //We already parsed out the user-id from the message, no need to relocate it. So we just pass it along. user.ID = userID; user.UserName = IntelliTwitchStringParser.GetDisplayName(userInfo); user.UserNameColor = IntelliTwitchStringParser.GetUserNameColor(userInfo); user.IsSubscriber = IntelliTwitchStringParser.GetSubscriberStatus(userInfo); user.IsTurbo = IntelliTwitchStringParser.GetTurboStatus(userInfo); user.IsChannelMod = IntelliTwitchStringParser.GetChannelModStatus(userInfo); user.UserTypeID = FindUserType(IntelliTwitchStringParser.GetUserType(userInfo)); user.joinDate = GetCurrentUtcTime(); CreateUser(user); return(user); }
/// <summary> /// Updates a user in the database. /// Compares the stored twitch user with the info recieved from twitch. /// Use GetUser() unless you want to handle this yourself. /// </summary> /// <param name="user"></param> /// <param name="userInfo"></param> /// <returns></returns> public IntelliTwitchUser UpdateUser(IntelliTwitchUser user, string[] userInfo) { //Compare old user values, with new userInfo //Update if they are different var update = false; //TODO: Check if twitch user names can change easily, might be unneccessary if (user.UserName != IntelliTwitchStringParser.GetDisplayName(userInfo)) { user.UserName = IntelliTwitchStringParser.GetDisplayName(userInfo); update = true; } if (user.UserNameColor != IntelliTwitchStringParser.GetUserNameColor(userInfo)) { user.UserNameColor = IntelliTwitchStringParser.GetUserNameColor(userInfo); update = true; } if (user.IsSubscriber != IntelliTwitchStringParser.GetSubscriberStatus(userInfo)) { user.IsSubscriber = IntelliTwitchStringParser.GetSubscriberStatus(userInfo); update = true; } if (user.IsTurbo != IntelliTwitchStringParser.GetTurboStatus(userInfo)) { user.IsTurbo = IntelliTwitchStringParser.GetTurboStatus(userInfo); update = true; } if (user.IsChannelMod != IntelliTwitchStringParser.GetChannelModStatus(userInfo)) { user.IsChannelMod = IntelliTwitchStringParser.GetChannelModStatus(userInfo); update = true; } if (update) { _connection.Update(user); } return(user); }