public void AddBadge(Badge badge) { if (badge == null) { return; } Badges.Add(badge); }
public void AddBadge(int badgeId) { if (!Badges.Contains(badgeId)) { Badges.Add(badgeId); } HasChanged = true; LastUpdated = DateTime.Now; }
public DomainResponse AssignBadge(Badge badge) { if (Badges.Any(x => x.BadgeId == badge.Id)) { return(DomainResponse.Error("Este miembro ya tiene el badge")); } Badges.Add(new BadgeMember(badge, this)); AddDomainEvent(new AssignedBadgeToMember(this.Id, badge.Id)); return(DomainResponse.Ok()); }
public void LoadSampleData() { if (Scouts.Count() != 0) { return; } Tags.Add(badges[0].Tags[0]); Tags.Add(badges[0].Tags[1]); Tags.Add(badges[1].Tags[0]); Tags.Add(badges[1].Tags[1]); Badges.Add(badges[0]); Badges.Add(badges[1]); Scouts.Add(scouts[0]); Scouts.Add(scouts[1]); //SaveChanges(); }
private void CollectBadges(JObject content) { var badges = content["badge"]; if (badges != null) { foreach (var instance in badges["instances"].Children()) { Badges.Add(new BadgeInfo { BadgeGuid = instance["uid"].Value <string>(), Icon = instance["badge"].Value <string>(), Name = instance["name"].Value <string>(), Description = instance["description"].Value <string>(), CountRequired = instance["maxCount"].Value <int>(), Persistent = instance["persistent"].Value <bool>() ? BadgePersistencyType.Persistent : BadgePersistencyType.NotPersistent, }); } } }
/// <summary> /// Constructor for UserState. /// </summary> /// <param name="ircMessage"></param> public UserState(IrcMessage ircMessage) { Channel = ircMessage.Channel; foreach (var tag in ircMessage.Tags.Keys) { var tagValue = ircMessage.Tags[tag]; switch (tag) { case Tags.Badges: if (tagValue.Contains('/')) { if (!tagValue.Contains(",")) { Badges.Add(new KeyValuePair <string, string>(tagValue.Split('/')[0], tagValue.Split('/')[1])); } else { foreach (var badge in tagValue.Split(',')) { Badges.Add(new KeyValuePair <string, string>(badge.Split('/')[0], badge.Split('/')[1])); } } } break; case Tags.Color: ColorHex = tagValue; break; case Tags.DisplayName: DisplayName = tagValue; break; case Tags.EmotesSets: EmoteSet = tagValue; break; case Tags.Mod: IsModerator = Helpers.ConvertToBool(tagValue); break; case Tags.Subscriber: IsSubscriber = Helpers.ConvertToBool(tagValue); break; case Tags.UserType: switch (tagValue) { case "mod": UserType = UserType.Moderator; break; case "global_mod": UserType = UserType.GlobalModerator; break; case "admin": UserType = UserType.Admin; break; case "staff": UserType = UserType.Staff; break; default: UserType = UserType.Viewer; break; } break; default: // This should never happen, unless Twitch changes their shit Console.WriteLine($"Unaccounted for [UserState]: {tag}"); break; } } if (string.Equals(ircMessage.User, Channel, StringComparison.InvariantCultureIgnoreCase)) { UserType = UserType.Broadcaster; } }
/// <summary> /// Constructor for UserState. /// </summary> /// <param name="ircString"></param> public UserState(string ircString) { foreach (string part in ircString.Split(';')) { // The 'user-type' section does not have a ; suffix, we will account for this outside of for loop, we should exit loop immediately if (part.Contains(" :tmi.twitch.tv USERSTATE ")) { break; } if (!part.Contains("=")) { // This should never happen, unless Twitch changes their shit. Console.WriteLine($"Unaccounted for [UserState]: {part}"); continue; } switch (part.Split('=')[0]) { case "@badges": string badges = part.Split('=')[1]; if (badges.Contains('/')) { if (!badges.Contains(",")) { Badges.Add(new KeyValuePair <string, string>(badges.Split('/')[0], badges.Split('/')[1])); } else { foreach (string badge in badges.Split(',')) { Badges.Add(new KeyValuePair <string, string>(badge.Split('/')[0], badge.Split('/')[1])); } } } break; case "color": ColorHex = part.Split('=')[1]; break; case "display-name": DisplayName = part.Split('=')[1]; break; case "emote-sets": EmoteSet = part.Split('=')[1]; break; case "mod": Moderator = part.Split('=')[1] == "1"; break; case "subscriber": Subscriber = part.Split('=')[1] == "1"; break; default: // This should never happen, unless Twitch changes their shit Console.WriteLine($"Unaccounted for [UserState]: {part.Split('=')[0]}"); break; } } // Lets deal with that user-type switch (ircString.Split('=')[6].Split(' ')[0]) { case "mod": UserType = Enums.UserType.Moderator; break; case "global_mod": UserType = Enums.UserType.GlobalModerator; break; case "admin": UserType = Enums.UserType.Admin; break; case "staff": UserType = Enums.UserType.Staff; break; default: UserType = Enums.UserType.Viewer; break; } Channel = ircString.Split(' ')[3].Replace("#", ""); if (DisplayName.ToLower() == Channel.ToLower()) { UserType = Enums.UserType.Broadcaster; } }