Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
    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);
        }
    }