学习PetShop3.0(5)生成定单

转载 2006年06月16日 09:03:00

点proceed to checkout后,就进入Checkout.ASPx,确认后进入OrderBilling.aspx,在这里可以修改你的信息,完成后点continue,会出现个人信息的只读页面,最终确认后就进入OrdERProcess.aspx,在这里是定单的详细情况,并且是只读的,到这里,定单被添加到数据库,购物完成。
Checkout.aspx把数据从Session中取出来,然后显示到页面,没什么好说的。
OrderBilling.aspx,这个页面一开始显示的信息可写,我们看OnLoad事件中,是用ProcessFlow.AccountController.GetAccountInfo获得用户的信息CreditCardInfo,然后显示在一些可写的控件中,比如用户控件:StaticAddress。当点击确认后,使用StoreCreditCard把刚才获得的用户信息保存到Sessin,准备呆会用。
OrderProcess.aspx是最终的定单生成页面。主要就是一个方法:
ProcessFlow.CartController.PurchaseCart 来看它的实现
public OrderInfo PurchaseCart(){

// Fetch the cart from session
Cart myCart = (Cart)HttpContext.Current.Session[CART_KEY];

// Make some checks on the cart
if ( ( myCart == null ) || ( myCart.Count==0 ) ) {

HttpContext.Current.Server.Transfer(URL_NOCART);
//HttpContext.Current.Response.Redirect(URL_NOCART, false);
return null;

}else{

// Build up the order
OrderInfo newOrder = new OrderInfo();
newOrder.UserId = ((AccountInfo)HttpContext.Current.Session[ACCOUNT_KEY]).UserId;
newOrder.CreditCard = (CreditCardInfo)HttpContext.Current.Session[CREDITCARD_KEY];
newOrder.BillingAddress = (AddressInfo)HttpContext.Current.Session[BILLING_KEY];
newOrder.ShippingAddress = (AddressInfo)HttpContext.Current.Session[SHIPPING_KEY];

newOrder.LineItems = (LineItemInfo[])myCart.GetOrderLineItems().ToArray(typeof(LineItemInfo));

newOrder.OrderTotal = myCart.Total;
newOrder.Date = DateTime.Now;

// Send the order to the middle tier
OrderInsert order = new OrderInsert();
//向数据库插入数据
newOrder.OrderId = order.Insert(newOrder);

// clear the session objects used
HttpContext.Current.Session[CART_KEY] = null;
HttpContext.Current.Session[CREDITCARD_KEY] = null;
HttpContext.Current.Session[BILLING_KEY] = null;
HttpContext.Current.Session[SHIPPING_KEY] = null;

return newOrder;
}
}

Order主要是由保存在Session里的值形成,其中包括购物车。
在Order有一个LineItemInfo,它是由Cart.GetOrderLineItems方法依据cart里CartItemInfo的值返回的,是定单的物品部分,和CartItemInfo相比,主要是多了一个Line属性,这个Line是用来表示物品在定单内的序号。
下面是Insert的实现。
public int Insert(OrderInfo order) {

// Get an instance of the Order DAL using the DALFactory
IOrder dal = PetShop.DALFactory.Order.Create();

// Call the insert method in the DAL to insert the header
int orderId = dal.Insert(order);

// Get an instance of the Inventory business component
Inventory inventory = new Inventory();
//向数据库插入库存信息
inventory.TakeStock( order.LineItems);

// As part of the sample application we have created a user
// you can tested distributed transactions with
// If the order has been created with the user 'Acid',
// then throw an exception which will rollback the entire transaction

if (order.UserId == ACID_USER_ID)
throw new ApplicationException(ACID_ERROR_MSG);

// Set the orderId so that it can be returned to the caller
return orderId;
}

学习PetShop3.0(5)生成定单

点proceed to checkout后,就进入Checkout.aspx,确认后进入OrderBilling.aspx,在这里可以修改你的信息,完成后点continue,会出现个人信息的只读页面,...
  • shuilv2000
  • shuilv2000
  • 2008年10月09日 15:17
  • 334

【机器学习-斯坦福】学习笔记5 - 生成学习算法

生成学习算法 本次课程大纲: 1、 生成学习算法 2、 高斯判别分析(GDA,Gaussian Discriminant Analysis) - 高斯分布(简要) - ...
  • maverick1990
  • maverick1990
  • 2013年10月28日 13:47
  • 4144

.NET三层经典架构PetShop3.0分析之数据访问层

关于一些Microsoft PetShop的来由、如何安装,所表现业务流程,数据库表结构等基本的信息的资料请大家参考下面文章 http://msdn.microsoft.com/library/en-...
  • zhoufoxcn
  • zhoufoxcn
  • 2006年11月09日 09:42
  • 1983

学习PetShop3.0(7)SimplePager

看一下SQLServerDAL,前面有高人说了,那个SQLHelper类似于daab for .net,因此在这里我就不多话了,对daab for .net的讨论可以参看msdn的相关文章。来看Acc...
  • newwshy
  • newwshy
  • 2006年06月16日 09:55
  • 569

学习petshop3.0(一)

----msdn上关于PetShop3.0的介绍---- http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/build...
  • shuilv2000
  • shuilv2000
  • 2008年10月09日 10:43
  • 379

学习PetShop3.0(8)数据访问

看一下SQLServerDAL,前面有高人说了,那个SQLHelper类似于daab for .net,因此在这里我就不多话了,对daab for .net的讨论可以参看msdn的相关文章。来看Acc...
  • shuilv2000
  • shuilv2000
  • 2008年10月10日 14:13
  • 325

学习PetShop3.0(8)数据访问

看一下SQLServerDAL,前面有高人说了,那个SQLHelper类似于daab for .net,因此在这里我就不多话了,对daab for .net的讨论可以参看msdn的相关文章。来看Acc...
  • newwshy
  • newwshy
  • 2006年06月16日 10:03
  • 673

PetShop3.0学习---数据库关系图

PetShop3.0学习---数据库关系图 PetShop放在硬盘里很久了,偶尔打开看一下,没有认真学习,感觉东看一下西看一下没什么大作用。现在准备系统的学习一下PS3.0的设计模型,顺便在学习过程中...
  • PhoneixTree
  • PhoneixTree
  • 2006年05月15日 11:55
  • 1025

学习PetShop3.0(4)购物车

终于到购物车了,在看这个之前应该已经明白了第三篇的那个模型,这样购物车基本也就明白了。来看一下ShoppingCart.aspx这个页。当你看好了一个宠物,比如可爱的Golden Retriever,...
  • shuilv2000
  • shuilv2000
  • 2008年10月09日 14:36
  • 326

学习PetShop3.0(1)用户注册

----msdn上关于PetShop3.0的介绍---- ----网上高手的PetShop3.0数据层设计分析报告---- 关于该系统的大致介绍可以从上面的连接获得,都是中文的。下面来分析一下PetS...
  • newwshy
  • newwshy
  • 2006年06月16日 08:02
  • 868
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习PetShop3.0(5)生成定单
举报原因:
原因补充:

(最多只允许输入30个字)