public void Add(string name, T value) { StringUtils.CheckAndLowerStringId(ref name); if (NameToId.ContainsKey(name)) { throw new ArgumentException($"'{name}' item already exists in this collection."); //Should this throw BotErrors too? } ulong id = BotUtils.GenerateUniqueId(IdToValue.ContainsKey); NameToId[name] = id; IdToValue[id] = value; }
public async Task TagGroupAddCommand(string groupName) { groupName = groupName.ToLowerInvariant(); var user = Context.user; var memory = MemorySystem.memory; var globalData = memory.GetData <TagSystem, TagGlobalData>(); var userData = memory[user].GetData <TagSystem, TagUserData>(); if (globalData.tagGroups.Any(g => g.Value.name == groupName)) { throw new BotError($@"Group `{groupName}` already exists. Pick an unique name."); } ulong groupId = BotUtils.GenerateUniqueId(globalData.tagGroups.ContainsKey); //Create the group globalData.tagGroups[groupId] = new TagGroup(user.Id, groupName); //Subscribe the user to it userData.subscribedTagGroups.Add(groupId); }
public async Task TagAddCommand(string tagName, [Remainder] string text) { tagName = tagName.ToLowerInvariant(); var user = Context.user; var server = Context.server; var memory = MemorySystem.memory; var globalData = memory.GetData <TagSystem, TagGlobalData>(); var userData = memory[user].GetData <TagSystem, TagUserData>(); EnsureTagIsNotDefined(tagName); ulong tagId = BotUtils.GenerateUniqueId(globalData.tags.ContainsKey); //Create tag globalData.tags[tagId] = new Tag(user.Id, tagName, text); //Subscribe the user to it if (!userData.subscribedTags.Contains(tagId)) { userData.subscribedTags.Add(tagId); } }