private async Task SuspensionsHub_SuspensionUpdated(object _, SuspensionUpdatedEventArgs args) { if (Suspensions.Any(x => x.SuspensionId == args.SuspensionId)) { var qParam = new QueryParam("suspensionId", args.SuspensionId.ToString()); var newSuspension = await apiGateway.Get <SuspensionModel>("suspensions", queryParams : qParam).ConfigureAwait(false); UpdateState(newSuspension); } }
private async Task FetchChannels() { Channels = null; ChannelsWithoutUser = null; LockedChannels = null; Channels = await apiGateway.Get <List <ChannelModel> >("Channels").ConfigureAwait(false); ChannelsWithoutUser = await apiGateway.Get <List <ChannelModel> >("Channels", routeValues : new string[] { "noUser" }).ConfigureAwait(false); LockedChannels = await apiGateway.Get <List <ChannelModel> >("Channels", routeValues : new string[] { "locked" }).ConfigureAwait(false); }
private async Task <UserInformation> CreateUserFromJwtToken(string jwtToken) { if (string.IsNullOrEmpty(jwtToken)) { return(null); } var jwt = new JwtSecurityToken(jwtToken); var uniqueName = jwt.Claims.FirstOrDefault(x => x.Type == "unique_name"); var twitchUsername = jwt.Claims.FirstOrDefault(x => x.Type == CustomClaimTypes.TwitchUsername); if (!Guid.TryParse(uniqueName?.Value, out var userId)) { return(null); } var expires = jwt.ValidTo; if (expires <= DateTime.UtcNow) { await TryLogout().ConfigureAwait(false); return(null); } var roles = jwt.Claims.Where(x => x.Type == "role").Select(x => x.Value).ToList(); var userInformation = await apiGateway.Get <UserModel>("Users", routeValues : new string[] { userId.ToString() }).ConfigureAwait(false); return(new UserInformation(userId, roles, expires, twitchUsername?.Value, userInformation.HasDiscordNotificationsEnabled, userInformation.DiscordUserId)); }
private async Task SuspensionsHub_SuspensionUpdated(object _, SuspensionUpdatedEventArgs args) { if (!string.Equals(CurrentlySelectedChannel, args.ChannelOfOrigin, StringComparison.OrdinalIgnoreCase)) { return; } var qParam = new QueryParam("suspensionId", args.SuspensionId.ToString()); var updatedSuspension = await apiGateway.Get <SuspensionModel>("suspensions", queryParams : qParam).ConfigureAwait(false); if (updatedSuspension == null) { return; } var existingSuspension = Suspensions.Find(x => x.SuspensionId == args.SuspensionId); Suspensions.Remove(existingSuspension); Suspensions.Add(updatedSuspension); NotifyStateChanged(); }
private async Task SuspensionsHubSignalRClient_OnSuspensionUpdated(object _, SuspensionUpdatedEventArgs e) { if (string.Equals(e.ChannelOfOrigin, CurrentlySelectedChannel, StringComparison.OrdinalIgnoreCase)) { UserRulesExceededModels = await apiGateway.Get <List <UserRulesExceededModel> >("channels", routeValues : new string[] { CurrentlySelectedChannel, "channelRules", "exceeded" }).ConfigureAwait(false); NotifyStateChanged(); } }
public async Task SearchForUser(string username) { UserReport = null; UserReportLookupError = ""; var qParam = new QueryParam("username", username); try { UserReport = await apiGateway.Get <UserReportModel>("UserReports", queryParams : qParam).ConfigureAwait(false); if (UserReport == null) { UserReportLookupError = "No user found with this name"; } } catch (Exception ex) { UserReportLookupError = ex.Message; } NotifyStateChanged(); }
public async Task Initialize() { SystemReportModel = await apiGateway.Get <SystemReportModel>("system", routeValues : new string[] { "report" }).ConfigureAwait(false); NotifyStateChanged(); }
public async Task Initialize() { Tags = await apiGateway.Get <List <TagModel> >("tags").ConfigureAwait(false) ?? new List <TagModel>(); NotifyStateChanged(); }
private async Task FetchChannel() { var channelParameter = new QueryParam("channelName", CurrentlySelectedChannelName); Channel = await apiGateway.Get <ChannelModel>("channels", queryParams : new QueryParam[] { channelParameter }).ConfigureAwait(false); }