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(); }
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(); } }
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); }
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); }
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); }
public async Task UpdateChannelState(bool shouldListen) { await apiGateway.Post(new ChannelModel { ChannelName = CurrentlySelectedChannelName, ShouldListen = shouldListen }, "channels").ConfigureAwait(false); }