private void CampaignComboBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if (this.CampaignComboBox.SelectedIndex >= 0) { TiltifyCampaign campaign = (TiltifyCampaign)this.CampaignComboBox.SelectedItem; ChannelSession.Settings.TiltifyCampaign = campaign.ID; } }
public async Task <IEnumerable <TiltifyDonation> > GetCampaignDonations(TiltifyCampaign campaign) { List <TiltifyDonation> results = new List <TiltifyDonation>(); try { TiltifyResultArray result = await this.GetAsync <TiltifyResultArray>("campaigns/" + campaign.ID.ToString() + "/donations"); foreach (JToken token in result.Data) { results.Add(token.ToObject <TiltifyDonation>()); } } catch (Exception ex) { MixItUp.Base.Util.Logger.Log(ex); } return(results); }
private async Task BackgroundDonationCheck() { int currentCampaign = 0; TiltifyCampaign campaign = null; Dictionary <int, TiltifyDonation> donationsReceived = new Dictionary <int, TiltifyDonation>(); while (!this.cancellationTokenSource.Token.IsCancellationRequested) { try { if (ChannelSession.Settings.TiltifyCampaign != currentCampaign) { currentCampaign = ChannelSession.Settings.TiltifyCampaign; donationsReceived.Clear(); IEnumerable <TiltifyCampaign> campaigns = await this.GetCampaigns(this.user); campaign = campaigns.FirstOrDefault(c => c.ID.Equals(currentCampaign)); if (campaign != null) { foreach (TiltifyDonation donation in await this.GetCampaignDonations(campaign)) { donationsReceived[donation.ID] = donation; } } } if (campaign != null) { foreach (TiltifyDonation tDonation in await this.GetCampaignDonations(campaign)) { if (!donationsReceived.ContainsKey(tDonation.ID)) { donationsReceived[tDonation.ID] = tDonation; UserDonationModel donation = tDonation.ToGenericDonation(); await EventCommand.ProcessDonationEventCommand(donation, OtherEventTypeEnum.TiltifyDonation); } } } } catch (Exception ex) { MixItUp.Base.Util.Logger.Log(ex); } await Task.Delay(10000); } }
private async Task BackgroundDonationCheck() { int currentCampaign = 0; TiltifyCampaign campaign = null; Dictionary <int, TiltifyDonation> donationsReceived = new Dictionary <int, TiltifyDonation>(); while (!this.cancellationTokenSource.Token.IsCancellationRequested) { try { if (ChannelSession.Settings.TiltifyCampaign != currentCampaign) { currentCampaign = ChannelSession.Settings.TiltifyCampaign; donationsReceived.Clear(); IEnumerable <TiltifyCampaign> campaigns = await this.GetCampaigns(this.user); campaign = campaigns.FirstOrDefault(c => c.ID.Equals(currentCampaign)); if (campaign != null) { foreach (TiltifyDonation donation in await this.GetCampaignDonations(campaign)) { donationsReceived[donation.ID] = donation; } } } if (campaign != null) { foreach (TiltifyDonation tDonation in await this.GetCampaignDonations(campaign)) { if (!donationsReceived.ContainsKey(tDonation.ID)) { donationsReceived[tDonation.ID] = tDonation; UserDonationModel donation = tDonation.ToGenericDonation(); GlobalEvents.DonationOccurred(donation); UserViewModel user = new UserViewModel(0, donation.UserName); UserModel userModel = await ChannelSession.Connection.GetUser(user.UserName); if (userModel != null) { user = new UserViewModel(userModel); } EventCommand command = ChannelSession.Constellation.FindMatchingEventCommand(EnumHelper.GetEnumName(OtherEventTypeEnum.TiltifyDonation)); if (command != null) { command.AddSpecialIdentifier("donationsource", EnumHelper.GetEnumName(donation.Source)); command.AddSpecialIdentifier("donationamount", donation.AmountText); command.AddSpecialIdentifier("donationmessage", donation.Message); command.AddSpecialIdentifier("donationimage", donation.ImageLink); await command.Perform(user); } } } } } catch (Exception ex) { MixItUp.Base.Util.Logger.Log(ex); } await Task.Delay(10000); } }