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 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 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); }
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); }
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; } } }
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); } } }
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 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; } } }
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; } } }
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); } if (ddlOptions.SelectedItem == null) { throw new MsgException(U6002.BANNERPACKERROR); } BannerAdvertPack Pack = new BannerAdvertPack(Int32.Parse(ddlOptions.SelectedValue)); Money AdCost = Pack.Price; if (chbGeolocation.Checked) { AdCost += AppSettings.BannerAdverts.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)) { NewBannerAdvert.BannedCountries.Add(s); } } } if (Member.IsLogged) { var targetBalance = TargetBalanceRadioButtonList.TargetBalance; PurchaseOption.ChargeBalance(User, AdCost, TargetBalanceRadioButtonList.Feature, targetBalance, "Banner campaign"); NewBannerAdvert.Advertiser = Advertiser.AsMember(User.Name); NewBannerAdvert.Status = AdvertStatusExtensions.GetStartingStatus(); NewBannerAdvert.TargetBalance = targetBalance; } else { NewBannerAdvert.Advertiser = Advertiser.AsStranger(OutEmail.Text); NewBannerAdvert.Status = AdvertStatus.Null; } //Set basics - add to db NewBannerAdvert.TargetUrl = URL.Text; NewBannerAdvert.Pack = Pack; NewBannerAdvert.Price = AdCost; NewBannerAdvert.Save(); if (Member.IsLogged) { if (AppSettings.BannerAdverts.AdvertisingPolicy != BannerPolicy.BannerBidding && (NewBannerAdvert.Status == AdvertStatus.Active || NewBannerAdvert.Status == AdvertStatus.Paused)) { BannerCrediter crediter = new BannerCrediter(User); Money moneyLeftForPools = crediter.CreditReferer(NewBannerAdvert.Price); PoolDistributionManager.AddProfit(ProfitSource.Banners, moneyLeftForPools); } //Achievements trial int UserCurrentCampaigns = TableHelper.CountOf <BannerAdvert>(TableHelper.MakeDictionary("CreatorUsername", User.Name)); bool ShouldBeSaved = User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterAdvertisingBannerCampaigns, UserCurrentCampaigns)); if (ShouldBeSaved) { User.Save(); } //Add history entry 1 History.AddPurchase(User.Name, AdCost, "Banner campaign"); SuccMessagePanel.Visible = true; SuccMessage.Text = U3501.ADCREATED; //Earning stats EarningsStatsManager.Add(EarningsStatsType.Banner, AdCost); MatrixBase.TryAddMemberAndCredit(User, AdCost, AdvertType.Banner); Response.Redirect("banners.aspx"); } else { //Show buttons PaymentButtons.Visible = true; CreateAdButton.Visible = false; PaymentButtons.Text = GenerateHTMLButtons.GetPaymentButtons( new BuyAdvertButtonGenerator <IBannerAdvertPack>(NewBannerAdvert)); } Session["YourCampaigns_NewBannerAdvert"] = null; } 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 { AppSettings.DemoCheck(); Member User = null; int oldPackId = 0; if (Member.IsLogged) { User = Member.Logged(Context); } if (URL.Enabled) { throw new MsgException(U4200.CHECKURL); } PtcAdvert Ad; if (PageRequest == RequestType.Edit) { int adId = Convert.ToInt32(ViewState["editid"]); Ad = new PtcAdvert(adId); oldPackId = Ad.Pack.Id; } else { Ad = new PtcAdvert(); } Money AdCost = Money.Zero; PtcAdvertPack Pack = new PtcAdvertPack(); GetAdWithPrice(ref Ad, ref AdCost, ref Pack); //Add the ad to the db (for approval) Ad.Price = AdCost; if (Pack != null) { Ad.Pack = Pack; } if (Member.IsLogged) { //Take money and save the user int adViews = 0; if (AppSettings.PtcAdverts.PTCCreditsEnabled && UseExtraViewsCheckBox.Checked) { adViews = Convert.ToInt32(PTCCreditsTextBox.Text); if (adViews < 0) { throw new MsgException("Input cannot be negative."); } decimal adCreditsSpent = 0; var creditsPerDayOrClick = 0m; if (Pack == null) { if (TitanFeatures.isSatvetErturkmen) { PtcAdvertPack advertPack = TableHelper.GetListFromRawQuery <PtcAdvertPack>("SELECT TOP 1 * FROM PtcAdvertPacks")[0]; Ad.Pack = advertPack; Ad.Ends = End.FromClicks(adViews); creditsPerDayOrClick = advertPack.PTCCreditsPerDayOrClick; } } else { Ad.Ends = Ad.Ends.AddValue(adViews); creditsPerDayOrClick = Pack.PTCCreditsPerDayOrClick; } if (PageRequest == RequestType.Edit && Ad.ExtraViews != -1) { adCreditsSpent = (adViews - Ad.ExtraViews) * creditsPerDayOrClick; if (adCreditsSpent < 0) { adCreditsSpent = 0; } } else { adCreditsSpent = adViews * creditsPerDayOrClick; } Ad.ExtraViews = adViews; if (adCreditsSpent > Member.Current.PTCCredits) { throw new MsgException(U5006.NOTENOUGHADCREDITS); } else { User.SubstractFromPTCCredits(adCreditsSpent, "PTC advert"); } } else { Ad.ExtraViews = -1; } if (PageRequest == RequestType.Edit) { Ad.IsEdited = true; } Ad.TargetBalance = TargetBalanceRadioButtonList.TargetBalance; PurchaseOption.ChargeBalance(User, AdCost, TargetBalanceRadioButtonList.Feature, Ad.TargetBalance, PageRequest == RequestType.Edit ? "PTC update" : "PTC advert"); Ad.Advertiser = Advertiser.AsMember(User.Name); Ad.AdvertiserUserId = User.Id; Ad.Status = AdvertStatusExtensions.GetStartingStatus(); if (AppSettings.PtcAdverts.AdvertPTCPackCashbackEnabled && Pack.PTCPackCashBackPercent != 0) { Money CashBack = new Money(Double.Parse(AdCost.ToClearString()) * ((Double)Pack.PTCPackCashBackPercent / 100.0)); User.AddToTrafficBalance(CashBack, U6010.PTCCASHBACK); User.Save(); } } else { Ad.Advertiser = Advertiser.AsStranger(OutEmail.Text); Ad.TargetBalance = PurchaseBalances.PaymentProcessor; Ad.Status = AdvertStatus.Null; } if (oldPackId != 0 && oldPackId != Ad.Pack.Id) { Ad.ResetClicks(); } Ad.Save(); if (Member.IsLogged) { //Achievements trial int UserCurrentCampaigns = TableHelper.CountOf <PtcAdvert>(TableHelper.MakeDictionary("CreatorUsername", User.Name)); bool ShouldBeSaved = User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterAdvertisingPtcCampaigns, UserCurrentCampaigns)); if (ShouldBeSaved) { User.Save(); } if (PageRequest == RequestType.Edit) { History.AddEdit(User.Name, AdCost, "Advert campaign"); } else { History.AddPurchase(User.Name, AdCost, "Advert campaign"); MatrixBase.TryAddMemberAndCredit(User, AdCost, AdvertType.PTC); } if (Ad.Status != AdvertStatus.WaitingForAcceptance) { PtcCrediter.TryToCreditReferrerAfterPurchase(User, AdCost, PageRequest == RequestType.Edit ? "PTC update" : "PTC advert"); } Title.Text = ""; URL.Text = ""; chbDescription.Checked = false; chbGeolocation.Checked = false; chbBold.Checked = false; BackgroundColorCheckBox.Checked = false; StarredAdCheckBox.Checked = false; SuccMessagePanel.Visible = true; if (PageRequest == RequestType.Edit) { SuccMessage.Text = Ad.Status == AdvertStatus.WaitingForAcceptance ? U6012.EDITEDADAWAITSAPPROVAL : U6012.ADUPDATED; } else { SuccMessage.Text = Ad.Status == AdvertStatus.WaitingForAcceptance ? U4200.ADAWAITSAPPROVAL : U3501.ADCREATED; } } else { //Show buttons PaymentButtons.Visible = true; CreateAdButton.Visible = false; PaymentButtons.Text = GenerateHTMLButtons.GetPaymentButtons(new BuyAdvertButtonGenerator <IPtcAdvertPack>(Ad)); } ViewState["editid"] = null; } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); } } }
protected void CreateAdButton_Click(object sender, EventArgs e) { ErrorMessagePanel.Visible = false; SuccMessagePanel.Visible = false; if (Page.IsValid) { try { AppSettings.DemoCheck(); if (URL.Enabled) { throw new MsgException(U4200.CHECKURL); } var user = Member.CurrentInCache; var selectedPack = new PaidToPromotePack(Convert.ToInt32(ddlOptions.SelectedValue)); var advert = new PaidToPromoteAdvert(); var adCost = selectedPack.Price; advert.CreatorId = user.Id; advert.PackId = selectedPack.Id; //TODO ?? //advert.Status = AdvertStatusExtensions.GetStartingStatus(); advert.TargetUrl = URL.Text; if (chbGeolocation.Checked) { adCost += AppSettings.PaidToPromote.GeolocationPrice; var CTable = GeoCountries.Items; var geoUList = GeolocationUtils.GeoCountData.Keys; var sb = new StringBuilder(); foreach (ListItem item in CTable) { if (geoUList.Contains(item.Value)) { var countryCode = CountryManager.GetCountryCode(item.Value); if (!string.IsNullOrWhiteSpace(countryCode)) { sb.Append(CountryManager.GetCountryCode(item.Value)); sb.Append(","); } } } advert.GeolocatedCC = sb.ToString().Trim(','); } else { advert.GeolocatedCC = string.Empty; } if (!PaidToPromoteManager.IsEmptySlotInRotation) { throw new MsgException(U6009.NOEMPTYSLOTINROTATION); } PurchaseOption.ChargeBalance(user, adCost, TargetBalanceRadioButtonList.Feature, TargetBalanceRadioButtonList.TargetBalance, "Paid To Promote Ad Purchase"); advert.Save(); History.AddPurchase(user.Name, adCost, "Paid To Promote Campaign"); //MatrixBase matrix = MatrixFactory.GetMatrix(); //if (matrix != null) //{ // matrix.TryAddMember(User, AdvertType.PTC); // matrix.Credit(User, AdCost); //} URL.Text = ""; chbGeolocation.Checked = false; SuccMessagePanel.Visible = true; SuccMessage.Text = U3501.ADCREATED; } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); } } }
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); } if (URL.Enabled) { throw new MsgException(U4200.CHECKURL); } TrafficGridAdvert Ad = new TrafficGridAdvert(); TrafficGridAdvertPack Pack = new TrafficGridAdvertPack(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 (Member.IsLogged) { //Take money and save the user var targetBalance = TargetBalanceRadioButtonList.TargetBalance; PurchaseOption.ChargeBalance(User, AdCost, TargetBalanceRadioButtonList.Feature, targetBalance, "TrafficGrid advertising"); Ad.TargetBalance = targetBalance; Ad.Advertiser = Advertiser.AsMember(User.Name); Ad.Status = AdvertStatusExtensions.GetStartingStatus(); } else { Ad.Advertiser = Advertiser.AsStranger(OutEmail.Text); Ad.Status = AdvertStatus.Null; } //Add the ad to the db (for approval) Ad.Price = AdCost; Ad.Pack = Pack; Ad.Save(); if (Member.IsLogged) { if (Ad.Status == AdvertStatus.Active || Ad.Status == AdvertStatus.Paused) { var Crediter = (TrafficGridCrediter)CrediterFactory.Acquire(User, Titan.CreditType.TrafficGrid); Crediter.CreditReferer(AdCost); } //Achievements trial int UserCurrentCampaigns = TableHelper.CountOf <TrafficGridAdvert>(TableHelper.MakeDictionary("CreatorUsername", User.Name)); bool ShouldBeSaved = User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterAdvertisingTrafficGridCampaigns, UserCurrentCampaigns)); if (ShouldBeSaved) { User.Save(); } //Add history entry 1 History.AddPurchase(User.Name, AdCost, "TrafficGrid campaign"); //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; MatrixBase.TryAddMemberAndCredit(User, Ad.Price, AdvertType.TrafficGrid); } else { //Show buttons CreateAdButton.Visible = false; PaymentButtons.Visible = true; PaymentButtons.Text = GenerateHTMLButtons.GetPaymentButtons(new BuyAdvertButtonGenerator <ITrafficGridAdvertPack>(Ad)); } } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); throw ex; } } }
private static void BuyPlan(Member user, PurchaseBalances targetBalance, InvestmentPlatformPlan plan, Money planDiff, Money targetPrice = null) { var price = planDiff == Money.Zero ? plan.Price : planDiff; var note = string.Format("{0} purchase", plan.Name); if (targetPrice != null) { price = targetPrice; } //IF TARGET BALANCE != (AR || CASH) IT MEANS THAT WE BUY/UPGRADE FROM PAYMENT BUTTONS if (targetBalance == PurchaseBalances.Cash || targetBalance == PurchaseBalances.Purchase) { PurchaseOption.ChargeBalance(user, price, PurchaseOption.Features.InvestmentPlatform.ToString(), targetBalance, note, BalanceLogType.InvestmentPlatformPlanPurchase); } else { targetBalance = PurchaseBalances.PaymentProcessor; } if (AppSettings.InvestmentPlatform.LevelsEnabled) { InvestmentLevelsManager.CanUserDepositOnLevel(plan, user); } var userPlan = new InvestmentUsersPlans { PlanId = plan.Id, UserId = user.Id, Price = price, Status = PlanStatus.Active, BalanceBoughtType = targetBalance, PurchaseDate = DateTime.Now, MoneyReturned = Money.Zero, MoneyToReturn = Money.MultiplyPercent(price, plan.Roi), CurrentMonthPayout = Money.Zero }; userPlan.Save(); InvestmentLevelsManager.DepositOnLevel(plan, userPlan.Id, user); if (AppSettings.InvestmentPlatform.ProofsEnabled) { HtmlInvestmentProofGenerator proof; if (AppSettings.InvestmentPlatform.LevelsEnabled) { proof = new HtmlInvestmentProofGenerator(InvestmentTicket.GetTicket(user.Id, userPlan.Id)); } else { proof = new HtmlInvestmentProofGenerator(userPlan); } proof.SendPdfViaEmail(); } MatrixBase.TryAddMemberAndCredit(user, price, AdvertType.InvestmentPlan); InvestmentPlanCrediter Crediter = new InvestmentPlanCrediter(user); Crediter.CreditStructure(price); if (user.HasReferer) { TryToSpeedUpReferrer(user.ReferrerId, price, user.Name); Crediter.CreditReferer(price); } }