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/MBoogaard/oosting-horseriding.com/CMS/CMSFormControls/Filters/NumberFilter.ascx.cs
using System;
using System.Web.UI.WebControls;

using CMS.Base;
using CMS.DataEngine;
using CMS.EventLog;
using CMS.FormControls;
using CMS.Helpers;

public partial class CMSFormControls_Filters_NumberFilter : FormEngineUserControl
{
    protected string mOperatorFieldName;


    #region "Properties"

    /// <summary>
    /// Gets or sets value.
    /// </summary>
    public override object Value
    {
        get
        {
            return txtText.Text;
        }
        set
        {
            // Load default value on insert
            if ((value != null) && (FieldInfo != null))
            {
                switch (FieldInfo.DataType)
                {
                    case FieldDataType.Double:
                    case FieldDataType.Decimal:
                        {
                            // Convert double and decimal to proper values
                            Double dblVal = ValidationHelper.GetDoubleSystem(value, Double.NaN);
                            txtText.Text = !Double.IsNaN(dblVal) ? dblVal.ToString() : String.Empty;
                        }
                        return;
                    case FieldDataType.TimeSpan:
                        {
                            // Convert timespan to proper value
                            TimeSpan spanVal = ValidationHelper.GetTimeSpanSystem(value, TimeSpan.MinValue);
                            txtText.Text = (spanVal != TimeSpan.MinValue) ? spanVal.ToString() : String.Empty;
                        }
                        return;
                }
            }

            txtText.Text = ValidationHelper.GetString(value, null);
        }
    }


    /// <summary>
    /// Gets name of the field for operator value. Default value is '{FieldName}Operator' where {FieldName} is name of the current field.
    /// </summary>
    protected string OperatorFieldName
    {
        get
        {
            if (string.IsNullOrEmpty(mOperatorFieldName))
            {
                // Get name of the field for operator value
                mOperatorFieldName = DataHelper.GetNotEmpty(GetValue("OperatorFieldName"), Field + "Operator");
            }
            return mOperatorFieldName;
        }
    }


    /// <summary>
    /// Gets or sets default operator to use for the first initialization of the control.
    /// </summary>
    public string DefaultOperator
    {
        get
        {
            return ValidationHelper.GetString(GetValue("DefaultOperator"), "=");
        }
        set
        {
            SetValue("DefaultOperator", value);
        }
    }

    #endregion


    #region "Methods"

    protected override void CreateChildControls()
    {
        base.CreateChildControls();

        CheckFieldEmptiness = false;
        InitFilterDropDown();

        LoadOtherValues();
    }


    /// <summary>
    /// Loads the other fields values to the state of the form control.
    /// </summary>
    public override void LoadOtherValues()
    {
        drpOperator.SelectedValue = ValidationHelper.GetString(GetColumnValue(OperatorFieldName), DefaultOperator);
    }


    /// <summary>
    /// Returns other values related to this form control.
    /// </summary>
    /// <returns>Returns an array where first dimension is attribute name and the second dimension is its value.</returns>
    public override object[,] GetOtherValues()
    {
        if (Form.Data is DataRowContainer)
        {
            if (!ContainsColumn(OperatorFieldName))
            {
                Form.DataRow.Table.Columns.Add(OperatorFieldName);
            }
        }

        // Set properties names
        object[,] values = new object[3, 2];

        values[0, 0] = OperatorFieldName;
        values[0, 1] = drpOperator.SelectedValue;

        return values;
    }


    /// <summary>
    /// Initializes operator filter drop-down list.
    /// </summary>
    private void InitFilterDropDown()
    {
        ListItemCollection items = drpOperator.Items;
        if (items.Count == 0)
        {
            items.Add(new ListItem(GetString("filter.equals"), "="));
            items.Add(new ListItem(GetString("filter.notequals"), "<>"));
            items.Add(new ListItem(GetString("filter.lessthan"), "<"));
            items.Add(new ListItem(GetString("filter.lessorequal"), "<="));
            items.Add(new ListItem(GetString("filter.greaterthan"), ">"));
            items.Add(new ListItem(GetString("filter.greaterorequal"), ">="));
        }
    }


    /// <summary>
    /// Gets where condition.
    /// </summary>
    public override string GetWhereCondition()
    {
        EnsureChildControls();

        var value = ValidationHelper.GetString(Value, String.Empty);
        string op = drpOperator.SelectedValue;
        bool isTimeSpan = false;

        // No condition
        if (String.IsNullOrWhiteSpace(value) || String.IsNullOrEmpty(op) || !(ValidationHelper.IsDouble(value) || (isTimeSpan = ValidationHelper.IsTimeSpan(value))))
        {
            return null;
        }

        // Convert value to default culture format
        value = DataHelper.ConvertValueToDefaultCulture(value, !isTimeSpan ? typeof (double) : typeof (TimeSpan));

        if (String.IsNullOrEmpty(WhereConditionFormat))
        {
            // Get default where condition
            object typedValue;
            if (isTimeSpan)
            {
                typedValue = ValidationHelper.GetTimeSpanSystem(value, TimeSpan.MinValue);
            }
            else
            {
                typedValue = ValidationHelper.GetDoubleSystem(value, Double.NaN);
            }

            return new WhereCondition(FieldInfo.Name, op.ToEnum<QueryOperator>(), typedValue).ToString(true);
        }

        try
        {
            // Return custom where condition
            return String.Format(WhereConditionFormat, FieldInfo.Name, value, op);
        }
        catch (Exception ex)
        {
            // Log exception
            EventLogProvider.LogException("NumberFilter", "GetWhereCondition", ex);
        }

        return null;
    }

    #endregion
}