private static void CreditWinner(Jackpot jackpot, JackpotWinningTicket winningTicket, Member winner) { var prizeType = GetPrizeType(jackpot, winner); switch (prizeType) { case JackpotPrize.MainBalance: var mainBalancePrize = jackpot.MainBalancePrize / jackpot.NumberOfWinningTickets; winner.AddToMainBalance(mainBalancePrize, "Jackpot win", BalanceLogType.Other); winner.SaveBalances(); History.AddJackpotWin(winner.Name, string.Format("{0} - {1}", L1.MAINBALANCE, mainBalancePrize.ToString()), winningTicket.WinningTicketNumber.ToString(), jackpot.Name); PoolDistributionManager.SubtractProfit(ProfitSource.Jackpots, mainBalancePrize); break; case JackpotPrize.AdBalance: var adBalancePrize = jackpot.AdBalancePrize / jackpot.NumberOfWinningTickets; winner.AddToPurchaseBalance(adBalancePrize, "Jackpot win", BalanceLogType.Other); winner.SaveBalances(); History.AddJackpotWin(winner.Name, string.Format("{0} - {1}", U6012.PURCHASEBALANCE, adBalancePrize.ToString()), winningTicket.WinningTicketNumber.ToString(), jackpot.Name); PoolDistributionManager.SubtractProfit(ProfitSource.Jackpots, adBalancePrize); break; case JackpotPrize.LoginAdsCredits: var loginAdsCreditsPrize = jackpot.LoginAdsCreditsPrize / jackpot.NumberOfWinningTickets; winner.AddToLoginAdsCredits(loginAdsCreditsPrize, "Jackpot win"); winner.SaveBalances(); History.AddJackpotWin(winner.Name, string.Format("{0} - {1}", U5008.LOGINADSCREDITS, loginAdsCreditsPrize.ToString()), winningTicket.WinningTicketNumber.ToString(), jackpot.Name); break; case JackpotPrize.Upgrade: var upgradeMembershipDaysPrize = jackpot.UpgradeDaysPrize / jackpot.NumberOfWinningTickets; if (winner.MembershipId == Membership.Standard.Id) { winner.Upgrade(new Membership(jackpot.UpgradeIdPrize), new TimeSpan(upgradeMembershipDaysPrize, 0, 0, 0)); } else { winner.Upgrade(new Membership(jackpot.UpgradeIdPrize), winner.MembershipExpires.HasValue ? winner.MembershipExpires.Value.AddDays(upgradeMembershipDaysPrize) : AppSettings.ServerTime.AddDays(upgradeMembershipDaysPrize)); } History.AddJackpotWin(winner.Name, string.Format("{0} - {1}", U5008.UPGRADED, winner.Membership.Name), winningTicket.WinningTicketNumber.ToString(), jackpot.Name); break; default: break; } JackpotTicketPrize prize = new JackpotTicketPrize(); prize.JackpotId = jackpot.Id; prize.PrizeType = prizeType; prize.Save(); }
private void HidePrize() { if (IsHistory) { adBalancePrize.Visible = mainBalancePrize.Visible = loginAdsCreditsPrize.Visible = upgradePrize.Visible = false; JackpotTicketPrize ticketPrize = TableHelper.GetListFromRawQuery <JackpotTicketPrize>(string.Format("SELECT * FROM JackpotTicketPrizes WHERE JackpotId = {0}", Jackpot.Id)).FirstOrDefault(); if (ticketPrize != null) { switch (ticketPrize.PrizeType) { case JackpotPrize.AdBalance: adBalancePrize.Visible = true; break; case JackpotPrize.MainBalance: mainBalancePrize.Visible = true; break; case JackpotPrize.LoginAdsCredits: loginAdsCreditsPrize.Visible = true; break; case JackpotPrize.Upgrade: upgradePrize.Visible = true; break; } } } else { adBalancePrize.Visible = Jackpot.AdBalancePrizeEnabled; mainBalancePrize.Visible = Jackpot.MainBalancePrizeEnabled; loginAdsCreditsPrize.Visible = Jackpot.LoginAdsCreditsPrizeEnabled; bool upgradeVisible = false; if (Jackpot.UpgradePrizeEnabled) { var membership = new Membership(Jackpot.UpgradeIdPrize); upgradeVisible = true; UpgradeDetails.Text = membership.Name + " (" + Jackpot.UpgradeDaysPrize + " " + L1.DAYS + ")"; } upgradePrize.Visible = upgradeVisible; } }