public override SmartViewRule Read(SmartViewFilter filter, SmartViewField field, string value) { DateTime datetime; if (DateTime.TryParse(value, CultureInfo.InvariantCulture, DateTimeStyles.None, out datetime)) { return(new SmartViewDateRule(filter, field, new SmartViewDateParameter(datetime))); } else { return(new SmartViewDateRule(filter, field, new SmartViewDateParameter(int.Parse(value)))); } }
public static SmartViewEditMode GetEditMode(SmartViewFilter filter, SmartViewField field) { switch (filter) { case SmartViewFilter.Contains: case SmartViewFilter.BeginsWith: case SmartViewFilter.EndsWith: case SmartViewFilter.DoesNotContains: return(new SmartViewEditMode(SmartViewEditType.Text)); case SmartViewFilter.Is: case SmartViewFilter.IsNot: return(GetEditModeIs(field)); case SmartViewFilter.IsMoreThan: case SmartViewFilter.IsLessThan: return(new SmartViewEditMode(SmartViewEditType.Numeric)); case SmartViewFilter.IsAfter: case SmartViewFilter.IsBefore: return(new SmartViewEditMode(SmartViewEditType.Date)); case SmartViewFilter.WasInTheLast: case SmartViewFilter.WasNotInTheLast: case SmartViewFilter.IsInTheNext: case SmartViewFilter.IsNotInTheNext: return(new SmartViewEditMode(SmartViewEditType.Numeric, StringResources.SmartView_DaysPeriod)); case SmartViewFilter.IsIn: case SmartViewFilter.IsNotIn: return(new SmartViewEditMode(SmartViewEditType.Numeric, StringResources.SmartView_Days)); case SmartViewFilter.Was: case SmartViewFilter.WasNot: return(new SmartViewEditMode(SmartViewEditType.Numeric, StringResources.SmartView_DaysAgo)); case SmartViewFilter.Exists: case SmartViewFilter.DoesNotExist: case SmartViewFilter.Yes: case SmartViewFilter.No: case SmartViewFilter.IsYesterday: case SmartViewFilter.IsToday: case SmartViewFilter.IsTomorrow: return(new SmartViewEditMode(SmartViewEditType.None)); default: throw new ArgumentOutOfRangeException("filter"); } }
public SmartViewRuleValueViewModel CreateValueViewModel(SmartViewFilter filter, SmartViewField field, object value) { IEnumerable <string> values = null; if (field == SmartViewField.Folder) { values = this.Workbook.Folders.Select(f => f.Name); } else if (field == SmartViewField.Context) { values = this.workbook.Contexts.Select(f => f.Name); } else if (field == SmartViewField.Priority) { values = TaskPriorityConverter.Descriptions; } if (value is SmartViewDateParameter) { var dateParameter = (SmartViewDateParameter)value; if (dateParameter.Date != null) { value = dateParameter.Date; } else { value = dateParameter.Days; } } else if (value is TaskPriority) { value = ((TaskPriority)value).GetDescription(); } var valueViewModel = new SmartViewRuleValueViewModel(SmartViewHelper.GetEditMode(filter, field).Type, values) { Value = value }; return(valueViewModel); }
protected SmartViewRule(SmartViewFilter filter, SmartViewField field, T value) : base(filter, field, value) { }
public static SmartViewRule BuildRule(SmartViewFilter filter, SmartViewField field, object param) { var rule = GetSupportedRule(field); if (rule is SmartViewPriorityRule) { TaskPriority priority; if (param is TaskPriority) { priority = (TaskPriority)param; } else { priority = TaskPriorityConverter.FromDescription((string)param); } return(new SmartViewPriorityRule(filter, field, priority)); } else if (rule is SmartViewStringRule) { return(new SmartViewStringRule(filter, field, (string)param)); } else if (rule is SmartViewDateRule) { DateTime datetime = param is DateTime ? (DateTime)param : DateTime.MinValue; if (datetime != DateTime.MinValue) { return(new SmartViewDateRule(filter, field, new SmartViewDateParameter(datetime))); } else { int value = 0; if (param is string) { string content = (string)param; int.TryParse(content, out value); } else if (param is int) { value = (int)param; } value = Math.Max(0, value); return(new SmartViewDateRule(filter, field, new SmartViewDateParameter(value))); } } else if (rule is SmartViewBoolRule) { bool value = false; if (param is bool) { value = (bool)param; } return(new SmartViewBoolRule(filter, field, value)); } else if (rule is SmartViewFolderRule) { return(new SmartViewFolderRule(filter, field, (string)param)); } else if (rule is SmartViewContextRule) { string parameter = (string)param; if (string.IsNullOrWhiteSpace(parameter)) { parameter = "0"; } return(new SmartViewContextRule(filter, field, parameter)); } else if (rule is SmartViewProgressRule) { double value = 0; if (param is string) { string content = (string)param; double.TryParse(content, out value); } else if (param is int) { value = (int)param; } else if (param is double) { value = (double)param; } return(new SmartViewProgressRule(filter, field, value)); } else if (rule is SmartViewTagRule) { string parameter = (string)param; if (string.IsNullOrWhiteSpace(parameter)) { parameter = "0"; } return(new SmartViewTagRule(filter, field, parameter)); } else { throw new ArgumentException(); } }
public static T AssertRule<T>(this SmartViewHandler handler, int block, int rule, int ruleCount, SmartViewMatchType type, SmartViewField field, SmartViewFilter filter, Func<T, bool> checkRule) where T : SmartViewRule { SmartViewBlockRule smartViewBlockRule = handler.Blocks[block]; Assert.AreEqual(ruleCount, smartViewBlockRule.Rules.Count); Assert.AreEqual(type, smartViewBlockRule.Match); SmartViewRule smartViewRule = smartViewBlockRule.Rules[rule]; Assert.AreEqual(field, smartViewRule.Field); Assert.AreEqual(filter, smartViewRule.Filter); SmartViewRule item = smartViewRule; Assert.IsTrue(item is T); Assert.IsTrue(checkRule((T) item)); return (T) item; }
public override SmartViewRule Read(SmartViewFilter filter, SmartViewField field, string value) { return(new SmartViewBoolRule(filter, field, bool.Parse(value))); }
public SmartViewBoolRule(SmartViewFilter filter, SmartViewField field, bool value) : base(filter, field, value) { }
public override SmartViewRule Read(SmartViewFilter filter, SmartViewField field, string value) { return(new SmartViewTagRule(filter, field, value)); }
public SmartViewTagRule(SmartViewFilter filter, SmartViewField field, string value) : base(filter, field, value) { }
public override SmartViewRule Read(SmartViewFilter filter, SmartViewField field, string value) { return(new SmartViewProgressRule(filter, field, double.Parse(value))); }
public SmartViewProgressRule(SmartViewFilter filter, SmartViewField field, double value) : base(filter, field, value) { }
public override SmartViewRule Read(SmartViewFilter filter, SmartViewField field, string value) { return(new SmartViewPriorityRule(filter, field, value.ParseAsEnum <TaskPriority>())); }
public SmartViewPriorityRule(SmartViewFilter filter, SmartViewField field, TaskPriority value) : base(filter, field, value) { }
public SmartViewDateRule(SmartViewFilter filter, SmartViewField field, SmartViewDateParameter value) : base(filter, field, value) { }