예제 #1
0
        private void filterInputDropBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (filterInputDropBox.SelectedIndex > -1)
            {
                selectedInput = (Filter.InputType)Enum.Parse(inType, filterInputDropBox.SelectedItem.ToString());
                filterOpDropBox.Items.Clear();
                filterOpDropBox.Items.AddRange(Enum.GetNames(opType));

                if (selectedInput < Filter.InputType.String)
                {
                    for (int i = 0; i < (int)Filter.Type.EqualTo; i++)
                    {
                        filterOpDropBox.Items.RemoveAt(0);
                    }
                }
                else
                {
                    for (int i = (int)Filter.Type.GreaterThan; i <= (int)Filter.Type.WithinRange; i++)
                    {
                        filterOpDropBox.Items.RemoveAt((int)Filter.Type.GreaterThan);
                    }
                }
            }
            filterEditDropBox.Enabled     = columnBox.Enabled = columnBox.Visible = columnLbl.Visible = columnLbl.Enabled = selectedInput != Filter.InputType.LineRemover;
            filterOpDropBox.SelectedIndex = 0;
            filterOpDropBox.Refresh();
            filterEditDropBox.SelectedIndex = 0;
        }
예제 #2
0
        private bool PerformFilter(Filter.InputType inType, Filter.Type opType, string minMatchValue, string valMax, string compValue)
        {
            bool   shouldWrite = false;
            object value       = new object();
            object maxValue    = new object();
            object columnValue = new object();

            if (inType == Filter.InputType.Numeric)
            {
                compValue   = compValue.Replace("$", "").Replace(",", "").Replace("\"", "").Trim();
                value       = double.Parse(minMatchValue);
                columnValue = double.Parse(compValue);
                maxValue    = opType == Filter.Type.WithinRange ? double.Parse(valMax) : 0;
            }
            else if (inType == Filter.InputType.String)
            {
                value       = minMatchValue;
                columnValue = compValue;
            }
            else if (inType == Filter.InputType.DaysOld)
            {
                TimeSpan timeToRemove = new TimeSpan(int.Parse(minMatchValue), 0, 0, 0);
                TimeSpan spanMax      = opType == Filter.Type.WithinRange ? new TimeSpan(int.Parse(valMax), 0, 0, 0) : new TimeSpan();

                columnValue = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0).Subtract(timeToRemove).Date.Ticks;
                value       = DateTime.Parse(compValue).Date.Ticks;
                maxValue    = opType == Filter.Type.WithinRange ? new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0).Subtract(spanMax).Date.Ticks : 0;
            }
            else if (inType == Filter.InputType.FromDate)
            {
                columnValue = DateTime.Parse(compValue).Date.Ticks;
                value       = DateTime.Parse(minMatchValue).Date.Ticks;
                maxValue    = opType == Filter.Type.WithinRange ? DateTime.Parse(valMax).Date.Ticks : 0;
            }
            else if (inType == Filter.InputType.LineRemover)
            {
                columnValue = (long)curIndex;
                value       = long.Parse(minMatchValue);
                maxValue    = opType == Filter.Type.WithinRange ? long.Parse(valMax) : 0;
            }

            if (opType == Filter.Type.GreaterThan)
            {
                shouldWrite = (long)columnValue > (long)value;
            }

            else if (opType == Filter.Type.LesserThan)
            {
                shouldWrite = (long)columnValue < (long)value;
            }

            else if (opType == Filter.Type.GreaterThanOrEqualTo)
            {
                shouldWrite = (long)columnValue >= (long)value;
            }

            else if (opType == Filter.Type.LessThanOrEqualTo)
            {
                shouldWrite = (long)columnValue <= (long)value;
            }
            else if (opType == Filter.Type.WithinRange)
            {
                shouldWrite = opType == Filter.Type.WithinRange && (long)columnValue >= (long)value && (long)columnValue <= (long)maxValue;
            }
            if (opType == Filter.Type.EqualTo)
            {
                shouldWrite = columnValue == value;
            }
            else if (opType == Filter.Type.NotEqualTo)
            {
                shouldWrite = columnValue != value;
            }
            else if (opType == Filter.Type.StartsWith)
            {
                shouldWrite = columnValue.ToString().StartsWith(value.ToString());
            }
            else if (opType == Filter.Type.Contains)
            {
                shouldWrite = columnValue.ToString().Contains(value.ToString());
            }
            if (inType == Filter.InputType.LineRemover)
            {
                return(!shouldWrite);
            }
            return(shouldWrite);
        }