HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RMourik/bassol.nl/wwwroot/CMSModules/Polls/Controls/PollProperties.ascx.cs
using System;

using CMS.Helpers;
using CMS.Polls;
using CMS.UIControls;
using CMS.WebAnalytics;
using CMS.ExtendedControls;

public partial class CMSModules_Polls_Controls_PollProperties : CMSAdminEditControl
{
    #region "Variables"

    private int mSiteID = 0;
    private int mGroupID = 0;
    private PollInfo pollObj = null;

    #endregion


    #region "Properties"

    /// <summary>
    /// Messages placeholder
    /// </summary>
    public override MessagesPlaceHolder MessagesPlaceHolder
    {
        get
        {
            return plcMess;
        }
    }


    /// <summary>
    /// Indicates if control is used on live site.
    /// </summary>
    public override bool IsLiveSite
    {
        get
        {
            return base.IsLiveSite;
        }
        set
        {
            plcMess.IsLiveSite = value;
            base.IsLiveSite = value;
        }
    }


    /// <summary>
    /// Gets or Sets site ID of the poll.
    /// </summary>
    public int SiteID
    {
        get
        {
            return mSiteID;
        }
        set
        {
            mSiteID = value;
        }
    }


    /// <summary>
    /// Gets or sets group ID.
    /// </summary>
    public int GroupID
    {
        get
        {
            return mGroupID;
        }
        set
        {
            mGroupID = value;
        }
    }


    /// <summary>
    /// Enables or disables the panel.
    /// </summary>
    public bool Enabled
    {
        get
        {
            return pnlBody.Enabled;
        }
        set
        {
            pnlBody.Enabled = value;
        }
    }

    #endregion


    #region "Methods"

    protected void Page_Load(object sender, EventArgs e)
    {
        // Required field validator error messages initialization
        rfvCodeName.ErrorMessage = GetString("general.requirescodename");
        rfvDisplayName.ErrorMessage = GetString("general.requiresdisplayname");
        rfvQuestion.ErrorMessage = GetString("Polls_New.QuestionError");
        rfvMaxLength.ErrorMessage = GetString("general.errortexttoolong");
        rfvMaxLengthResponse.ErrorMessage = GetString("general.errortexttoolong");
        dtPickerOpenFrom.IsLiveSite = IsLiveSite;
        dtPickerOpenTo.IsLiveSite = IsLiveSite;

        // Set if it is live site
        txtDisplayName.IsLiveSite = txtTitle.IsLiveSite = txtQuestion.IsLiveSite = txtResponseMessage.IsLiveSite = IsLiveSite;

        if (!RequestHelper.IsPostBack())
        {
            // Show possible license limitation error relayed from new poll page
            string error = QueryHelper.GetText("error", null);
            if (!string.IsNullOrEmpty(error))
            {
                ShowError(error);
            }
        }

        if (pollObj == null)
        {
            pollObj = PollInfoProvider.GetPollInfo(ItemID);
            if ((ItemID > 0) && !IsLiveSite)
            {
                EditedObject = pollObj;
            }
        }

        if (pollObj != null)
        {
            // Fill editing form
            if (!RequestHelper.IsPostBack() && !IsLiveSite)
            {
                ReloadData();
            }
        }

        btnOk.Enabled = Enabled;
    }


    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        // Hide code name editing in simple mode
        plcCodeName.Visible = !(DisplayMode == ControlDisplayModeEnum.Simple);
    }


    /// <summary>
    /// Clears data.
    /// </summary>
    public override void ClearForm()
    {
        base.ClearForm();
        txtDisplayName.Text = null;
        txtCodeName.Text = null;
        txtTitle.Text = null;
        txtQuestion.Text = null;
        dtPickerOpenFrom.SelectedDateTime = DateTimeHelper.ZERO_TIME;
        dtPickerOpenTo.SelectedDateTime = DateTimeHelper.ZERO_TIME;
        txtResponseMessage.Text = null;
        chkAllowMultipleAnswers.Checked = false;
    }


    /// <summary>
    /// Reloads control with new data.
    /// </summary>
    public override void ReloadData()
    {
        ClearForm();
        pollObj = pollObj ?? PollInfoProvider.GetPollInfo(ItemID);

        if (pollObj == null)
        {
            return;
        }

        txtCodeName.Text = pollObj.PollCodeName;
        txtDisplayName.Text = pollObj.PollDisplayName;
        txtTitle.Text = pollObj.PollTitle;
        txtQuestion.Text = pollObj.PollQuestion;

        if (pollObj.PollOpenFrom != DateTimeHelper.ZERO_TIME)
        {
            dtPickerOpenFrom.SelectedDateTime = pollObj.PollOpenFrom;
        }

        if (pollObj.PollOpenTo != DateTimeHelper.ZERO_TIME)
        {
            dtPickerOpenTo.SelectedDateTime = pollObj.PollOpenTo;
        }

        txtResponseMessage.Text = pollObj.PollResponseMessage;
        chkAllowMultipleAnswers.Checked = pollObj.PollAllowMultipleAnswers;

        if (ActivitySettingsHelper.ActivitiesEnabledAndModuleLoaded(SiteID))
        {
            plcOnline.Visible = true;
            chkLogActivity.Checked = pollObj.PollLogActivity;
        }
    }


    /// <summary>
    /// Sets data to database.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        if ((SiteID > 0) && !CheckPermissions("cms.polls", PERMISSION_MODIFY))
        {
            return;
        }
        if ((SiteID <= 0) && !CheckPermissions("cms.polls", PERMISSION_GLOBALMODIFY))
        {
            return;
        }

        // Get trimmed inputs
        string codeName = txtCodeName.Text.Trim();
        string displayName = txtDisplayName.Text.Trim();
        string question = txtQuestion.Text.Trim();

        // Validate the fields
        string errorMessage = new Validator()
            .NotEmpty(codeName, rfvCodeName.ErrorMessage)
            .NotEmpty(displayName, rfvDisplayName.ErrorMessage)
            .NotEmpty(question, rfvQuestion.ErrorMessage)
            .Result;

        if (!ValidationHelper.IsCodeName(codeName))
        {
            errorMessage = GetString("General.ErrorCodeNameInIdentifierFormat");
        }
        else
        {
            // From/to date validation
            if (!dtPickerOpenFrom.IsValidRange() || !dtPickerOpenTo.IsValidRange())
            {
                errorMessage = GetString("general.errorinvaliddatetimerange");
            }

            if (string.IsNullOrEmpty(errorMessage) &&
                (!ValidationHelper.IsIntervalValid(dtPickerOpenFrom.SelectedDateTime, dtPickerOpenTo.SelectedDateTime, true)))
            {
                errorMessage = GetString("General.DateOverlaps");
            }
        }

        if (!string.IsNullOrEmpty(errorMessage))
        {
            // Error message - validation
            ShowError(errorMessage);
            return;
        }

        // Check uniqueness
        PollInfo secondPoll = null;
        if (SiteID <= 0)
        {
            // Try to find poll in global polls (leading period denotes global poll)
            secondPoll = PollInfoProvider.GetPollInfo("." + codeName, 0);
        }
        else
        {
            // Try to find poll in site polls
            secondPoll = PollInfoProvider.GetPollInfo(codeName, SiteID, GroupID);
            if (secondPoll != null && secondPoll.PollSiteID == 0)
            {
                secondPoll = null;
            }
        }
        if (secondPoll != null && (secondPoll.PollID != ItemID))
        {
            // Error message - Code name already exist
            ShowError(GetString("polls.codenameexists"));
            return;
        }

        pollObj = pollObj ?? PollInfoProvider.GetPollInfo(ItemID);
        if (pollObj == null)
        {
            // Error message - Poll does not exist
            ShowError(GetString("polls.pollnotexist"));
            return;
        }

        if (pollObj.PollSiteID != SiteID)
        {
            throw new Exception("[PollProperties.ascx]: Wrong poll object received since SiteID parameter wasn't provided.");
        }

        // Store the fields
        pollObj.PollCodeName = codeName;
        pollObj.PollDisplayName = displayName;
        pollObj.PollTitle = txtTitle.Text.Trim();
        pollObj.PollQuestion = question;
        pollObj.PollOpenFrom = dtPickerOpenFrom.SelectedDateTime;
        pollObj.PollOpenTo = dtPickerOpenTo.SelectedDateTime;
        pollObj.PollResponseMessage = txtResponseMessage.Text.Trim();
        pollObj.PollAllowMultipleAnswers = chkAllowMultipleAnswers.Checked;

        if (plcOnline.Visible)
        {
            pollObj.PollLogActivity = chkLogActivity.Checked;
        }
        // Save the data
        try
        {
            PollInfoProvider.SetPollInfo(pollObj);
        }
        catch (Exception ex)
        {
            ShowError(GetString("general.saveerror"), ex.Message, null);
            return;
        }

        ShowChangesSaved();

        // Raise on saved event
        RaiseOnSaved();
    }

    #endregion
}