Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 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);
     }
 }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
 public Statement(decimal balance, AddWhen addWhen = AddWhen.StartOfDay)
 {
     Balance = balance;
     AddWhen = addWhen;
 }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
 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;
     }
 }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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;
        }