Example #1
0
        /// <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);
        }
 public static SaveResult Insert(OrderStatus orderStatus)
 {
     return(orderStatus.Save());
 }
 public static SaveResult Update(OrderStatus orderStatus)
 {
     return(orderStatus.Save());
 }