コード例 #1
0
        public async Task UpdateChannelSystemIsModerator(string channelName, bool systemIsModerator)
        {
            var model = new UpdateSystemIsModeratorStatusModel {
                SystemIsModerator = systemIsModerator
            };

            var channel = await apiGateway.Post <ChannelModel, UpdateSystemIsModeratorStatusModel>(model, "channels", routeValues : new string[] { channelName, "systemIsModerator" }).ConfigureAwait(false);

            var existingChannel = Channels.Find(x => string.Equals(x.ChannelName, channelName, StringComparison.OrdinalIgnoreCase));

            if (existingChannel != null)
            {
                Channels.Remove(existingChannel);
                Channels.Add(channel);
            }

            var existingChannelWithoutUser = ChannelsWithoutUser.Find(x => string.Equals(x.ChannelName, channelName, StringComparison.OrdinalIgnoreCase));

            if (existingChannelWithoutUser != null)
            {
                ChannelsWithoutUser.Remove(existingChannelWithoutUser);
                ChannelsWithoutUser.Add(channel);
            }

            NotifyStateChanged();
        }
コード例 #2
0
        public async Task UpdateTag(Guid tagId, string tagName, string tagDescription)
        {
            if (!userService.IsUserAdmin)
            {
                return;
            }

            var model = new UpdateTagModel {
                TagId = tagId, TagName = tagName, TagDescription = tagDescription
            };

            var updatedTag = await apiGateway.Post <TagModel, UpdateTagModel>(model, "tags").ConfigureAwait(false);

            if (updatedTag != null)
            {
                var existingTag = Tags.Find(x => x.TagId == tagId);
                if (existingTag != null)
                {
                    Tags.Remove(existingTag);
                }

                Tags.Add(updatedTag);

                NotifyStateChanged();
            }
        }
コード例 #3
0
        public async Task AddUserLinkToSuspension(Guid suspensionId, string twitchUsername, string reasonForLink)
        {
            var result = await apiGateway.Post <SuspensionModel, AddUserLinkToSuspensionModel>(
                new AddUserLinkToSuspensionModel { Username = twitchUsername, LinkUserReason = reasonForLink },
                "suspensions",
                routeValues : new string[] { suspensionId.ToString(), "userlink" }).ConfigureAwait(false);

            UpdateState(result);
        }
        public async Task UpdateSuspensionValidity(Guid suspensionId, bool invalidate, string invalidationReason = "")
        {
            var result = await apiGateway.Post <SuspensionModel, MarkSuspensionValidityModel>(
                new MarkSuspensionValidityModel { Invalidate = invalidate, InvalidationReason = invalidationReason },
                "suspensions",
                routeValues : new string[] { suspensionId.ToString(), "validity" }).ConfigureAwait(false);

            CurrentInvalidationReason = "";

            UpdateState(result);
        }
コード例 #5
0
 public async Task ManuallyInvokeRuleCheck(string twitchUsername)
 {
     var requestModel = new ManuallyRunRuleCheckModel {
         TwitchUsername = twitchUsername
     };
     await apiGateway.Post(requestModel, "channels", routeValues : new string[] { CurrentlySelectedChannel, "users", "ruleCheck" }).ConfigureAwait(false);
 }
コード例 #6
0
        public async Task EnableDiscordNotifications(ulong discordUserId)
        {
            if (User == null)
            {
                return;
            }

            await apiGateway.Post(new EnableDiscordForUserModel { DiscordUserId = discordUserId }, "Users", routeValues : new string[] { User.Id.ToString(), "discord" }).ConfigureAwait(false);

            User.EnableDiscord(discordUserId);
        }
コード例 #7
0
 public async Task UpdateChannelState(bool shouldListen)
 {
     await apiGateway.Post(new ChannelModel { ChannelName = CurrentlySelectedChannelName, ShouldListen = shouldListen }, "channels").ConfigureAwait(false);
 }