protected IOrderByClause Add(IOrderByItem item, AddWhen when) { int existingIndex = InnerList.FindIndex(existing => existing.Field == item.Field); if (existingIndex >= 0) { switch (when) { case AddWhen.MustBeMissing: throw new ArgumentException(String.Format("The clause already contains a sort criteria for {0}", item.Field)); case AddWhen.WhenMissing: return(this); case AddWhen.Always: InnerList.RemoveAt(existingIndex); break; } } item.Owner = this.Owner; InnerList.Add(item); Touch(); return(this); }
protected IOrderByClause Add(string field, SortOrder order, AddWhen when) { if (String.IsNullOrEmpty(field)) { throw new ArgumentOutOfRangeException("The field name cannot be missing to add a sort"); } string sortOrder = order == SortOrder.Ascending ? "" : " DESC"; int index = InnerList.Count - 1; string fieldNameClean = unAliased(field.Trim().ToLower()); var crit = new OrderByItem(fieldNameClean, order); return(Add(crit, when)); }
protected IOrderByClause Add(IOrderBy orderBy, AddWhen when) { if (orderBy is IOrderByItem) { return(Add((IOrderByItem)orderBy, when)); } else { foreach (var item in (IOrderByClause)orderBy) { Add(item); } return(this); } }
protected IOrderByClause Add(string orderClause, AddWhen when) { string[] items = orderClause.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (items.Length == 0) { throw new ArgumentOutOfRangeException("Cannot add a missing field for sorting."); } foreach (var item in items) { string clause = item.Trim(); SortOrder order = SortOrder.Ascending; if (clause.IndexOf(' ') > 0) { string[] parts = clause.Split(' '); clause = parts[0]; if (parts[1].ToLower().Trim() == "desc") { order = SortOrder.Descending; } } Add(clause, order, when); } return(this); }
public Statement(decimal balance, AddWhen addWhen = AddWhen.StartOfDay) { Balance = balance; AddWhen = addWhen; }
protected IOrderByClause Add(IOrderByItem item, AddWhen when) { int existingIndex = InnerList.FindIndex(existing => existing.Field == item.Field); if (existingIndex >= 0) { switch(when) { case AddWhen.MustBeMissing: throw new ArgumentException(String.Format("The clause already contains a sort criteria for {0}", item.Field)); case AddWhen.WhenMissing: return this; case AddWhen.Always: InnerList.RemoveAt(existingIndex); break; } } item.Owner = this.Owner; InnerList.Add(item); Touch(); return this; }
protected IOrderByClause Add(IOrderBy orderBy, AddWhen when) { if (orderBy is IOrderByItem) { return Add((IOrderByItem)orderBy, when); } else { foreach (var item in (IOrderByClause)orderBy) { Add(item); } return this; } }
protected IOrderByClause Add(string field, SortOrder order,AddWhen when) { if (String.IsNullOrEmpty(field)) { throw new ArgumentOutOfRangeException("The field name cannot be missing to add a sort"); } string sortOrder = order == SortOrder.Ascending ? "" : " DESC"; int index = InnerList.Count - 1; string fieldNameClean = unAliased(field.Trim().ToLower()); var crit = new OrderByItem(fieldNameClean, order); return Add(crit,when); }
protected IOrderByClause Add(string orderClause, AddWhen when) { string[] items = orderClause.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (items.Length == 0) { throw new ArgumentOutOfRangeException("Cannot add a missing field for sorting."); } foreach (var item in items) { string clause = item.Trim(); SortOrder order = SortOrder.Ascending; if (clause.IndexOf(' ') > 0) { string[] parts = clause.Split(' '); clause = parts[0]; if (parts[1].ToLower().Trim() == "desc") { order = SortOrder.Descending; } } Add(clause, order,when); } return this; }