Ejemplo n.º 1
0
 public void AddBadge(Badge badge)
 {
     if (badge == null)
     {
         return;
     }
     Badges.Add(badge);
 }
Ejemplo n.º 2
0
        public void AddBadge(int badgeId)
        {
            if (!Badges.Contains(badgeId))
            {
                Badges.Add(badgeId);
            }

            HasChanged  = true;
            LastUpdated = DateTime.Now;
        }
Ejemplo n.º 3
0
 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());
 }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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,
                    });
                }
            }
        }
Ejemplo n.º 6
0
        /// <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;
            }
        }
Ejemplo n.º 7
0
        /// <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;
            }
        }