public override void Run(object context) { DbController dbc = new DbController(Connection); IList<BusinessObject> bObjects = new List<BusinessObject>(); try { Connection.AutoCommit = false; Connection.BeginGFXDTransaction(); Order order = (Order)ObjectFactory.Create(ObjectType.Order); order.Customer = dbc.GetRandomCustomer(); dbc.AddOrder(order); IList<Product> products = dbc.GetRandomProducts(5); foreach (Product product in products) { OrderDetail ordDetail = new OrderDetail(); ordDetail.OrderId = order.OrderId; ordDetail.ProductId = product.ProductId; ordDetail.UnitPrice = product.RetailPrice; ordDetail.Quantity = DbHelper.GetRandomNumber(1); ordDetail.Discount = 0; dbc.AddOrderDetail(ordDetail); bObjects.Add(ordDetail); product.UnitsInStock -= ordDetail.Quantity; dbc.UpdateProduct(product); order.SubTotal += (ordDetail.UnitPrice * ordDetail.Quantity); } dbc.UpdateOrder(order); bObjects.Add(order); Connection.Commit(); if (!dbc.ValidateTransaction(bObjects)) Fail(dbc.GetValidationErrors(bObjects)); } catch (Exception e) { Connection.Rollback(); Fail(e); } finally { base.Run(context); } }
public long UpdateOrderDetail(OrderDetail ordDetail) { return (new OrderDetailDao(Connection, SchemaName)).Update(ordDetail); }
public long AddOrderDetail(OrderDetail ordDetail) { return (new OrderDetailDao(Connection, SchemaName)).Insert(ordDetail); }
private static OrderDetail GetOrderDetailInfo(OrderDetail ordDetail) { ordDetail.Quantity = GetDetailQuantity(); ordDetail.UnitPrice = GetDetailUnitPrice(); ordDetail.Discount = GetDetailDiscount(); return ordDetail; }
private static OrderDetail CreateOrderDetail() { OrderDetail ordDetail = new OrderDetail(); ordDetail.OrderId = GetDetailOrderId(); ordDetail.ProductId = GetDetailProductId(); return GetOrderDetailInfo(ordDetail); }
private String BuildQuery(String statement, OrderDetail ordDetail) { return String.Format(statement, ordDetail.Quantity, ordDetail.UnitPrice, ordDetail.Discount); }
public int Update(OrderDetail ordDetail) { String statement = QualifyTableName(DbDefault.GetUpdateStatement( TableName.ORDERDETAIL, new long[] { ordDetail.OrderId, ordDetail.ProductId })); if(Connection != null) return GFXDDbi.Update(Connection, BuildQuery(statement, ordDetail)); else return GFXDDbi.Update(BuildQuery(statement, ordDetail)); }
public long Insert(OrderDetail ordDetail) { String statement = QualifyTableName(DbDefault.GetInsertStatement( TableName.ORDERDETAIL, new long[] { ordDetail.OrderId, ordDetail.ProductId })); statement = BuildQuery(statement, ordDetail); if(Connection != null) return GFXDDbi.Insert(Connection, statement); else return GFXDDbi.Insert(statement); }