public static OrderStatusCollection LoadForEmailTemplate(Int32 emailTemplateId, int maximumRows, int startRowIndex, string sortExpression) { //DEFAULT SORT EXPRESSION if (string.IsNullOrEmpty(sortExpression)) { sortExpression = "OrderBy"; } //CREATE THE DYNAMIC SQL TO LOAD OBJECT StringBuilder selectQuery = new StringBuilder(); selectQuery.Append("SELECT"); if (maximumRows > 0) { selectQuery.Append(" TOP " + (startRowIndex + maximumRows).ToString()); } selectQuery.Append(" " + OrderStatus.GetColumnNames("ac_OrderStatuses")); selectQuery.Append(" FROM ac_OrderStatuses, ac_OrderStatusEmails"); selectQuery.Append(" WHERE ac_OrderStatuses.OrderStatusId = ac_OrderStatusEmails.OrderStatusId"); selectQuery.Append(" AND ac_OrderStatusEmails.EmailTemplateId = @emailTemplateId"); selectQuery.Append(" AND StoreId = @storeId"); selectQuery.Append(" ORDER BY " + sortExpression); Database database = Token.Instance.Database; DbCommand selectCommand = database.GetSqlStringCommand(selectQuery.ToString()); database.AddInParameter(selectCommand, "@emailTemplateId", System.Data.DbType.Int32, emailTemplateId); database.AddInParameter(selectCommand, "@storeId", System.Data.DbType.Int32, Token.Instance.StoreId); //EXECUTE THE COMMAND OrderStatusCollection results = new OrderStatusCollection(); int thisIndex = 0; int rowCount = 0; using (IDataReader dr = database.ExecuteReader(selectCommand)) { while (dr.Read() && ((maximumRows < 1) || (rowCount < maximumRows))) { if (thisIndex >= startRowIndex) { OrderStatus orderStatus = new OrderStatus(); OrderStatus.LoadDataReader(orderStatus, dr); results.Add(orderStatus); rowCount++; } thisIndex++; } dr.Close(); } return(results); }
public static OrderStatusCollection LoadForCriteria(string sqlCriteria, int maximumRows, int startRowIndex, string sortExpression) { //DEFAULT SORT EXPRESSION if (string.IsNullOrEmpty(sortExpression)) { sortExpression = "OrderBy"; } //CREATE THE DYNAMIC SQL TO LOAD OBJECT StringBuilder selectQuery = new StringBuilder(); selectQuery.Append("SELECT"); if (maximumRows > 0) { selectQuery.Append(" TOP " + (startRowIndex + maximumRows).ToString()); } selectQuery.Append(" " + OrderStatus.GetColumnNames(string.Empty)); selectQuery.Append(" FROM ac_OrderStatuses"); string whereClause = string.IsNullOrEmpty(sqlCriteria) ? string.Empty : " WHERE " + sqlCriteria; selectQuery.Append(whereClause); selectQuery.Append(" ORDER BY " + sortExpression); Database database = Token.Instance.Database; DbCommand selectCommand = database.GetSqlStringCommand(selectQuery.ToString()); //EXECUTE THE COMMAND OrderStatusCollection results = new OrderStatusCollection(); int thisIndex = 0; int rowCount = 0; using (IDataReader dr = database.ExecuteReader(selectCommand)) { while (dr.Read() && ((maximumRows < 1) || (rowCount < maximumRows))) { if (thisIndex >= startRowIndex) { OrderStatus orderStatus = new OrderStatus(); OrderStatus.LoadDataReader(orderStatus, dr); results.Add(orderStatus); rowCount++; } thisIndex++; } dr.Close(); } return(results); }
/// <summary> /// Gets the order status that should be assigned to new orders. /// </summary> /// <returns>The order status that should be assigned to new orders.</returns> public static OrderStatus GetNewOrderStatus() { OrderStatus orderStatus = null; StringBuilder selectQuery = new StringBuilder(); selectQuery.Append("SELECT " + OrderStatus.GetColumnNames("OS")); selectQuery.Append(" FROM ac_OrderStatuses OS INNER JOIN ac_OrderStatusTriggers OST"); selectQuery.Append(" ON OS.OrderStatusId = OST.OrderStatusId"); selectQuery.Append(" WHERE OS.StoreId = @storeId AND OST.StoreEventId = @orderPlaced"); selectQuery.Append(" ORDER BY OS.OrderStatusId"); Database database = Token.Instance.Database; DbCommand selectCommand = database.GetSqlStringCommand(selectQuery.ToString()); database.AddInParameter(selectCommand, "@storeId", System.Data.DbType.Int32, Token.Instance.StoreId); database.AddInParameter(selectCommand, "@orderPlaced", System.Data.DbType.Int32, StoreEvent.OrderPlaced); //EXECUTE THE COMMAND using (IDataReader dr = database.ExecuteReader(selectCommand)) { //ONLY READ THE FIRST RECORD if (dr.Read()) { orderStatus = new OrderStatus(); OrderStatus.LoadDataReader(orderStatus, dr); } dr.Close(); } //CREATE AN ORDER STATUS FOR THIS EVENT AS THIS METHOD SHOULD NEVER RETURN NULL if (orderStatus == null) { orderStatus = new OrderStatus(); orderStatus.Name = "New"; orderStatus.DisplayName = "New"; orderStatus.IsActive = true; orderStatus.IsValid = true; orderStatus.Triggers.Add(new OrderStatusTrigger(StoreEvent.OrderPlaced)); orderStatus.Save(); } return(orderStatus); }