Ejemplo n.º 1
0
        public void UpdateOrder(OrderOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException();
            }

            var existingOrder = SearchOrders
                                (
                new OrderOptions()
            {
                OrderId = options.OrderId
            }

                                ).SingleOrDefault();

            if (existingOrder == null)
            {
                throw new ArgumentNullException();
            }

            var existingCustomer = _customerService.SearchCustomers(
                new CustomerOptions()
            {
                CustomerId = options.CustomerId
            }
                ).SingleOrDefault();


            existingOrder.CustomerId      = existingCustomer.Id;
            existingOrder.DeliveryAddress = options.DeliveryAddress;

            _context.SaveChanges();
        }
Ejemplo n.º 2
0
        public HttpResponseMessage VivaCreateOrder(OrderOptions options)
        {
            var cl = new RestClient("http://demo.vivapayments.com/");

            var req = new RestRequest("api/orders", Method.POST);

            options.SourceCode = "4308";
            req.AddObject(options);


            string vivaPaymentFormURL = "http://demo.vivapayments.com/web/newtransaction.aspx?ref=";
            //string vivaPaymentFormURL = "https://www.vivapayments.com/web/newtransaction.aspx?ref="; // production URL

            // class that contains the order options that will be sent
            var apiKey      = "4661510a-989d-47fd-84d6-a4128b9a3544";
            var apiPassword = "******";

            cl.Authenticator = new HttpBasicAuthenticator(apiKey, apiPassword);

            // Do the post
            var res = cl.Execute <OrderResult>(req);

            res.Data.RedirectUrl = vivaPaymentFormURL + res.Data.OrderCode.ToString();
            // once the order code is successfully created, redirect to payment form to complete the payment
            if (res.Data.ErrorCode == 0)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, res.Data));
                //Response.Redirect(this.vivaPaymentFormURL + res.Data.OrderCode.ToString());
            }
            else
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "The Order  failed"));
            }
        }
    public IOrder makeSpecificOrder(OrderOptions requestedOrder)
    {
        switch (requestedOrder)
        {
        //case OrderOptions.BYNAME:
        //    {
        //        return new OrderByName(chooseRandomDrink());

        //    }
        //case OrderOptions.BYFLAVOR:
        //    {
        //        return new OrderByFlavor(chooseRandomDrink().ThisDrinksFlavor);

        //    }
        case OrderOptions.BYCOLOR:
        {
            return(new OrderByIngredent(chooseRandomIngredentFromKnownIngredents()));
        }

        case OrderOptions.BYWITHOUTCOLOR:
        {
            return(new OrderByLackOfIngredient());
        }

        default:
        {
            return(new OrderByName(chooseRandomDrink()));
        }
        }
    }
Ejemplo n.º 4
0
        public void Generate_XML_File_Missing_Directories()
        {
            var options = new OrderOptions();
            var result  = this._fileGenerator.Execute(options);

            Assert.AreEqual(-1, result);
        }
Ejemplo n.º 5
0
 internal OrderExpression(Type type, Expression source, Expression orderSelector, OrderOptions options)
 {
     Type          = type;
     Source        = source;
     OrderSelector = orderSelector;
     Options       = options;
 }
Ejemplo n.º 6
0
 public void AddOrderByOption(string propertyPath, bool isAscending)
 {
     OrderOptions.Add(new OrderByExpression.OrderOption()
     {
         PropertyPath = propertyPath,
         IsAscending  = isAscending
     });
 }
Ejemplo n.º 7
0
 public CartPlacesRepository(IOptions <OrderOptions> options, ILogger <CartPlacesRepository> logger)
 {
     if (options == null)
     {
         throw new ArgumentNullException(nameof(options));
     }
     _options = options.Value;
     _logger  = logger;
 }
Ejemplo n.º 8
0
 public PaymentMethodRepository(IOptions <OrderOptions> options, ILogger <DeliveryTypeRepository> logger)
 {
     if (options == null)
     {
         throw new ArgumentNullException(nameof(options));
     }
     _options = options.Value;
     _logger  = logger;
 }
Ejemplo n.º 9
0
        public void Generate_XML_File_Missing_Source_Directory()
        {
            var options = new OrderOptions {
                Output = this._outputDir
            };
            var result = this._fileGenerator.Execute(options);

            Assert.AreEqual(-1, result);
        }
Ejemplo n.º 10
0
        public void Generate_XML_File_Output_Directory_Not_Exist()
        {
            var options = new OrderOptions {
                Output = $"{this._outputDir}wrong"
            };
            var result = this._fileGenerator.Execute(options);

            Assert.AreEqual(-1, result);
        }
Ejemplo n.º 11
0
        public void Generate_XML_File_Missing_CSV_Files()
        {
            var options = new OrderOptions {
                Source = this._sourceDir, Output = this._outputDir
            };
            var result = this._fileGenerator.Execute(options);

            Assert.AreEqual(-1, result);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 扩展方法:获取枚举中最后一个值
        /// </summary>
        /// <param name="pCaller">调用者</param>
        /// <param name="pOrderOption">排序的方式</param>
        /// <returns></returns>
        public static Enum GetLast(this Enum pCaller, OrderOptions pOrderOption)
        {
            var values = pCaller.GetValues();

            if (pOrderOption == OrderOptions.ByValue)
            {
                values = values.OrderBy(item => item);
            }
            return(values.Last());
        }
Ejemplo n.º 13
0
        public void Generate_XML_File_Success()
        {
            File.Copy(Path.Combine(Directory.GetCurrentDirectory(), "Data", _testFileName), Path.Combine(this._sourceDir, _testFileName));
            var options = new OrderOptions {
                Source = this._sourceDir, Output = this._outputDir
            };
            var result = this._fileGenerator.Execute(options);

            Assert.AreEqual(0, result);
            Assert.IsTrue(File.Exists(Path.Combine(this._outputDir, "Orders.xml")));
        }
        public ISqlExpressionBuilder Order(string column, OrderOptions options, ExpressionOptions expOptions)
        {
            ColumnExpression col = _CreateColumnByName(column);

            if (expOptions == ExpressionOptions.Overwrite)
            {
                _stmtOrder.Columns.Clear();
            }
            _stmtOrder.Columns.Add(col, options);
            return(this);
        }
Ejemplo n.º 15
0
 public void DefaultClick()
 {
     Finder.Explore(new ExploreOptions(QueryName)
     {
         OrderOptions      = OrderOptions.ToList(),
         FilterOptions     = FilterOptions.ToList(),
         ColumnOptions     = ColumnOptions.ToList(),
         ColumnOptionsMode = ColumnOptionsMode,
         SearchOnLoad      = true,
     });
 }
Ejemplo n.º 16
0
        async Task <VivaResponse> IDataClient.VivaCreateOrder(OrderOptions model)
        {
            var response = await ApiClient.PostJsonEncodedContent(vivaUri, model);

            var orderResponse = await CreateJsonResponse <VivaResponse>(response);

            var orderResult = await DecodeContent <OrderResult>(response);

            orderResponse.Data = orderResult;
            return(orderResponse);
        }
Ejemplo n.º 17
0
        public void ClearResults()
        {
            ResultTable = null;
            gvResults.Columns.Clear();
            lvResult.ItemsSource = null;
            lvResult.Background  = Brushes.WhiteSmoke;

            lastRequest = null;

            var keys = Request.Columns.Select(a => a.Token?.Token).Where(a => a != null && !(a is AggregateToken)).Select(a => a.FullKey()).ToHashSet();

            OrderOptions.RemoveAll(a => !(a.Token is AggregateToken) && !keys.Contains(a.Token.FullKey()));
        }
Ejemplo n.º 18
0
        public QueryRequest ToQueryRequest()
        {
            var qd = DynamicQueryManager.Current.QueryDescription(QueryName);

            return(new QueryRequest
            {
                QueryName = QueryName,
                Filters = FilterOptions.Select(fo => fo.ToFilter()).ToList(),
                Orders = OrderOptions.Select(fo => fo.ToOrder()).ToList(),
                Columns = ColumnOptions.Select(co => co.ToColumn(qd)).ToList(),
                Pagination = pagination ?? FindOptions.DefaultPagination,
            });
        }
 public ISqlExpressionBuilder Order(ColumnExpression column, OrderOptions options, ExpressionOptions expOptions)
 {
     if (!_IsTablePresent(column.Table))
     {
         throw new Exception("The table of the order column doesn't exist in this context.");
     }
     if (expOptions == ExpressionOptions.Overwrite)
     {
         _stmtOrder.Columns.Clear();
     }
     _stmtOrder.Columns.Add(column, options);
     return(this);
 }
Ejemplo n.º 20
0
        /// <summary>
        /// 扩展方法:获取下一个枚举
        /// </summary>
        /// <param name="pCaller">调用者</param>
        /// <param name="pOrderOption">排序的方式</param>
        /// <param name="pIsCyclely">是否循环获取</param>
        /// <returns></returns>
        public static Enum GetNext(this Enum pCaller, OrderOptions pOrderOption, bool pIsCyclely)
        {
            Enum[] values = pCaller.GetValues().ToArray();
            if (pOrderOption == OrderOptions.ByValue)
            {
                values = values.OrderBy(item => item).ToArray();
            }
            var next = values.SkipWhile(item => Convert.ToInt32(item) != Convert.ToInt32(pCaller)).Skip(1).FirstOrDefault();

            if (next == null && pIsCyclely)
            {
                next = values.First();
            }
            return(next);
        }
Ejemplo n.º 21
0
        public Order CreateOrder(OrderOptions options)
        {
            if (options == null)
            {
                return(null);
            }

            var order = new Order()
            {
                DeliveryAddress = options.DeliveryAddress,
                Created         = DateTime.Now
            };


            foreach (var productid in options.ProductIds)
            {
                var product = _productService.SearchById(productid);

                if (product != null)
                {
                    order.OrderProducts.Add(new OrderProduct()
                    {
                        Product   = product,
                        ProductId = product.ProductId
                    });
                    order.TotalAmmount += product.Price;
                }
            }

            var findCustomer = _customerService.SearchCustomerById(options.CustomerId);

            if (findCustomer == null)
            {
                return(null);
            }

            findCustomer.Orders.Add(order);

            _context.Add(order);

            if (_context.SaveChanges() > 0)
            {
                return(order);
            }

            return(null);
        }
Ejemplo n.º 22
0
        public IQueryable <Order> SearchOrders(OrderOptions options)
        {
            if (options == null)
            {
                return(null);
            }

            var query = _context
                        .Set <Order>()
                        .Where(o => o.CustomerId == options.CustomerId)
                        .Include(s => s.OrderProducts)
                        .AsQueryable();

            query = query.Take(500);

            return(query);
        }
Ejemplo n.º 23
0
        public QueryRequest GetQueryRequest(bool updateSimpleFilters)
        {
            if (updateSimpleFilters)
            {
                RefreshSimpleFilters();
            }

            var request = new QueryRequest
            {
                QueryName  = QueryName,
                Filters    = FilterOptions.Select(f => f.ToFilter()).ToList(),
                Orders     = OrderOptions.Select(o => o.ToOrder()).ToList(),
                Columns    = gvResults.Columns.Select(gvc => ((SortGridViewColumnHeader)gvc.Header).RequestColumn).ToList(),
                Pagination = Pagination,
            };

            return(request);
        }
Ejemplo n.º 24
0
        public void can_create_session_query_for_select_all_over_object()
        {
            session.CreateQueryFor <Account>()
            .Select(SelectionOptions.FieldFrom <AccountTransaction>(t => t.Description),
                    SelectionOptions.AvgOnFieldFrom <Account>(a => a.AccountNumber, "avg_accounts"))

            .LeftJoinOn <AccountTransaction>(t => t.Account.Id, a => a.Id)

            .CreateCriteria(Restrictions.CreateDisjunctionOn(
                                Restrictions.EqualTo <Account>(a => a.Id, 1),
                                Restrictions.GreaterThan <Account>(a => a.AccountNumber, "12344")),
                            Restrictions.Like <Account>(a => a.Description, "completed"))

            .AddOrder(OrderOptions.Asc <Account>(a => a.Id))
            .GroupBy(GroupByOptions.AliasField <Account>("avg_accounts"),
                     GroupByOptions.FieldFrom <AccountTransaction>(t => t.Description))

            .SingleOrDefault();
        }
Ejemplo n.º 25
0
        public void Reinitialize(IEnumerable <FilterOption> filters, List <ColumnOption> columns, ColumnOptionsMode columnOptionsMode, List <OrderOption> orders)
        {
            if (qd == null)
            {
                qd = DynamicQueryServer.GetQueryDescription(QueryName);
            }

            ColumnOptions.Clear();
            ColumnOptions.AddRange(columns);
            ColumnOptionsMode = columnOptionsMode;

            FilterOptions.Clear();
            FilterOptions.AddRange(filters);
            FilterOption.SetFilterTokens(FilterOptions, qd);

            OrderOptions.Clear();
            OrderOptions.AddRange(orders);
            OrderOption.SetOrderTokens(OrderOptions, qd);
        }
Ejemplo n.º 26
0
        public override string ToString()
        {
            if (FilterOptions.Any())
            {
                QueryDescription queryDescription = DynamicQueryManager.Current.QueryDescription(QueryName);

                FilterOption.SetFilterTokens(FilterOptions, queryDescription, canAggregate: false);
            }

            var elements = Pagination != null?Pagination.GetElementsPerPage() : null;

            string options = new Sequence <string>
            {
                Pagination != null ? "pagination=" + pagination.GetMode().ToString() : null,
                elements != null ? "elems=" + elements : null,
                SearchOnLoad ? "searchOnLoad=true" : null,
                !Create ? "create=false": null,
                !Navigate ? "navigate=false": null,
                !AllowSelection ? "allowSelection=false" : null,
                !AllowChangeColumns ? "allowChangeColumns=false" : null,
                !AllowOrder ? "allowOrder=false" : null,
                !showHeader ? "showHeader=false" : null,
                !showFilters ? "showFilters=false" : null,
                !showFilterButton ? "showFilterButton=false" : null,
                !showFooter ? "showFooter=false" : null,
                !showContextMenu ? "showContextMenu=false" : null,
                (FilterOptions != null && FilterOptions.Count > 0) ? ("filters=" + FilterOptions.ToString(";")) : null,
                (OrderOptions != null && OrderOptions.Count > 0) ? ("orders=" + OrderOptions.ToString(";")) : null,
                (ColumnOptions != null && ColumnOptions.Count > 0) ? ("columns=" + ColumnOptions.ToString(";")) : null,
                (ColumnOptionsMode != ColumnOptionsMode.Add ? ("columnMode=" + ColumnOptionsMode.ToString()) : null),
                !SelectedItemsContextMenu ? "selectedItemsContextMenu=false" : null
            }.NotNull().ToString("&");

            if (options.HasText())
            {
                return(Finder.FindRoute(QueryName) + "?" + options);
            }
            else
            {
                return(Finder.FindRoute(QueryName));
            }
        }
Ejemplo n.º 27
0
        private Task <QueryResult <TItem> > InternalDataSource(QueryOptions <TItem> queryOptions)
        {
            var result = new QueryResult <TItem>();

            var orderOption = OrderOptions.FirstOrDefault(x => x.Id == queryOptions.Order);

            Func <IEnumerable <TItem>, IOrderedEnumerable <TItem> > orderFunction = null;

            if (orderOption != null)
            {
                if (orderOption is OrderOption <TItem> genericOrderOption)
                {
                    orderFunction = genericOrderOption.OrderFunction;
                }
            }

            IEnumerable <TItem> orderedData;

            if (orderFunction != null)
            {
                orderedData = orderFunction.Invoke(FixedData);
            }
            else
            {
                orderedData = FixedData;
            }

            if (IsPageable)
            {
                var pagedData = orderedData.Skip((queryOptions.PageNumber - 1) * queryOptions.PageSize).Take(queryOptions.PageSize + 1).ToArray();
                result.ResultData  = pagedData.Take(queryOptions.PageSize).ToArray();
                result.HasMoreData = pagedData.Length == queryOptions.PageSize + 1;
            }
            else
            {
                result.ResultData  = orderedData.ToArray();
                result.HasMoreData = false;
            }

            return(Task.FromResult(result));
        }
        private IEnumerable <ProductDto> GetData(PagingOptions pagingOptions, OrderOptions orderOptions)
        {
            var data = GetData();

            if (pagingOptions.Skip.HasValue)
            {
                data = data.Skip(pagingOptions.Skip.Value);
            }

            if (pagingOptions.Take.HasValue)
            {
                data = data.Take(pagingOptions.Take.Value);
            }

            if (orderOptions != null && orderOptions.Fields != null && orderOptions.Fields.Count() > 0)
            {
                string orderExpr = orderOptions.Fields.Select(f => string.Format("{0} {1}", f.FieldName, f.Ascending ? "ASC" : "DESC")).Aggregate((f1, f2) => string.Format("{0},{1}", f1, f2));
                data = data.OrderBy(orderExpr);
            }

            return(data);
        }
Ejemplo n.º 29
0
        public void Reinitialize(List <FilterOption> filters, List <ColumnOption> columns, ColumnOptionsMode columnOptionsMode, List <OrderOption> orders, Pagination pagination)
        {
            try
            {
                avoidPaginationChange = true;

                ColumnOptions.Clear();
                ColumnOptions.AddRange(columns);
                ColumnOption.SetColumnTokens(ColumnOptions, Description);
                ColumnOptionsMode = columnOptionsMode;
                GenerateListViewColumns();

                if (!filters.SequenceEqual(FilterOptions))
                {
                    if (SimpleFilterBuilder != null)
                    {
                        SimpleFilterBuilder = null;
                    }

                    FilterOptions.Clear();
                    FilterOption.SetFilterTokens(filters, Description);
                    FilterOptions.AddRange(filters);
                }

                OrderOptions.Clear();
                OrderOptions.AddRange(orders);
                OrderOption.SetOrderTokens(OrderOptions, Description);
                SortGridViewColumnHeader.SetColumnAdorners(gvResults, OrderOptions);

                UpdateMultiplyMessage(true);

                Pagination = pagination;
            }
            finally
            {
                avoidPaginationChange = false;
            }
        }
Ejemplo n.º 30
0
        internal void UpdateFiltersOrdersUserInterface()
        {
            FilterOptions.Clear();
            if (Request.Filters != null)
            {
                FilterOptions.AddRange(Request.Filters.Select(f => new FilterOption
                {
                    Token     = f.Token,
                    Operation = f.Operation,
                    Value     = f.Value
                }));
            }

            OrderOptions.Clear();
            if (Request.Orders != null)
            {
                OrderOptions.AddRange(Request.Orders.Select(o => new OrderOption
                {
                    Token     = o.Token,
                    OrderType = o.OrderType,
                }));
            }
        }
Ejemplo n.º 31
0
        public IEnumerable<byte[]> Find(string nameSpace, string objectName, string constraint, uint limit, OrderOptions order)
        {
            _ValidateArguments(nameSpace, objectName);

            var objectFullName = ObjectNaming.CreateFullObjectName(nameSpace, objectName);
            var metadata = _objectMetadata.GetMetadata(objectFullName);

            if (null == metadata)
            {
                throw new InvalidOperationException("Metadata not found for object: " + objectFullName);
            }

            var objectIds = _objectIndexer.Find(objectFullName, constraint, limit, order, metadata.Indexes);
            foreach (var objectId in objectIds)
            {
                yield return _objectStore.Get(objectFullName, objectId);
            }
        }
Ejemplo n.º 32
0
 public byte[][] Find(string constraint, uint limit, OrderOptions order)
 {
     return _service.Find(_nameSpace, _objectName, constraint, limit, order).ToArray();
 }
Ejemplo n.º 33
0
 public override int[] Find(string objectFullName, string constraint, uint limit, OrderOptions order, ObjectIndexMetadata[] indexes)
 {
     using (var db = OpenData())
     {
         var tableName = _CreateTableName(db, objectFullName);
         var compiledConstraint = CreateSQLConstraint(db, indexes, constraint);
         var sqlConstraint = compiledConstraint.SQL;
         if (!string.IsNullOrEmpty(sqlConstraint))
         {
             sqlConstraint = "WHERE " + sqlConstraint;
         }
         var orderBySql = _CreateOrderBySQL(db, order);
         var limitSql = (0 == limit) ? SQLStatements.NoLimit : string.Format(SQLStatements.Limit, limit);
         return db.GetValues<int>(string.Format(SQLStatements.Find, tableName, sqlConstraint, orderBySql, limitSql), compiledConstraint.Parameters.ToArray());
     }
 }
Ejemplo n.º 34
0
        public int[] Find(string objectFullName, string constraint, uint limit, OrderOptions order, ObjectIndexMetadata[] indexes)
        {
            int[] returnValue = null;

            if (null != _cache)
            {
                var parameters = new object[5 + ((null == indexes) ? 0 : indexes.Length)];
                parameters[0] = objectFullName;
                parameters[1] = constraint;
                parameters[2] = limit;
                parameters[3] = order;
                parameters[4] = "F";
                if (null != indexes)
                {
                    for (int i = 0; indexes.Length > i; i++)
                    {
                        parameters[i + 5] = indexes[i];
                    }
                }
                returnValue = _cache.Get(parameters);
                if (null == returnValue)
                {
                    _ValidateOrderOptions(indexes, order);

                    returnValue = _indexer.Find(objectFullName, constraint, limit, order, indexes);
                    _cache.Set(returnValue, parameters);
                }
            }
            else
            {
                returnValue = _indexer.Find(objectFullName, constraint, limit, order, indexes);
            }
            return returnValue;
        }
Ejemplo n.º 35
0
        public IEnumerable<IDataRecord> Iterate(string objectFullName, string constraint, uint limit, OrderOptions order, string[] iterateIndexes, ObjectIndexMetadata[] indexes)
        {
            _ValidateOrderOptions(indexes, order);

            if (null != iterateIndexes && 0 == iterateIndexes.Length)
            {
                _ValidateIndexNames(indexes, iterateIndexes);
            }

            return _indexer.Iterate(objectFullName, constraint, limit, order, iterateIndexes, indexes);
        }
Ejemplo n.º 36
0
 private void _ValidateOrderOptions(ObjectIndexMetadata[] indexes, OrderOptions order)
 {
     if (null != order && null != order.Indexes)
     {
         if (!_ValidateIndexNames(indexes, order.Indexes))
         {
             throw new ArgumentException("Invalid index name supplied in OrderOptions.");
         }
     }
 }
Ejemplo n.º 37
0
        public override IEnumerable<IDataRecord> Iterate(string objectFullName, string constraint, uint limit, OrderOptions order, string[] iterateIndexes, ObjectIndexMetadata[] indexes)
        {
            using (var db = OpenData())
            {
                var tableName = _CreateTableName(db, objectFullName);
                var whereSql = string.Empty;
                IDataParameter[] parameters = null;
                if (!string.IsNullOrEmpty(constraint))
                {
                    var sqlConstraint = CreateSQLConstraint(db, indexes, constraint);
                    whereSql = " WHERE " + sqlConstraint.SQL;
                    parameters = sqlConstraint.Parameters.ToArray();
                }
                var orderBySql = _CreateOrderBySQL(db, order);
                var limitSql = (0 == limit) ? SQLStatements.NoLimit : string.Format(SQLStatements.Limit, limit);

                string[] selectNames = null;

                // if no iterate indexes are specified, then iterate overall index names from the metadata
                if (null == iterateIndexes || 0 == iterateIndexes.Length)
                {
                    if (null == indexes || 0 == indexes.Length)
                    {
                        // If not iterate indexes or metadataColumns provided, then only select the ID column
                        selectNames = new string[] { db.MakeQuotedName(IDColumn) };
                    }
                    else
                    {
                        selectNames = new string[indexes.Length + 1];
                        selectNames[0] = db.MakeQuotedName(IDColumn);
                        for (int i = 0; indexes.Length > i; i++)
                        {
                            selectNames[i + 1] = db.MakeQuotedName(indexes[i].Name);
                        }
                    }
                }
                else
                {
                    selectNames = new string[iterateIndexes.Length];
                    for (int i = 0; iterateIndexes.Length > i; i++)
                    {
                        selectNames[i] = db.MakeQuotedName(iterateIndexes[i]);
                    }
                }

                string selectNamesSql = string.Join(",", selectNames);

                using (var reader = db.ExecuteReader(string.Format(SQLStatements.Iterate, tableName, selectNamesSql, whereSql, orderBySql, limitSql), parameters))
                {
                    while (reader.Read())
                    {
                        yield return reader;
                    }
                }
            }
        }
Ejemplo n.º 38
0
        private static string _CreateOrderBySQL(IDatabaseService db, OrderOptions order)
        {
            var orderBySql = SQLStatements.NoOrder;
            if (null != order)
            {
                string orderColSql = string.Join(",", order.Indexes.Select(i => db.MakeQuotedName(i)).ToArray());

                if (order.Descending)
                {
                    orderBySql = string.Format(SQLStatements.OrderDesc, orderColSql);
                }
                else
                {
                    orderBySql = string.Format(SQLStatements.OrderAsc, orderColSql);
                }
            }
            return orderBySql;
        }