protected void BuyButton_Click(object sender, EventArgs e) { ErrorMessagePanel.Visible = false; SuccMessagePanel.Visible = false; try { var user = Member.Current; PurchaseOption.ChargeBalance(user, Price, TargetBalanceRadioButtonList.Feature, TargetBalanceRadioButtonList.TargetBalance, "Mini Video Bought"); var boughtVideo = new UsersMiniVideoCampaign { BoughtDate = DateTime.Now, VideoId = Id, Username = user.Name }; boughtVideo.Save(); SuccMessagePanel.Visible = true; SuccMessage.Text = U6008.MINIVIDEOCREATED; } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); } }
public static void BuySurfAds(int adPacksAdvertId, Member user, SurfAdsPack surfAdsPack, PurchaseBalances targetBalance) { var availablePacks = SurfAdsPack.GetAllActivePacks(); if (surfAdsPack.Status != SurfAdsPackStatus.Active) { throw new MsgException("Selected Surf Ads Pack is unavailable"); } //BUY ADPACKS var totalPrice = surfAdsPack.Price; PurchaseOption.ChargeBalance(user, totalPrice, PurchaseOption.Features.SurfAd.ToString(), targetBalance, string.Format("{0} purchase", U5004.SURFADS)); AdPacksAdvert ad = new AdPacksAdvert(adPacksAdvertId); AdPack pack = new AdPack(); pack.MoneyReturned = new Money(0); pack.AdPacksAdvertId = adPacksAdvertId; pack.TotalConstantBannerImpressions = pack.ConstantBannerImpressionsBought = 0; pack.NormalBannerImpressionsBought = pack.TotalNormalBannerImpressions = 0; pack.ClicksBought = surfAdsPack.Clicks; pack.PurchaseDate = DateTime.Now; pack.MoneyToReturn = pack.MoneyReturned = new Money(0); pack.UserCustomGroupId = -1; pack.UserId = user.Id; pack.DistributionPriority = new Decimal(0); pack.AdPackTypeId = -1; pack.DisplayTime = surfAdsPack.DisplayTime; pack.Save(); //Pools PoolDistributionManager.AddProfit(ProfitSource.SurfAds, totalPrice); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); int featureId = (int)((JObject)args)["feature"]; int userId = ApiAccessToken.ValidateAndGetUserId(token); var purchaseOption = PurchaseOption.Get((PurchaseOption.Features)featureId); List <int> availableBalances = new List <int>(); if (purchaseOption.PurchaseBalanceEnabled) { availableBalances.Add((int)PurchaseBalances.Purchase); } if (purchaseOption.CashBalanceEnabled) { availableBalances.Add((int)PurchaseBalances.Cash); } return(new ApiResultMessage { success = true, message = String.Empty, data = availableBalances }); }
public static void Buy(Member user, PTCOfferWallPack pack, PurchaseBalances targetBalance, List <UserUrl> userUrls, string title, string description, GeolocationUnit geoUnit, bool pcAllowed, bool mobileAllowed, bool autosurfEnabled, int maxSingleUserDailyViews) { if (pack.Adverts != userUrls.Count) { throw new MsgException(string.Format(U6002.NUMBEROFURLSERROR, pack.Adverts)); } if (userUrls.Any(u => u.Status != AdvertStatus.Active)) { throw new MsgException("Fraud! Only active urls are permitted."); } PurchaseOption.ChargeBalance(user, pack.Price, PurchaseOption.Features.PtcOfferWall.ToString(), targetBalance, "PTC OfferWall"); var offerWall = new PTCOfferWall(user.Id, pack, title, description, pcAllowed, mobileAllowed, autosurfEnabled, maxSingleUserDailyViews); if (geoUnit != null) { offerWall.AddGeolocation(geoUnit); } offerWall.Save(); offerWall.MapWithUrls(userUrls); MatrixBase.TryAddMemberAndCredit(user, pack.Price, AdvertType.PTCOfferWall); }
public static void BuyPack(Member user, MembershipPack pack, PurchaseBalances targetBalance) { Money packPrice = pack.Price; PurchaseOption.ChargeBalance(user, pack.GetPrice(user), PurchaseOption.Features.Upgrade.ToString(), targetBalance, "Upgrade"); AddPack(user, pack); }
protected void Page_Load(object sender, EventArgs e) { var purchaseOption = PurchaseOption.Get(PurchaseOption.Features.Jackpot); BuyTicketsFromAdBalancePlaceHolder.Visible = purchaseOption.PurchaseBalanceEnabled; BuyTicketsFromCashBalancePlaceHolder.Visible = purchaseOption.CashBalanceEnabled; BuyTicketsViaPaymentProcessorPlaceHolder.Visible = purchaseOption.PaymentProcessorEnabled; }
// Here we serialize our UserData object of myData public string SerializeObject(PurchaseOption pObject) { string XmlizedString = null; MemoryStream memoryStream = new MemoryStream(); XmlSerializer xs = new XmlSerializer(typeof(PurchaseOption)); XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); xs.Serialize(xmlTextWriter, pObject); memoryStream = (MemoryStream)xmlTextWriter.BaseStream; XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray()); return XmlizedString; }
public static void Buy(Member user, string url, int categoryId, Banner image, ExternalBannerAdvertPack pack, PurchaseBalances targetBalance) { PurchaseOption.ChargeBalance(user, pack.Price, PurchaseOption.Features.ExternalBanner.ToString(), targetBalance, "External Banner advertisement"); var banner = new ExternalBannerAdvert(user.Id, url, categoryId, pack, image, targetBalance); banner.Save(); History.AddPurchase(user.Name, pack.Price, "Banner campaign"); MatrixBase.TryAddMemberAndCredit(user, pack.Price, AdvertType.ExternalBanner); }
protected void CreateAdButton_Click(object sender, EventArgs e) { ErrorMessagePanel.Visible = false; if (Page.IsValid) { try { AppSettings.DemoCheck(); if (Ad.Status == AdvertStatus.Finished) { Member User = Member.Current; TrafficExchangeAdvertPack Pack = new TrafficExchangeAdvertPack(Int32.Parse(ddlOptions.SelectedValue)); PurchaseOption.ChargeBalance(User, Pack.Price, PurchaseBalances.Traffic, U6012.TECREDITS); //Modify Ad.Prolong(Pack); Ad.Status = AdvertStatus.Paused; Ad.SaveStatus(); Ad.Save(); //Add history entry string entryText = ""; if (Pack.Ends.EndMode == End.Mode.Clicks) { entryText = (Convert.ToInt32(Pack.Ends.Value)).ToString() + " ad clicks"; } else if (Pack.Ends.EndMode == End.Mode.Days) { entryText = (Convert.ToInt32(Pack.Ends.Value)).ToString() + " ad days"; } History.AddPurchase(User.Name, Pack.Price, entryText); Response.Redirect("trafficexchange.aspx"); } } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); throw ex; } } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { PurchaseOption Option = (PurchaseOption)value; switch (Option) { case PurchaseOption.ON_DEMAND: { writer.WriteValue("OnDemand"); break; } case PurchaseOption.ALL_UPFRONT: { writer.WriteValue("All Upfront"); break; } case PurchaseOption.PARTIAL_UPFRONT: { writer.WriteValue("Partial Upfront"); break; } case PurchaseOption.NO_UPFRONT: { writer.WriteValue("No Upfront"); break; } case PurchaseOption.HEAVY_UTILIZATION: { writer.WriteValue("Heavy Utilization"); break; } case PurchaseOption.MEDIUM_UTILIZATION: { writer.WriteValue("Medium Utilization"); break; } case PurchaseOption.LIGHT_UTILIZATION: { writer.WriteValue("Light Utilization"); break; } } }
public TermAttributes( int leaseContractLength, PurchaseOption purchaseOption, OfferingClass offeringClass ) { if (leaseContractLength < 0) { throw new ArgumentOutOfRangeException(nameof(leaseContractLength), "The lease contract length cannot be less than zero."); } this.LeaseContractLength = leaseContractLength; this.PurchaseOption = purchaseOption; this.OfferingClass = offeringClass; }
protected void TargetBalances_Init(object sender, EventArgs e) { PurchaseOption.Features targetFeature = (PurchaseOption.Features)Enum.Parse(typeof(PurchaseOption.Features), Feature, true); var purchaseOption = PurchaseOption.Get(targetFeature); if (purchaseOption.PurchaseBalanceEnabled) { TargetBalances.Items.Add(new ListItem(U6012.PURCHASEBALANCE, PurchaseBalances.Purchase.ToString())); } if (AppSettings.Payments.CashBalanceEnabled && purchaseOption.CashBalanceEnabled) { TargetBalances.Items.Add(new ListItem(U5008.CASHBALANCE, PurchaseBalances.Cash.ToString())); } TargetBalances.SelectedIndex = 0; }
private static void AddPaymentOptions(StringBuilder sb, PurchaseOption purchaseOpt, List <MonthlyPayment> monthlyPayments) { var paymentOptions = monthlyPayments.Where(mp => mp.PurchaseOption.Equals(purchaseOpt.PurchaseOptionDesc)); EmailBuilder.AddNewline(sb); foreach (var paymentOption in paymentOptions) { // logic to determine singular or plural verbiage for advanced payment(s) string ap = (paymentOption.AdvancementPayment == 1 ? "Advanced Payment" : "Advanced Payments"); EmailBuilder.AddBoldedHeader(sb, purchaseOpt.PurchaseOptionDesc); EmailBuilder.AddRegularText(sb, paymentOption.Term + " months at " + String.Format("{0:C}", Convert.ToInt32(paymentOption.Payment)) + " with " + paymentOption.AdvancementPayment + " " + ap); EmailBuilder.AddNewline(sb); } }
private static void AddSms(Quote quote, StringBuilder sb, PurchaseOption purchaseOpt, List <MonthlyPayment> monthlyPayments) { var paymentOptions = monthlyPayments.Where(mp => mp.PurchaseOption.Equals(purchaseOpt.PurchaseOptionDesc)); for (int x = 0; x < paymentOptions.Count(); x++) { var paymentOption = paymentOptions.ElementAt(x); // logic to determine singular or plural verbiage for advanced payment(s) string ap = (paymentOption.AdvancementPayment == 1 ? "Adv Pymt" : "Adv Pymts"); string comma = (x < paymentOptions.Count() - 1 ? ", " : ""); sb.Append(purchaseOpt.PurchaseOptionDesc + " - " + paymentOption.Term + " mos at " + String.Format("{0:C}", paymentOption.Payment) + " with " + paymentOption.AdvancementPayment + " " + ap + comma); } }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JObject obj = JObject.Load(reader); if (reader.TokenType == JsonToken.Null) { return(new TermAttributes(0, PurchaseOption.ON_DEMAND, OfferingClass.STANDARD)); } if (reader.TokenType != JsonToken.Null) { if (!obj.HasValues) { return(new TermAttributes(0, PurchaseOption.ON_DEMAND, OfferingClass.STANDARD)); } } obj.TryGetValue("LeaseContractLength", StringComparison.OrdinalIgnoreCase, out JToken leaseToken); obj.TryGetValue("OfferingClass", StringComparison.OrdinalIgnoreCase, out JToken offeringClassToken); obj.TryGetValue("PurchaseOption", StringComparison.OrdinalIgnoreCase, out JToken purchaseOptionToken); OfferingClass offeringClass = OfferingClass.STANDARD; PurchaseOption option = PurchaseOption.ON_DEMAND; int lease = 0; if (offeringClassToken != null) { offeringClass = serializer.Deserialize <OfferingClass>(offeringClassToken.CreateReader()); } if (purchaseOptionToken != null) { option = serializer.Deserialize <PurchaseOption>(purchaseOptionToken.CreateReader()); } if (leaseToken != null) { JsonSerializer jsonSerializer = new JsonSerializer() { Converters = { new LeaseContractLengthConverter() } }; lease = jsonSerializer.Deserialize <int>(leaseToken.CreateReader()); } return(new TermAttributes(lease, option, offeringClass)); }
protected void CreateVideoButton_Click(object sender, EventArgs e) { ErrorMessagePanel.Visible = false; SuccMessagePanel.Visible = false; if (Page.IsValid) { try { var user = Member.Current; var price = user.Membership.MiniVideoUploadPrice; if (!MiniVideoCampaign.GetTitleAvability(TitleTextBox.Text)) { throw new MsgException(U6008.VIDEOWITHTITLEEXIST); } var miniVideoCampaign = new MiniVideoCampaign { Title = TitleTextBox.Text, Username = user.Name, Status = MiniVideoStatus.Active, Description = DescriptionTextBox.Text, ImageURL = VideoImage.DescriptionUrl, VideoURL = VideoURLHiddenLabel.Text, VideoCategory = Convert.ToInt32(VideoCategoriesList.SelectedValue), AddedDate = DateTime.Now }; PurchaseOption.ChargeBalance(user, price, TargetBalanceRadioButtonList.Feature, TargetBalanceRadioButtonList.TargetBalance, "Mini Video Upload"); miniVideoCampaign.Save(); SuccMessagePanel.Visible = true; SuccMessage.Text = U6008.MINIVIDEOCREATED; } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); } } }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); ApiJackpotTicketPurchaseData data = ((JObject)args).ToObject <ApiJackpotTicketPurchaseData>(); int userId = ApiAccessToken.ValidateAndGetUserId(token); if (!AppSettings.TitanFeatures.MoneyJackpotEnabled) { throw new MsgException("Jackpot are disabled."); } Member user = new Member(userId); Jackpot jackpot = new Jackpot(data.jackpotId); if (data.tickets <= 0) { throw new MsgException(U5003.INVALIDNUMBEROFTICKETS); } PurchaseBalances balance = (PurchaseBalances)data.balance; BalanceType targetBalance = PurchaseOption.GetBalanceType(balance); var purchaseOption = PurchaseOption.Get(PurchaseOption.Features.Jackpot); if (balance == PurchaseBalances.Purchase && !purchaseOption.PurchaseBalanceEnabled) { throw new MsgException("You can't purchase with that balance."); } if (balance == PurchaseBalances.Cash && !purchaseOption.CashBalanceEnabled) { throw new MsgException("You can't purchase with that balance."); } JackpotManager.BuyTickets(jackpot, user, data.tickets, targetBalance); return(new ApiResultMessage { success = true, message = U5003.TICKETPURCHASESUCCESS.Replace("%n%", data.tickets.ToString()), data = null }); }
protected void Page_Load(object sender, EventArgs e) { TokenCryptocurrency = CryptocurrencyFactory.Get <BitcoinCryptocurrency>(); ERC20TokenCryptocurrency = CryptocurrencyFactory.Get <ERC20TokenCryptocurrency>(); if (!IsPostBack) { HideMessages(); var PurchaseOptions = PurchaseOption.Get(PurchaseOption.Features.AdPack); BindDataToTypesDDL(); CustomCampaignsDropDownManagement(); CustomPurchaseViaTokenPlaceHolder.Visible = false; CustomPurchaseViaMainBalancePlaceHolder.Visible = TitanFeatures.IsTrafficThunder; CustomPurchaseViaCommissionBalancePlaceHolder.Visible = AppSettings.RevShare.AdPackPurchasesViaCommissionBalanceEnabled; CustomPurchaseViaPurchaseBalancePlaceHolder.Visible = PurchaseOptions.PurchaseBalanceEnabled && !TitanFeatures.PurchaseBalanceDisabled; CustomPurchaseViaCashBalancePlaceHolder.Visible = PurchaseOptions.CashBalanceEnabled; CustomPurchaseForReferralPlaceHolder.Visible = AppSettings.RevShare.AdPack.BuyAdPacksForReferralsEnabled; CustomPurchaseViaERC20TokensButton.Enabled = false; CustomPurchaseViaCommissionBalanceButton.Enabled = false; CustomPurchaseViaCashBalanceButton.Enabled = false; CustomPurchaseViaPurchaseBalanceButton.Enabled = false; CustomPurchaseViaMainBalanceButton.Enabled = false; TOSAgreement.Checked = false; if (TitanFeatures.IsTrafficThunder) { CustomTypesDDLPlaceHolder.Visible = false; } LangAdders(); } var adPackType = new AdPackType(Convert.ToInt32(CustomTypesDropDown.SelectedValue)); CustomPackPriceLabel.Text = adPackType.Price.ToClearString(); ScriptManager.RegisterStartupScript(CustomAdPackPurchaseUpdatePanel, GetType(), "AdPacksTBChanged", "AdPacksTBChanged();", true); }
public CsvRowItem( string sku, string offerTermCode, Term termType, int leaseContractLength, double pricePerUnit, int vcpu, double memory, PurchaseOption purchaseOption, OfferingClass offeringClass, string tenancy, string instanceType, string platform, string operatingSystem, string operation, string usageType, string serviceCode, string region, string description ) { this.Sku = sku; this.OfferTermCode = offerTermCode; this.TermType = termType; this.LeaseContractLength = leaseContractLength; this.PricePerUnit = pricePerUnit; this.vCPU = vcpu; this.Memory = memory; this.PurchaseOption = purchaseOption; this.OfferingClass = offeringClass; this.Tenancy = tenancy; this.InstanceType = instanceType; this.Platform = platform; this.OperatingSystem = operatingSystem; this.Operation = operation; this.UsageType = usageType; this.ServiceCode = serviceCode; this.Region = region; this.Description = description; this.Key = $"{this.LeaseContractLength}::{this.PurchaseOption}::{this.OfferingClass}"; }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); int userId = ApiAccessToken.ValidateAndGetUserId(token); Member User = new Member(userId); Money FirstPackPrice = Money.Zero; //Available Balances PurchaseOption purchaseOption = PurchaseOption.Get(PurchaseOption.Features.Upgrade); List <int> availableBalances = new List <int>(); if (purchaseOption.PurchaseBalanceEnabled) { availableBalances.Add((int)PurchaseBalances.Purchase); } if (purchaseOption.CashBalanceEnabled) { availableBalances.Add((int)PurchaseBalances.Cash); } //Always allow to upgrade via payment processor availableBalances.Add((int)PurchaseBalances.PaymentProcessor); //List of memberships var activeMemberships = Membership.GetActiveMembershipsDataTables(); return(new ApiResultMessage { success = true, message = String.Empty, data = new ApiUpgradeData { warningMessage = UpgradePageHelper.GetWarningMessage(User), availableMembershipPacks = MembershipPack.AllPurchaseablePacks.Select(elem => new ApiMembershipPack(User, elem)).ToList(), availableBalances = availableBalances, memberships = activeMemberships.Rows.Cast <DataRow>().Select(elem => new ApiMembership(elem)).ToList(), balances = ApiMember.GetBalances(User) } }); }
private void InitBuyViewControls() { WithdrawAllMoneyFromSystem.Text = L1.TRANSFERMONEY; PlansButton.Text = CurrentMode == InvestmentPlatformMode.Standard ? U6006.PLANS : U5007.LEVELS; ManageButton.Text = L1.MANAGE; MainDescriptionP.InnerText = CurrentMode == InvestmentPlatformMode.Standard ? U6006.PLANSDESCRIPTION : U6012.LEVELSDESCRIPTION; PlansDropDownList.Items.Clear(); foreach (var plan in availablePlans) { PlansDropDownList.Items.Add(new ListItem(plan.Name, plan.Id.ToString())); } //TMP ?? //if (CurrentMode == InvestmentPlatformMode.Standard) { var targetFeature = PurchaseOption.Features.InvestmentPlatform; var purchaseOption = PurchaseOption.Get(targetFeature); PurchaseBalanceLabel.Text = string.Format("{0}: {1}", U6012.PURCHASEBALANCE, User.PurchaseBalance.ToString()); CashBalanceLabel.Text = string.Format("{0}: {1}", U5008.CASHBALANCE, User.CashBalance.ToString()); BuyFromPurchaseBalanceButton.Visible = PurchaseBalanceInfoPlaceHolder.Visible = purchaseOption.PurchaseBalanceEnabled; BuyFromCashBalanceButton.Visible = CashBalanceInfoPlaceHolder.Visible = AppSettings.Payments.CashBalanceEnabled && purchaseOption.CashBalanceEnabled; LangAdder.Add(BuyFromPurchaseBalanceButton, U6012.PAYVIAPURCHASEBALANCE); LangAdder.Add(BuyFromCashBalanceButton, U6005.PAYVIACASHBALANCE); } //else // BuyFromPurchaseBalanceButton.Visible = BuyFromCashBalanceButton.Visible = PurchaseBalanceInfoPlaceHolder.Visible = CashBalanceInfoPlaceHolder.Visible = true; ///tmp LangAdder.Add(BuyViaPaymentProcessorButton, U6005.PAYVIAPAYMENTPROCESSOR); PlansDropDownList_SelectedIndexChanged(null, null); PurchaseDescriptionLabel.Text = U6011.PLANBUY; ///TMP //BuyFromPurchaseBalanceButton.Visible = true; ///TMP }
public static void Buy(Member user, InTextAdvertPack pack, string title, string description, string url, PurchaseBalances targetBalance, List <string> tags) { if (tags.Count > pack.MaxNumberOfTags) { throw new MsgException(string.Format(U6002.TOOMANYTAGS, pack.MaxNumberOfTags)); } if (tags.Count == 0) { throw new MsgException(U6002.MUSTADDTAGS); } PurchaseOption.ChargeBalance(user, pack.Price, PurchaseOption.Features.InTextAds.ToString(), targetBalance, "InText Ad"); var ad = new InTextAdvert(user.Id, pack, title, description, url, targetBalance); ad.Save(); MapTags(ad.Id, tags); MatrixBase.TryAddMemberAndCredit(user, pack.Price, AdvertType.InText); }
public static void BuyPack(DirectReferralPack pack, Member user, PurchaseBalances targetBalance) { if (user.DirectReferralLimit < user.GetDirectReferralsCount() + pack.NumberOfRefs) { throw new MsgException(L1.ER_RENT_LIMIT); } var membersWithoutRefs = GetUsersWithoutReferer(pack.NumberOfRefs, user.Id, pack.MembershipId); if (membersWithoutRefs.Count < pack.NumberOfRefs) { throw new MsgException(U5007.NOTENOUGHREFSAVAILABLE); } PurchaseOption.ChargeBalance(user, pack.Price, PurchaseOption.Features.DirectReferral.ToString(), targetBalance, "Direct ref purchase", BalanceLogType.DirectRefPurchase); foreach (Member member in membersWithoutRefs) { member.TryAddReferer(user, true, AppSettings.ServerTime.AddDays(pack.Days)); member.CameFromUrl = "Purchase"; member.Save(); } }
public SavingsPlanProductAttributes( PurchaseOption purchaseOption, string granularity, string instanceType, int purchaseTerm, string locationType, string location ) { if (purchaseTerm < 1) { throw new ArgumentOutOfRangeException(nameof(purchaseTerm)); } if (String.IsNullOrEmpty(granularity)) { throw new ArgumentNullException(nameof(granularity)); } if (String.IsNullOrEmpty(locationType)) { throw new ArgumentNullException(nameof(locationType)); } if (String.IsNullOrEmpty(location)) { throw new ArgumentNullException(nameof(location)); } this.PurchaseOption = purchaseOption; this.Granularity = granularity; this.InstanceType = instanceType; this.PurchaseTerm = purchaseTerm; this.LocationType = locationType; this.Location = location; }
public static void BuyPacks(int numberOfPacks, int adPacksAdvertId, Member user, AdPackType adPackType, PurchaseBalances targetBalance, int?userGroupIdNullable = null, int?groupIdNullable = null, bool forcePurchaseWithoutDeducingFunds = false, Member adPackOwner = null) { if (!TitanFeatures.IsClickmyad && !AppSettings.RevShare.AdPack.EnableAdvertChange && adPacksAdvertId == -1 && AppSettings.RevShare.AdPacksPolicy != AppSettings.AdPacksPolicy.HYIP) { throw new MsgException(U6000.CANNOTBUYADPACKS); } AdPacksForOtherUsers record = null; string note = string.Format("{0} purchase", AppSettings.RevShare.AdPack.AdPackName); //Buying AdPacks for oneself if (adPackOwner == null) { if (!user.HasThisMembershipOrHigher(adPackType.RequiredMembership)) { throw new MsgException(String.Format(U5006.YOUNEEDMEMBERSHIP, Membership.SelectName(adPackType.RequiredMembership))); } int numberOfUsersAdPacks = GetNumberOfUsersAdPacks(user.Id, true, adPackType.Id); if (numberOfUsersAdPacks + numberOfPacks > adPackType.MaxInstances) { throw new MsgException(U5004.TOOMANYADPACKOFTYPE.Replace("%a%", AppSettings.RevShare.AdPack.AdPackNamePlural) .Replace("%b%", (adPackType.MaxInstances - numberOfUsersAdPacks).ToString())); } int numberOfAllUsersAdpacks = GetNumberOfAllUsersAdPacks(user.Id, adPackType.Id); if (numberOfAllUsersAdpacks + numberOfPacks > adPackType.MaxInstancesOfAllAdpacks) { throw new MsgException(U5004.TOOMANYADPACKOFTYPE.Replace("%a%", AppSettings.RevShare.AdPack.AdPackNamePlural) .Replace("%b%", (adPackType.MaxInstancesOfAllAdpacks - numberOfAllUsersAdpacks).ToString())); } var availableTypes = AdPackTypeManager.GetAllActiveTypesForUser(user); if (!availableTypes.Any(el => el.Id == adPackType.Id) || adPackType.Status != AdPackTypeStatus.Active) { throw new MsgException("You cannot buy AdPacks of selected type."); } adPackOwner = user; } else { AdPacksForOtherUsers.Validate(user.Id, adPackOwner.Id, numberOfPacks, out record); note += " for " + adPackOwner.Name; } //BUY ADPACKS var totalPrice = GetAdPacksPrice(adPackType, numberOfPacks); if (!forcePurchaseWithoutDeducingFunds) { PurchaseOption.ChargeBalance(user, totalPrice, PurchaseOption.Features.AdPack.ToString(), targetBalance, note, BalanceLogType.AdPackPurchase); } if (user != adPackOwner) { AdPacksForOtherUsers.AddOrUpdate(record, user.Id, adPackOwner.Id, numberOfPacks); } Money totalTrafficExchangeSurfCredits = Money.Zero; int totalLoginAdsCredits = 0; for (int i = 0; i < numberOfPacks; i++) { AdPack pack = new AdPack(); pack.MoneyReturned = new Money(0); pack.AdPacksAdvertId = adPacksAdvertId; pack.TotalConstantBannerImpressions = 0; pack.TotalNormalBannerImpressions = 0; pack.ConstantBannerImpressionsBought = adPackType.ConstantBannerImpressions; pack.NormalBannerImpressionsBought = adPackType.NormalBannerImpressions; pack.ClicksBought = adPackType.Clicks; pack.PurchaseDate = DateTime.Now; pack.MoneyReturned = new Money(0); pack.MoneyToReturn = Money.MultiplyPercent(adPackType.Price, adPackType.PackReturnValuePercentage + adPackOwner.Membership.ROIEnlargedByPercentage); pack.UserCustomGroupId = -1; pack.UserId = adPackOwner.Id; pack.DistributionPriority = new Decimal(1); pack.AdPackTypeId = adPackType.Id; pack.DisplayTime = adPackType.DisplayTime; pack.BalanceBoughtType = targetBalance; pack.Save(); totalTrafficExchangeSurfCredits += adPackType.TrafficExchangeSurfCredits; totalLoginAdsCredits += adPackType.LoginAdsCredits; } if (AppSettings.TitanFeatures.AdvertTrafficExchangeEnabled) { adPackOwner.AddToTrafficBalance(totalTrafficExchangeSurfCredits, "Traffic Exchange Surf Credits", BalanceLogType.Other); } adPackOwner.AddToLoginAdsCredits(totalLoginAdsCredits, note); adPackOwner.SaveBalances(); Money moneyLeftForPools; if (TitanFeatures.isAri) { AriRevShareDistribution.AdPackAriCrediter crediter = new AriRevShareDistribution.AdPackAriCrediter(user); moneyLeftForPools = crediter.CreditReferer(totalPrice, targetBalance); } else { AdPackCrediter crediter = new AdPackCrediter(user); moneyLeftForPools = crediter.CreditReferer(totalPrice); } //Pools if (TitanFeatures.StringSawSundayPool.HasValue && AppSettings.ServerTime.DayOfWeek == DayOfWeek.Sunday) { PoolDistributionManager.AddProfitToSundayPool(moneyLeftForPools); } else { PoolDistributionManager.AddProfit(ProfitSource.AdPacks, moneyLeftForPools); } //Matrix MatrixBase.TryAddMemberAndCredit(user, totalPrice, AdvertType.AdPack); var purchasedItem = PurchasedItem.Create(user.Id, adPackType.Price, numberOfPacks, adPackType.Name + " " + AppSettings.RevShare.AdPack.AdPackName, PurchasedItemType.AdPack); if (TitanFeatures.isAri) { HtmlInvoiceGenerator generator = new HtmlInvoiceGenerator(purchasedItem); generator.SendPdfViaEmail(); } //LeadershipSystem var list = new List <RestrictionKind>(); list.Add(RestrictionKind.ActiveAdPacks); list.Add(RestrictionKind.ActiveAdPacksPrice); list.Add(RestrictionKind.DirectReferralsActiveAdPacks); list.Add(RestrictionKind.DirectReferralsActiveAdPacksPrice); LeadershipSystem.CheckSystem(list, user, 1); }
protected void CreateAdButton_Click(object sender, EventArgs e) { ErrorMessagePanel.Visible = false; SuccMessagePanel.Visible = false; if (Page.IsValid) { try { AppSettings.DemoCheck(); AppSettings.Misc.Reload(); Member User = Member.Current; int HowManyNeeded = Convert.ToInt32(HowMany.Text); Money PPA, AdCost; try { PPA = Money.Parse(Amount.Text); Decimal CalculatedPercent = (Decimal)(AppSettings.CPAGPT.MoneyTakenFromCPAOffersPercent + 100) / (Decimal)100; CalculatedPercent = CalculatedPercent * HowManyNeeded; AdCost = CalculatedPercent * PPA; if (PPA == new Money(0)) { throw new MsgException(L1.ERCPA); } } catch (Exception ex) { throw new MsgException(L1.ERCPA); } if (PPA < AppSettings.CPAGPT.MinimalCPAPrice) { throw new MsgException("Your PPA can't be less than minimum: " + AppSettings.CPAGPT.MinimalCPAPrice.ToString()); } if (chbGeolocation.Checked) { //AdCost += AppSettings.BannerAdverts.GeolocationCost; //Now get it from client-state var countriesSelectedDelimited = Request.Form[GeoCountriesValues.Name].Substring(1); GeolocationUnit unit = GeolocationUnit.ParseFromCountries(countriesSelectedDelimited); //Cities unit.Cities = GeoCities.Text; unit.MinAge = Convert.ToInt32(GeoAgeMin.Text); unit.MaxAge = Convert.ToInt32(GeoAgeMax.Text); unit.Gender = (Gender)Convert.ToInt32(GeoGenderList.SelectedValue); NewCPAAdvert.AddGeolocation(unit); } NewCPAAdvert.Title = InputChecker.HtmlEncode(Title.Text, 50, L1.TITLE); NewCPAAdvert.Description = InputChecker.HtmlEncode(Description.Text, 3800, L1.DESCRIPTION); NewCPAAdvert.Category = new CPACategory(Convert.ToInt32(CategoriesList.SelectedValue)); //Take money and save the user var targetBalance = TargetBalanceRadioButtonList.TargetBalance; PurchaseOption.ChargeBalance(User, AdCost, TargetBalanceRadioButtonList.Feature, targetBalance, "CPA/GPT advertising"); NewCPAAdvert.TargetBalance = targetBalance; NewCPAAdvert.AdvertiserUsername = (User.Name); NewCPAAdvert.Status = AdvertStatusExtensions.GetStartingStatus(); if (Member.CurrentName == "admin") { NewCPAAdvert.Status = AdvertStatus.Paused; } //Set basics - add to db NewCPAAdvert.TargetURL = URL.Text; //NewBannerAdvert.Pack = Pack; NewCPAAdvert.LoginBoxRequired = LoginIDBox.Checked; NewCPAAdvert.EmailBoxRequired = EmailIDBox.Checked; NewCPAAdvert.IsDaily = IsDaily.Checked; NewCPAAdvert.MaxDailyCredits = 1; NewCPAAdvert.CreditsBought = HowManyNeeded; NewCPAAdvert.IsFromAutomaticNetwork = false; NewCPAAdvert.BaseValue = PPA; NewCPAAdvert.DateAdded = DateTime.Now; NewCPAAdvert.LastCredited = OffersManager.DateTimeZero; NewCPAAdvert.RequiredMembership = Membership.Standard.Id; if (AppSettings.Site.Mode == WebsiteMode.GPTWithPointsOnly) { NewCPAAdvert.CreditOfferAs = CreditOfferAs.NonCash; } else { NewCPAAdvert.CreditOfferAs = CreditOfferAs.Cash; } NewCPAAdvert.Save(); //Add history entry 1 History.AddPurchase(User.Name, AdCost, "CPA/GPT campaign"); SuccMessagePanel.Visible = true; SuccMessage.Text = U3501.ADCREATED; Session["YourCampaigns_NewAAABannerAdvert"] = null; Response.Redirect("cpaoffers.aspx"); } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); throw ex; } } }
protected void CreateAdButton_Click(object sender, EventArgs e) { ErrorMessagePanel.Visible = false; SuccMessagePanel.Visible = false; if (Page.IsValid) { try { User = Member.Current; AppSettings.DemoCheck(); if (URL.Enabled) { throw new MsgException(U4200.CHECKURL); } var Ad = new LoginAd { TargetUrl = URL.Text, }; if (AppSettings.LoginAds.LoginAdsCreditsEnabled && LoginAdsCreditsCheckBox.Checked) { //Login Ads Credits Ad.PricePaid = new Money((int)LoginAdCreditsPrice); } else { Ad.PricePaid = AppSettings.LoginAds.Price; } if (chbGeolocation.Checked && AppSettings.LoginAds.IsGeolocationEnabled) { //Now get it from client-state var countriesSelectedDelimited = Request.Form[GeoCountriesValues.Name].Substring(1); GeolocationUnit unit = GeolocationUnit.ParseFromCountries(countriesSelectedDelimited); //Cities unit.Cities = GeoCities.Text; unit.MinAge = Convert.ToInt32(GeoAgeMin.Text); unit.MaxAge = Convert.ToInt32(GeoAgeMax.Text); unit.Gender = (Gender)Convert.ToInt32(GeoGenderList.SelectedValue); Ad.AddGeolocation(unit); } Ad.CreatorUserId = User.Id; Ad.Status = AdvertStatusExtensions.GetStartingStatus(); var displayDate = AdDisplayDateCalendar.SelectedDate; if (displayDate <= DateTime.Now.Date) { throw new MsgException(U4200.SELECTDIFFERENTDISPLAYDATE); } if (LoginManager.GetNumberOfAdsPurchasedForDay(displayDate) >= AppSettings.LoginAds.AdsPerDay) { throw new MsgException(U4200.SELECTDIFFERENTDISPLAYDATE); } Ad.DisplayDate = displayDate; Ad.PurchaseDate = DateTime.Now; if (AppSettings.LoginAds.LoginAdsCreditsEnabled && LoginAdsCreditsCheckBox.Checked) { Ad.TargetBalance = PurchaseBalances.LoginAdsCredits; PurchaseOption.ChargeBalance(User, Ad.PricePaid, PurchaseBalances.LoginAdsCredits, U5001.LOGINAD); string extraViews = string.Format(@"({0} {1})", User.LoginAdsCredits, U4200.AVAILABLE); AvailableLoginAdsCreditsLiteral.Text = extraViews; History.AddPurchase(User.Name, Ad.PricePaid.AsPoints(), U5001.LOGINAD); } else { Ad.TargetBalance = TargetBalanceRadioButtonList.TargetBalance; PurchaseOption.ChargeBalance(User, Ad.PricePaid, TargetBalanceRadioButtonList.Feature, TargetBalanceRadioButtonList.TargetBalance, U5001.LOGINAD); //Pools PoolDistributionManager.AddProfit(ProfitSource.LoginAds, Ad.PricePaid); //Add history entry 1 History.AddPurchase(User.Name, Ad.PricePaid, U5001.LOGINAD); MatrixBase.TryAddMemberAndCredit(User, Ad.PricePaid, AdvertType.Login); } //Save advert Ad.Save(); SuccMessagePanel.Visible = true; SuccMessage.Text = U4200.ADAWAITSAPPROVAL; URL.Text = "http://"; URL.Enabled = true; CheckURLButton.Visible = true; } catch (MsgException ex) { SuccMessagePanel.Visible = false; ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); throw ex; } } }
protected void CreateAdButton_Click(object sender, EventArgs e) { ErrorMessagePanel.Visible = false; SuccMessagePanel.Visible = false; if (Page.IsValid) { try { string InURL = URL.Text; //Check fanpage in database if (FacebookAdvert.IsFanpageInDatabase(InURL)) { throw new MsgException(U6003.FANPAGEEXISTS); } //Validate Facebook URL if (!FacebookManager.IsFanpageURLValid(InURL)) { throw new MsgException(L1.ER_BADFBURL); } AppSettings.DemoCheck(); FacebookAdvertPack Pack = new FacebookAdvertPack(Int32.Parse(ddlOptions.SelectedValue)); FacebookAdvert Ad = new FacebookAdvert(); Ad.TargetUrl = InURL; Money TotalCost = Pack.Price; if (chbFriends.Checked) { Ad.MinFriends = Convert.ToInt32(ddlFriends.SelectedValue); TotalCost += AppSettings.Facebook.FriendsRestrictionsCost; } else { Ad.MinFriends = 0; } if (chbProfilePicture.Checked) { Ad.HasProfilePicRestrictions = true; TotalCost += AppSettings.Facebook.ProfilePicRestrictionsCost; } else { Ad.HasProfilePicRestrictions = false; } Member User = null; if (Member.IsLogged) { User = Member.Current; var targetBalance = TargetBalanceRadioButtonList.TargetBalance; PurchaseOption.ChargeBalance(User, TotalCost, TargetBalanceRadioButtonList.Feature, targetBalance, "Facebook Ad credits"); Ad.TargetBalance = targetBalance; Ad.Advertiser = Advertiser.AsMember(User.Name); Ad.Status = AdvertStatusExtensions.GetStartingStatus(); } else { Ad.Advertiser = Advertiser.AsStranger(OutEmail.Text); Ad.Status = AdvertStatus.Null; } Ad.Price = TotalCost; Ad.Pack = Pack; Ad.Save(); if (Member.IsLogged) { //Add history entry 1 History.AddPurchase(User.Name, Ad.Price, "Facebook campaign"); //Add history entry 2 History.AddPurchase(User.Name, Pack.Price, Pack.Ends.Value + " Facebook likes"); //Achievements trial int UserCurrentCampaigns = TableHelper.CountOf <FacebookAdvert>(TableHelper.MakeDictionary("CreatorUsername", User.Name)); bool ShouldBeSaved = User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterAdvertisingFacebookCampaigns, UserCurrentCampaigns)); if (ShouldBeSaved) { User.Save(); } //Show success panel SuccMessagePanel.Visible = true; SuccMessage.Text = Ad.Status == AdvertStatus.WaitingForAcceptance ? U4200.ADAWAITSAPPROVAL : U3501.ADCREATED; MatrixBase.TryAddMemberAndCredit(User, Ad.Price, AdvertType.Facebook); } else { //Show buttons PaymentButtons.Visible = true; CreateAdButton.Visible = false; PaymentButtons.Text = GenerateHTMLButtons.GetPaymentButtons(new BuyAdvertButtonGenerator <IFacebookAdvertPack>(Ad)); } } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); throw ex; } } }
public ReservedInstancePricingTerm( string sku, string offerTermCode, string service, string platform, string operatingSystem, string instanceType, string operation, string usageType, string tenancy, string region, int vcpus, double memory, double onDemandHourlyCost, double adjustedPricePerUnit, double upfrontFee, int leaseTerm, PurchaseOption purchaseOption, OfferingClass offeringClass, Term termType ) { this.Sku = sku; this.OfferTermCode = offerTermCode; this.Service = service; this.Platform = platform; this.OperatingSystem = operatingSystem; this.InstanceType = instanceType; this.Operation = operation; this.UsageType = usageType; this.Tenancy = tenancy; this.Region = region; this.vCPU = vcpus; this.Memory = memory; this.OnDemandHourlyCost = onDemandHourlyCost; this.AdjustedPricePerUnit = adjustedPricePerUnit; this.UpfrontFee = upfrontFee; this.LeaseTerm = leaseTerm; this.PurchaseOption = purchaseOption; this.OfferingClass = offeringClass; this.TermType = termType; this.BreakevenPercentage = (this.UpfrontFee + (365 * this.LeaseTerm * 24 * this.AdjustedPricePerUnit)) / (365 * this.LeaseTerm * 24 * this.OnDemandHourlyCost); if (termType == Term.ON_DEMAND) { this.Key = "OnDemand"; } else { this.Key = $"{this.LeaseTerm}::{this.PurchaseOption.ToString()}::{this.OfferingClass.ToString()}"; } // Calculated properties this.ReservedInstanceCost = this.UpfrontFee + (this.AdjustedPricePerUnit * 24 * 365 * this.LeaseTerm); this.OnDemandCostForTerm = this.OnDemandHourlyCost * 24 * 365 * this.LeaseTerm; this.CostSavings = OnDemandCostForTerm - ReservedInstanceCost; if (this.OnDemandCostForTerm > 0) { this.PercentSavings = Math.Round(((1 - (ReservedInstanceCost / OnDemandCostForTerm)) * 100), 3); } else { this.PercentSavings = 0; } }
protected void Page_Load(object sender, EventArgs e) { var targetFeature = PurchaseOption.Features.Upgrade; var purchaseOption = PurchaseOption.Get(targetFeature); if (purchaseOption.PurchaseBalanceEnabled) { UpgradeFromAdBalance.Visible = true; } else { UpgradeFromAdBalance.Visible = false; adBalanceInfo.Visible = false; } if (AppSettings.Payments.CashBalanceEnabled && purchaseOption.CashBalanceEnabled) { UpgradeFromCashBalance.Visible = true; } else { UpgradeFromCashBalance.Visible = false; cashBalanceInfo.Visible = false; } AccessManager.RedirectIfDisabled(AppSettings.TitanFeatures.UpgradeEnabled); User = Member.CurrentInCache; if (!Page.IsPostBack) { //Lang LangAdder.Add(UpgradeFromAdBalance, U6012.PAYVIAPURCHASEBALANCE); LangAdder.Add(UpgradeFromCashBalance, U6005.PAYVIACASHBALANCE); LangAdder.Add(UpgradeViaPaymentProcessor, U6005.PAYVIAPAYMENTPROCESSOR); //Bind the data dor DDL BindDataToDDL(); //Visibility UpgradeViaPaymentProcessorPlaceHolder.Visible = PaymentAccountDetails.AreIncomingPaymentProcessorsAvailable(); } if (TitanFeatures.IsRofriqueWorkMines) { UpgradeFromAdBalancePlaceHolder.Visible = false; UpgradeViaPaymentProcessorPlaceHolder.Visible = false; } HideCashBalanceDepositCommissionColumn = AreAllCashBalanceDepositCommissionsZero(); ddlOptions.Attributes.Add("onchange", "updatePrice();"); autopayHelpArray = new Dictionary <string, bool>(); Label10.Text = AppSettings.Memberships.TenPointsValue.ToClearString(); LabelIle.Text = AppSettings.Memberships.UpgradePointsDiscount.ToString(); //Display warning string WarningMessage = UpgradePageHelper.GetWarningMessage(User); WarningPanel.Visible = !String.IsNullOrEmpty(WarningMessage); WarningLiteral.Text = WarningMessage; AdBalanceLiteral.Text = User.PurchaseBalance.ToString(); CashBalanceLiteral.Text = User.CashBalance.ToString(); if (AppSettings.Points.LevelMembershipPolicyEnabled) { BuyUpgradePlaceHolder.Visible = false; } hiddenProperties = MembershipProperty.GetPropsToHideForClient(); TypesMembershipProperties.Text = AdPackTypeMembershipMapper.Mapper.GetHtmlFromCache(); AdPackPropsPlaceHolder.Visible = AppSettings.TitanFeatures.AdvertAdPacksEnabled; PaymentProcessorsButtonPlaceholder.Visible = false; }
protected void CreateAdButton_Click(object sender, EventArgs e) { ErrorMessagePanel.Visible = false; SuccMessagePanel.Visible = false; if (Page.IsValid) { try { AppSettings.DemoCheck(); Member User = null; if (Member.IsLogged) { User = Member.Logged(Context); } else { Response.Redirect("~/default.aspx"); } if (URL.Enabled) { throw new MsgException(U4200.CHECKURL); } TrafficExchangeAdvert Ad = new TrafficExchangeAdvert(); TrafficExchangeAdvertPack Pack = new TrafficExchangeAdvertPack(Int32.Parse(ddlOptions.SelectedValue)); Money AdCost = Pack.Price; //Set basics Ad.Title = InputChecker.HtmlEncode(Title.Text, Title.MaxLength, L1.TITLE); Ad.TargetUrl = URL.Text; if (TrafficSourceList.SelectedValue == "Anon") { Ad.Description = TrafficSource.Anonymous; } else { Ad.Description = TrafficSource.ThisWebsite; } if (chbGeolocation.Checked) { AdCost += AppSettings.PtcAdverts.GeolocationCost; //Now get it from client-state var CTable = Request.Form[GeoCountriesValues.Name].Substring(1).Split('#'); var geoUList = GeolocationUtils.GeoCountData.Keys; foreach (string s in CTable) { if (geoUList.Contains <string>(s)) { Ad.GeolocatedCountries += CountryManager.GetCountryCode(s) + ","; } } } if (Member.IsLogged) { //Take money and save the user var note = TitanFeatures.IsAhmed ? "Flash Traffic advertising" : "Traffic Exchange advertising"; PurchaseOption.ChargeBalance(User, AdCost, PurchaseBalances.Traffic, note); Ad.Advertiser = Advertiser.AsMember(User.Name); Ad.Status = AdvertStatusExtensions.GetStartingStatus(); } //Add the ad to the db (for approval) Ad.Price = AdCost; Ad.Pack = Pack; Ad.Save(); if (Member.IsLogged) { //Add history entry 1 if (TitanFeatures.IsAhmed) { History.AddPurchase(User.Name, AdCost, "Flash Traffic advertising"); } else { History.AddPurchase(User.Name, AdCost, "Traffic Exchange advertising"); } //Add history entry 2 string entryText = ""; if (Pack.Ends.EndMode == End.Mode.Clicks) { entryText = (Convert.ToInt32(Pack.Ends.Value)).ToString() + " ad clicks"; } else if (Pack.Ends.EndMode == End.Mode.Days) { entryText = (Convert.ToInt32(Pack.Ends.Value)).ToString() + " ad days"; } History.AddPurchase(User.Name, Pack.Price, entryText); Title.Text = ""; URL.Text = ""; URL.Enabled = true; CheckURLButton.Visible = true; SuccMessagePanel.Visible = true; SuccMessage.Text = Ad.Status == AdvertStatus.WaitingForAcceptance ? U4200.ADAWAITSAPPROVAL : U3501.ADCREATED; } UsersTrafficBalanceLabel.Text = string.Format(U6008.YOURTRAFFICBALANCE, Member.CurrentInCache.TrafficBalance); } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); throw ex; } } }