public async void Refresh()
        {
            var refreshToken = _getSettingRepository.Get <string>("StreamLabsRefreshToken");

            if (string.IsNullOrWhiteSpace(refreshToken))
            {
                return;
            }

            var vals = new Dictionary <string, string>
            {
                { "grant_type", "refresh_token" },
                { "client_id", _secretService.GetSecret <string>("StreamLabsClientId") },
                { "client_secret", _secretService.GetSecret <string>("StreamLabsClientSecret") },
                { "redirect_uri", "localhost" },
                { "refresh_token", refreshToken }
            };

            var encodedContent   = new FormUrlEncodedContent(vals);
            var client           = new HttpClient();
            var getTokenResponse = await client.PostAsync("https://streamlabs.com/api/v1.0/token", encodedContent);

            var tokenJsonString = await getTokenResponse.Content.ReadAsStringAsync();

            var tokenModel = JsonConvert.DeserializeObject <StreamLabsTokenIntermediate>(tokenJsonString);

            _setOrCreateSettingRepository.Set("StreamLabsAccessToken", tokenModel.Token);
            _setOrCreateSettingRepository.Set("StreamLabsRefreshToken", tokenModel.RefreshToken);
        }
Example #2
0
        public void Save(List <StreamLabsDonationIntermediate> donations)
        {
            var latestDonationId = donations.OrderByDescending(d => d.CreateAt).FirstOrDefault()?.DonationId ?? 0;

            if (latestDonationId == 0)
            {
                return;
            }

            var groupedDonations = donations
                                   .OrderByDescending(d => d.CreateAt)
                                   .GroupBy(d => d.Name.ToLower())
                                   .Select(d => new
            {
                name   = d.First().Name.ToLower(),
                amount = (int)Math.Round(d.Sum(rec => rec.Amount) * 100)
            });

            using (var context = _chatbotContextFactory.Create())
            {
                foreach (var donation in groupedDonations)
                {
                    var user = context.GetOrCreateUser(donation.name);
                    user.TotalDonated += donation.amount;
                }

                context.SaveChanges();
            }

            _setOrCreateSettingRepository.Set("LatestDonationId", latestDonationId.ToString());
        }
Example #3
0
        public bool UpdatePlaylistState(PlaylistState state)
        {
            switch (state)
            {
            case PlaylistState.VeryClosed:
                _setOrCreateSettingRepository.Set("PlaylistStatus", "VeryClosed");
                return(true);

            case PlaylistState.Closed:
                _setOrCreateSettingRepository.Set("PlaylistStatus", "Closed");
                return(true);

            case PlaylistState.Open:
                _setOrCreateSettingRepository.Set("PlaylistStatus", "Open");
                return(true);

            default:
                return(false);
            }
        }
 public void Update(string key, string value)
 {
     _setOrCreateSettingRepository.Set(key, value);
 }
Example #5
0
 public void Set(bool value)
 {
     _setOrCreateSettingRepository.Set(SettingsKeys.GuessingGameStateSettingKey, value.ToString().ToLower());
 }