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);
        }
Example #3
0
        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));
        }
Example #4
0
        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();
            }
        }
Example #6
0
        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);
        }