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; }
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); }