public void AddCharacterInChannel(string channel, string character) { if (!ChannelsInfo.ContainsKey(channel)) { ChannelsInfo.TryAdd(channel, new ChannelState() { Channel = channel }); } if (!CharactersInfos.ContainsKey(character)) { CharactersInfos.TryAdd(character, new CharacterState() { Character = character }); } var chanInfo = ChannelsInfo.GetValueOrDefault(channel); var charInfo = chanInfo.CharactersInfo.Find(x => x.Character.ToLower() == character.ToLower()); if (charInfo == null) { chanInfo.CharactersInfo.Add(CharactersInfos.GetValueOrDefault(character)); } }
public void RemoveCharacterInChannel(string channel, string character) { var chanInfo = ChannelsInfo.GetValueOrDefault(channel); if (chanInfo != null && chanInfo.CharactersInfo.Any(x => x.Character.ToLower() == character.ToLower())) { chanInfo.CharactersInfo.RemoveAll(x => x.Character.ToLower() == character.ToLower()); } }
public List <CharacterState> GetAllCharactersInChannel(string channel) { var chanInfo = ChannelsInfo.GetValueOrDefault(channel); if (chanInfo != null) { return(chanInfo.CharactersInfo); } else { return(new List <CharacterState>()); } }