private bool ValidateVolumeOrder(IPersistableList <BasketItem> items) { foreach (var rec in items) { if (rec.OrderItemType == OrderItemType.Product) { decimal MinQuantity = 0; if (rec.Product.VolumeDiscounts.Any() && rec.Product.VolumeDiscounts[0].Levels.Any()) { VolumeDiscount VolumeDiscount = rec.Product.VolumeDiscounts[0]; MinQuantity = VolumeDiscount.Levels.First().MinValue; } else { MinQuantity = rec.Product.MinQuantity; } if (rec.Quantity < MinQuantity) { return(true); } } } return(false); }
DbDataReader IDbManager.SelectList(IPersistableList obj) { bool startComma = false; string where = ""; foreach (var column in obj.DbPrimaryKey) { if (startComma) { where += " AND "; } else { startComma = true; } where += string.Format("`{0}`=@{0}", column.Column); } return(ReaderQuery(string.Format("SELECT * FROM `{0}_list` WHERE {1}", obj.DbTable, where), obj.DbPrimaryKey)); }
private MySqlCommand DeleteList(MySqlConnection connection, MySqlTransaction transaction, IPersistableList obj) { string commandText; if (!deleteListCommands.TryGetValue(obj.GetType(), out commandText)) { bool startComma = false; string where = ""; foreach (var column in obj.DbPrimaryKey) { if (startComma) { where += " AND "; } else { startComma = true; } where += string.Format("`{0}`=@{0}", column.Column); } commandText = string.Format("DELETE FROM `{0}_list` WHERE {1}", obj.DbTable, where); deleteListCommands[obj.GetType()] = commandText; } MySqlCommand command = connection.CreateCommand(); command.CommandText = commandText; if (transaction != null) { command.Transaction = transaction; } foreach (var column in obj.DbPrimaryKey) { AddParameter(command, column, DataRowVersion.Original); } return(command); }
private MySqlCommand CreateList(MySqlConnection connection, MySqlTransaction transaction, IPersistableList obj) { string commandText; if (!createListCommands.TryGetValue(obj.GetType(), out commandText)) { string columns = ""; bool startComma = false; foreach (var column in obj.DbPrimaryKey) { if (startComma) { columns += ","; } startComma = true; columns += string.Format("`{0}`", column.Column); } foreach (var column in obj.DbListColumns) { if (startComma) { columns += ","; } startComma = true; columns += string.Format("`{0}`", column.Column); } commandText = string.Format("INSERT INTO `{0}_list` ({1}) VALUES ", obj.DbTable, columns); createListCommands[obj.GetType()] = commandText; } var builder = new StringBuilder(commandText); bool startColumnsComma = false; bool empty = true; int row = 0; MySqlCommand command = connection.CreateCommand(); foreach (var columns in obj.DbListValues()) { empty = false; if (startColumnsComma) { builder.Append(", ("); } else { builder.Append("("); startColumnsComma = true; } bool startComma = false; foreach (var column in obj.DbPrimaryKey) { if (startComma) { builder.Append(", "); } else { startComma = true; } var param = string.Format("@{0}__{1}", column.Column, row); builder.Append(param); command.Parameters.AddWithValue(param, column.Value); } foreach (var column in columns) { if (startComma) { builder.Append(", "); } else { startComma = true; } var param = string.Format("@{0}__{1}", column.Column, row); builder.Append(param); command.Parameters.AddWithValue(param, column.Value); } builder.Append(")"); row++; } if (empty) { return(null); } if (transaction != null) { command.Transaction = transaction; } command.CommandText = builder.ToString(); return(command); }