/// <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); }
/// <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()); }