public int GetLeaderBonusPercent() { int closedGroup = CustomGroupManager.GetUsersHighestExpiredGroupNumber(this.Id); if (closedGroup == 1) { return(6); } if (closedGroup == 2) { return(7); } if (closedGroup == 3) { return(8); } if (closedGroup == 4) { return(9); } if (closedGroup == 5) { return(10); } return(5); //default }
public string GetLeaderColor() { int closedGroup = CustomGroupManager.GetUsersHighestExpiredGroupNumber(this.Id); if (closedGroup == 1) { return("#70981a"); } if (closedGroup == 2) { return("#1fa5d7"); } if (closedGroup == 3) { return("#cfaf1a"); } if (closedGroup == 4) { return("#c63522"); } if (closedGroup == 5) { return("#b123c1"); } return("white"); //default }
private void BindToGroupsAvailableToOpenRadio() { GroupsAvailableToOpen.Items.Clear(); var groups = CustomGroupManager.GetAvailableGroups(User.Id); var usersHighestClosedGroup = CustomGroupManager.GetUsersHighestClosedGroup(User); for (int i = 0; i < groups.Count; i++) { var itemKey = groups[i].Id.ToString(); string profitString = ""; if (AppSettings.RevShare.AdPack.CustomReturnOption == CustomReturnOption.Accelerate) { profitString = U4200.DAILYPROFITRAISEDBY; } else if (AppSettings.RevShare.AdPack.CustomReturnOption == CustomReturnOption.Increase) { profitString = U5001.PROFITRAISEDBY; } var itemString = " " + profitString + ": " + "<b>" + ((AppSettings.RevShare.AdPack.CustomReturnOption == CustomReturnOption.Increase ? ("+" + (groups[i].AcceleratedProfitPercentage).ToString()) : groups[i].AcceleratedProfitPercentage.ToString())) + "%</b>, " + U5001.PACKSREQUIREDTOOPENCLOSE.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural) + ": <b>" + groups[i].CreatorsMinNumberOfAdPacks.ToString() + "/" + groups[i].AdPacksLimit.ToString() + "</b> " + ", " + U5001.OPENINSTANCES + ": <b>" + CustomGroupManager.GetNumberOfUsersCustomGroupInstances(User.Id, groups[i].Id) + "/" + groups[i].NumberOfGroupsLimit + "</b>"; var isEnabled = true; if (CustomGroupManager.GetNumberOfUsersCustomGroupInstances(User.Id, groups[i].Id) >= groups[i].NumberOfGroupsLimit) { isEnabled = false; } if (groups[i].Number > usersHighestClosedGroup + 1) { isEnabled = false; } ListItem item = new ListItem(itemString, itemKey, isEnabled); GroupsAvailableToOpen.Items.Add(item); } if (GroupsAvailableToOpen.Items.Count <= 0) { ListItem item = new ListItem(U4200.YOUMUSTCLOSEGROUPS, "-1", false); GroupsAvailableToOpen.Items.Add(item); } GroupsAvailableToOpen.SelectedIndex = 0; }
private string GetParticipants() { StringBuilder sb = new StringBuilder(); var participants = CustomGroupManager.GetParticipantNamesAndAdPackCount(userCustomGroup); foreach (var participant in participants) { sb.Append(MemberManager.getUsersProfileURL(participant.Key) + "(" + participant.Value + "), "); } string final = sb.ToString(); if (!string.IsNullOrWhiteSpace(final)) { final = final.Remove(final.Length - 2); } return(final); }
protected void JoinLeaveGroupButton_Click(object sender, EventArgs e) { SPanel.Visible = false; EPanel.Visible = false; try { int numberOfAdPacks = Convert.ToInt32(AdPacksTextBox.Text); if (numberOfAdPacks <= 0) { throw new MsgException(U4200.CANTBUYZEROADPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackName)); } var TheButton = (Button)sender; if (TheButton.CommandArgument == "true") { CustomGroupManager.AddRemoveUsersAdPacksToCustomGroup(User.Id, numberOfAdPacks, userCustomGroup, true); } else if (TheButton.CommandArgument == "false") { CustomGroupManager.AddRemoveUsersAdPacksToCustomGroup(User.Id, numberOfAdPacks, userCustomGroup, false); } SPanel.Visible = true; if (TheButton.CommandArgument == "true") { SText.Text = U4200.JOINGROUPSUCCESS.Replace("%n%", userCustomGroup.Name).Replace("%p%", numberOfAdPacks + " " + AppSettings.RevShare.AdPack.AdPackNamePlural); } else if (TheButton.CommandArgument == "false") { SText.Text = U4200.LEAVEGROUPSUCCESS.Replace("%n%", numberOfAdPacks.ToString()).Replace("%p%", AppSettings.RevShare.AdPack.AdPackNamePlural); } CustomGroup customGroup = new CustomGroup(userCustomGroup.CustomGroupId); if (userCustomGroup.AdPacksAdded >= customGroup.AdPacksLimit) { if (AppSettings.RevShare.AdPack.CustomReturnOption == CustomReturnOption.Increase) { CustomGroupManager.IncreaseAdPacksReturnAmountInClosedGroup(customGroup, userCustomGroup); } userCustomGroup.Status = CustomGroupStatus.Active; if (AppSettings.RevShare.AdPack.RevShareCustomGroupRewardsEnabled) { GroupRewardManager.Apply(customGroup, userCustomGroup); } } else { userCustomGroup.Status = CustomGroupStatus.InProgress; } userCustomGroup.Save(); UpdateAvailableAdPacks(); DataBind(); } catch (MsgException ex) { EPanel.Visible = true; EText.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); } }
private static void DailyDistribution(bool HourDistribution = false, bool FinalDistributionButHourly = false) { DailyPool Pool = DailyPool.GetYesterdayPool(PoolsHelper.GetBuiltInProfitPoolId(Pools.AdPackRevenueReturn)); String RaportMessage = String.Empty; Int32 ActiveAdPacks = 0; Money TotalDistributed = Money.Zero; Money PerUnit = Money.Zero; Money InThePool = Pool.SumAmount; using (var bridge = ParserPool.Acquire(Database.Client)) { DistributionSQLHelper DistributionHelper = new DistributionSQLHelper(bridge.Instance); DistributionHelper.SetStartingDistributionPriority(); ActiveAdPacks = DistributionHelper.GetSumOfActiveAdPacks(); try { if (AppSettings.RevShare.AdPack.GroupPolicy == GroupPolicy.Classic) { //Classic //Nothing to change } if (AppSettings.RevShare.AdPack.GroupPolicy == GroupPolicy.CustomGroups || AppSettings.RevShare.AdPack.GroupPolicy == GroupPolicy.AutomaticAndCustomGroups) { //CustomGrups if (AppSettings.RevShare.AdPack.CustomReturnOption == CustomReturnOption.Accelerate) { DistributionHelper.UpdatePrioritiesCustomGroups(); } } if (AppSettings.RevShare.AdPack.GroupPolicy == GroupPolicy.AutomaticGroups || AppSettings.RevShare.AdPack.GroupPolicy == GroupPolicy.AutomaticAndCustomGroups) { //AutomaticGroups DistributionHelper.UpdatePrioritiesAutomaticGroups(); } Decimal priorities = DistributionHelper.GetSumOfPriorities(); if (ActiveAdPacks == 0) { throw new MsgException("No active AdPacks with active members. " + GetNoDistributionMessage(HourDistribution)); } //Make the distribution var adPackTypes = AdPackTypeManager.GetAllTypes(); foreach (var adPackType in adPackTypes) { var returnedPercentage = 0.0m; if (AppSettings.RevShare.AdPack.DistributionPolicy == DistributionPolicy.Fixed) { PerUnit = GetMoneyPerUnit(GetMoneyPerUnitFixed(adPackType), HourDistribution, FinalDistributionButHourly, adPackType); returnedPercentage = adPackType.FixedDistributionValuePercent; } else if (AppSettings.RevShare.AdPack.DistributionPolicy == DistributionPolicy.Pools) { PerUnit = GetMoneyPerUnit(GetMoneyPerUnitPools(InThePool, priorities), HourDistribution, FinalDistributionButHourly, adPackType); returnedPercentage = PerUnit.ToDecimal() / adPackType.Price.ToDecimal(); } RaportMessage += "<b>" + adPackType.Name + "</b> for priority 1.00 (no acceleration): <b>" + PerUnit.ToClearString() + "</b>. <br/>"; if (PerUnit > Money.Zero) { TotalDistributed += DistributionHelper.DistributeUsingPriority(PerUnit, adPackType.Id); } RevShareManager.AddAdPackTypePercentageHistory(adPackType.Id, returnedPercentage); } if (TitanFeatures.isAri) { AriRevShareDistribution.CreditAriRevShareDistribution(); } } catch (MsgException ex) { RaportMessage += ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); } Pool.SumAmount -= TotalDistributed; if (HourDistribution == false) { if (AppSettings.RevShare.AdPack.DistributionPolicy == DistributionPolicy.Pools) { RaportMessage += "Money moved to the next day pool: " + Pool.SumAmount.ToClearString() + ". "; } Pool.MoveMoneyForTomorrow(); } Pool.Save(); Report.Add(ActiveAdPacks, InThePool, TotalDistributed, RaportMessage); CustomGroupManager.TrySetGroupsAsExpired(); } }
protected void CreateGroupButton_Click(object sender, EventArgs e) { SPanel.Visible = false; EPanel.Visible = false; try { if (!AdPacksPlaceHolder.Visible) { throw new MsgException(U4200.YOUMUSTCLOSEGROUPS); } int userGroupId = Convert.ToInt32(GroupsAvailableToOpen.SelectedValue); int numberOfAdPacks = 0; try { numberOfAdPacks = Convert.ToInt32(AdPacksTextBox.Text); } catch (Exception ex) { throw new MsgException(U4000.BADFORMAT); } if (numberOfAdPacks <= 0) { throw new MsgException(U4200.CANTBUYZEROADPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackName)); } var customGroup = new CustomGroup(userGroupId); var usersHighestClosedNumber = CustomGroupManager.GetUsersHighestClosedGroup(User); var allAdPacksList = AdPackManager.GetUsersActiveAdPacksForGroups(User.Id, customGroup); IEnumerable <AdPack> adPacksList = (from a in allAdPacksList select a).Take(numberOfAdPacks); if (adPacksList.Count() < numberOfAdPacks) { throw new MsgException(U4200.NOTENOUGHADPACKSAVAILABLEFORGROUPS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural)); } //HAS USER CLOSED A GROUP WITH A LOWER NUMBER? if (customGroup.Number > usersHighestClosedNumber + 1) { throw new MsgException(U4200.CANTCREATEGROUPOFTHISTYPE); } //MIN NUMBER OF PACKS TO CREATE if (customGroup.CreatorsMinNumberOfAdPacks > numberOfAdPacks) { throw new MsgException(U4200.MOREADPACKSREQUIRED.Replace("%n%", customGroup.CreatorsMinNumberOfAdPacks.ToString()).Replace("%p%", AppSettings.RevShare.AdPack.AdPackNamePlural)); } //NUMBER OF PACKS TO CLOSE if (customGroup.AdPacksLimit < numberOfAdPacks) { throw new MsgException(U4200.TOOMANYPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural) + " " + customGroup.AdPacksLimit); } //MAX OPEN INSTANCES if (CustomGroupManager.GetNumberOfUsersCustomGroupInstances(User.Id, customGroup.Id) >= customGroup.NumberOfGroupsLimit) { throw new MsgException("You cannot exceed your group open instances limit"); } //MAX ADMIN ADPACKS if (customGroup.CreatorsMaxNumberOfAdPacks < numberOfAdPacks) { throw new MsgException(U4200.TOOMANYPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural) + " " + customGroup.CreatorsMaxNumberOfAdPacks); } string name = GroupNameTextBox.Text; string description = GroupDescriptionTextBox.Text; string videoURL = PromoUrlTextBox.Text; string email = EmailTextBox.Text; string skype = SkypeTextBox.Text; string phoneNumber = PhoneNumberTextBox.Text; string facebookURL = FacebookUrlTextBox.Text; if (!string.IsNullOrWhiteSpace(facebookURL) && !facebookURL.Contains("facebook.com")) { throw new MsgException(L1.ER_BADURL); } //IFRAME VALID? if (!string.IsNullOrWhiteSpace(videoURL) && !UrlVerifier.IsIframeValid(videoURL)) { throw new MsgException(U4200.INVALIDIFRAME); } CustomGroupManager.CreateUserCustomGroup(NewCustomGroup, customGroup, adPacksList, User, name, description, videoURL, email, skype, phoneNumber, facebookURL); SPanel.Visible = true; string groupUrl = string.Format("{0}user/advert/groups/customgroup.aspx?g={1}", AppSettings.Site.Url, NewCustomGroup.Id); SText.Text = U4200.CREATEGROUPSUCCESS.Replace("%n%", name).Replace("%p%", numberOfAdPacks + " " + AppSettings.RevShare.AdPack.AdPackNamePlural).Replace("%u%", "<br/>" + groupUrl); if (NewCustomGroup.AdPacksAdded >= customGroup.AdPacksLimit) { if (AppSettings.RevShare.AdPack.CustomReturnOption == CustomReturnOption.Increase) { CustomGroupManager.IncreaseAdPacksReturnAmountInClosedGroup(customGroup, NewCustomGroup); } SText.Text += "<br/>" + U5001.CREATORCLOSECUSTOMGROUPSUCCESS.Replace("%a%", AppSettings.RevShare.AdPack.AdPackName) .Replace("%b%", (customGroup.AcceleratedProfitPercentage).ToString()); NewCustomGroup.Status = CustomGroupStatus.Active; } else { NewCustomGroup.Status = CustomGroupStatus.InProgress; } NewCustomGroup.Save(); BindToGroupsAvailableToOpenRadio(); UpdateAvailableAdPacks(); ClearControls(); } catch (MsgException ex) { EPanel.Visible = true; EText.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); } }
protected void ClosedGroupsGridView2DataSource_Init(object sender, EventArgs e) { ClosedGroupsGridView2DataSource.SelectCommand = CustomGroupManager.GroupSqlCommand(CustomGroupStatus.Expired); }
protected void OpenGroupsGridView_Init(object sender, EventArgs e) { OpenGridViewDataSource.SelectCommand = CustomGroupManager.GroupSqlCommand(CustomGroupStatus.InProgress); }