Пример #1
0
        /// <summary>
        /// Saves this collection to database
        /// </summary>
        /// <returns><b>true</b> if save is successful, <b>false</b> otherwise</returns>
        public bool Save()
        {
            Database database = Token.Instance.Database;

            //DELETE ANY CATEGORIES THAT APPEAR IN _ORIGVALUE BUT NOT IN CURRENT LIST
            foreach (int categoryId in _OrigValue)
            {
                if (this.IndexOf(categoryId) < 0)
                {
                    using (DbCommand selectCommand = database.GetSqlStringCommand("DELETE FROM ac_CatalogNodes WHERE CategoryId = @categoryId AND CatalogNodeId = @webpageId AND CatalogNodeTypeId = 2"))
                    {
                        database.AddInParameter(selectCommand, "@categoryId", System.Data.DbType.Int32, categoryId);
                        database.AddInParameter(selectCommand, "@webpageId", System.Data.DbType.Int32, _WebpageId);
                        database.ExecuteNonQuery(selectCommand);
                    }
                }
            }
            //ADD ANY CATEGORIES THAT DO NOT APPEAR IN _ORIGVALUE
            foreach (int categoryId in this)
            {
                if (_OrigValue.IndexOf(categoryId) < 0)
                {
                    CatalogNode node = new CatalogNode();
                    node.CategoryId      = categoryId;
                    node.CatalogNodeId   = _WebpageId;
                    node.CatalogNodeType = CommerceBuilder.Catalog.CatalogNodeType.Webpage;
                    node.OrderBy         = -1;
                    node.Save();
                }
            }
            //UPDATE THE ORIGVALUE WITH THE SAVED LIST
            _OrigValue = new List <int>();
            _OrigValue.AddRange(this);
            return(true);
        }
 /// <summary>
 /// Loads the given CatalogNode object from the given database data reader.
 /// </summary>
 /// <param name="catalogNode">The CatalogNode object to load.</param>
 /// <param name="dr">The database data reader to read data from.</param>
 public static void LoadDataReader(CatalogNode catalogNode, IDataReader dr)
 {
     //SET FIELDS FROM ROW DATA
     catalogNode.CategoryId        = dr.GetInt32(0);
     catalogNode.CatalogNodeId     = dr.GetInt32(1);
     catalogNode.CatalogNodeTypeId = dr.GetByte(2);
     catalogNode.OrderBy           = dr.GetInt16(3);
     catalogNode.IsDirty           = false;
 }
        public static CatalogNode Load(Int32 categoryId, Int32 catalogNodeId, Byte catalogNodeTypeId)
        {
            CatalogNode catalogNode = new CatalogNode();

            if (catalogNode.Load(categoryId, catalogNodeId, catalogNodeTypeId))
            {
                return(catalogNode);
            }
            return(null);
        }
        public static bool Delete(Int32 categoryId, Int32 catalogNodeId, Byte catalogNodeTypeId)
        {
            CatalogNode catalogNode = new CatalogNode();

            if (catalogNode.Load(categoryId, catalogNodeId, catalogNodeTypeId))
            {
                return(catalogNode.Delete());
            }
            return(false);
        }
        public static CatalogNodeCollection LoadForCategory(Int32 categoryId, 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(" " + CatalogNode.GetColumnNames(string.Empty));
            selectQuery.Append(" FROM ac_CatalogNodes");
            selectQuery.Append(" WHERE CategoryId = @categoryId");
            selectQuery.Append(" ORDER BY " + sortExpression);
            Database  database      = Token.Instance.Database;
            DbCommand selectCommand = database.GetSqlStringCommand(selectQuery.ToString());

            database.AddInParameter(selectCommand, "@categoryId", System.Data.DbType.Int32, categoryId);
            //EXECUTE THE COMMAND
            CatalogNodeCollection results = new CatalogNodeCollection();
            int thisIndex = 0;
            int rowCount  = 0;

            using (IDataReader dr = database.ExecuteReader(selectCommand))
            {
                while (dr.Read() && ((maximumRows < 1) || (rowCount < maximumRows)))
                {
                    if (thisIndex >= startRowIndex)
                    {
                        CatalogNode catalogNode = new CatalogNode();
                        CatalogNode.LoadDataReader(catalogNode, dr);
                        results.Add(catalogNode);
                        rowCount++;
                    }
                    thisIndex++;
                }
                dr.Close();
            }
            return(results);
        }
Пример #6
0
        /// <summary>
        /// Generates a browse url from an object reference.
        /// </summary>
        /// <param name="dataItem">Either a Category, Product, or CatalogNode to generate a browse url for.</param>
        /// <returns>The browse url for the object.</returns>
        public string GetBrowseUrl(Object dataItem)
        {
            Product product = dataItem as Product;

            if (product != null)
            {
                return(GetBrowseUrl(product.ProductId, CatalogNodeType.Product, product.Name));
            }
            Category category = dataItem as Category;

            if (category != null)
            {
                return(GetBrowseUrl(category.CategoryId, CatalogNodeType.Category, category.Name));
            }
            CatalogNode node = dataItem as CatalogNode;

            if (node != null)
            {
                return(GetBrowseUrl(node.CategoryId, node.CatalogNodeId, node.CatalogNodeType, node.Name));
            }
            throw new ArgumentException("dataItem is not of a type supported by this method.", "dataItem");
        }
 public static SaveResult Insert(CatalogNode catalogNode)
 {
     return(catalogNode.Save());
 }
 public static SaveResult Update(CatalogNode catalogNode)
 {
     return(catalogNode.Save());
 }
 public static bool Delete(CatalogNode catalogNode)
 {
     return(catalogNode.Delete());
 }