📄 cart.ascx.cs
字号:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DNNLite.Entites.Modules;
using DNNLite.DesktopModules.Shop;
using DNNLite.DesktopModules.Shop.Orders;
using DNNLite.DesktopModules.OnlinePay;
using Castle.ActiveRecord;
public partial class DesktopModules_Shop_Cart : TempletPortalModuleBase ,
IPostBackEventHandler ,IActionable
{
private string state="购物车" ;
private Orders order = null;
private DNNLiteMemberShipUser user = null;
protected void Page_Load(object sender, EventArgs e)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
user = (DNNLiteMemberShipUser )System.Web.Security.Membership.GetUser(
Page.User.Identity.Name
);
//*******执行removeurl的操作*********
if (!string.IsNullOrEmpty(Request["removeno"]))
{
int no = int.Parse(Request["removeno"]);
Cart.Remove(no);
Response.Redirect(
DNNLite.Comm.Comm.AppendUrlQry("removeno=")
);
}
}
protected override string TemplateFile
{
get
{
if (state == "订单")
{
return "~/Templets/Shop/已下订单.htm";
}
return "~/Templets/Shop/购物车.htm";
}
}
protected override void SetValues(IDictionary<string, object> bag)
{
bag.Add("cart", Cart.GetItems());
string returl=Request["returnurl"];
if (returl != null)
{
returl = HttpUtility.UrlDecode(returl);
}
else
{
returl = DNNLite.Comm.Comm.NavigateURL();
}
bag.Add("returnurl", returl );
bag.Add("totalmoney", Cart.TrueTotalMoney);
bag.Add("data", this);
bag.Add("order", order);
bag.Add("userinfo", user);
bag.Add("clear",
Page.ClientScript.GetPostBackClientHyperlink(this, "clear")
);
bag.Add("createorder",
Page.ClientScript.GetPostBackClientHyperlink(this, "order")
);
bag.Add("onlinepay",
Page.ClientScript.GetPostBackClientHyperlink(this, "onlinepay")
);
bag.Add("orderpay",
Page.ClientScript.GetPostBackClientHyperlink(this, "orderpay")
);
bag.Add("orderid", ClientID + "orderid");
if (!string.IsNullOrEmpty(Request["realname"]))
{ bag.Add("realname", Request["realname"]);}
else { bag.Add("realname", user.Information.RealName); }
if (!string.IsNullOrEmpty(Request["phone"]))
{ bag.Add("phone", Request["phone"]); }
else { bag.Add("phone", user.Information.Phone ); }
}
/// <summary>
/// 移除一个物品的url
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
public string RemoveLink(int i)
{
return DNNLite.Comm.Comm.AppendUrlQry("removeno=" + i.ToString());
}
#region 处理回发事件
public void RaisePostBackEvent(string eventArgument)
{
switch (eventArgument)
{
case "clear":
Cart.Clear();
break;
case "order":
if (Cart.GetItems().Count == 0)
{
return;
}
if (string.IsNullOrEmpty(Request["realname"]) ||
string.IsNullOrEmpty(Request["phone"])
) { return; }
order = CreateOrder();
state = "订单";
break;
case "onlinepay":
//立即在线支付
if (Cart.GetItems().Count == 0)
{
return;
}
if (string.IsNullOrEmpty(Request["realname"]) ||
string.IsNullOrEmpty(Request["phone"])
) { return; }
order = CreateOrder();
//PayAble p = new PayAble(order.OrderNum, order.MoneyTotal);
//new PayPageRedirect(p).Redirect();
Response.Redirect("~/DesktopModules/Shop/OrderOnlinePay.aspx?orderid=" + order.ID.ToString());
break;
case "orderpay":
if (string.IsNullOrEmpty(Request.Form[ClientID + "orderid"]))
{
return;
}
Response.Redirect(
"~/DesktopModules/Shop/OrderOnlinePay.aspx?orderid=" +
Request.Form[ClientID + "orderid"]);
//int orderid = int.Parse(Request.Form[ClientID + "orderid"]);
//order = Orders.Find(orderid);
break;
}
}
#endregion
/// <summary>
/// 建立订单
/// </summary>
private Orders CreateOrder()
{
using (TransactionScope t1 = new TransactionScope(OnDispose.Rollback))
{
try
{
Orders o = new Orders();
o.ClientID = user.Information.Id;
o.ContacterName = user.Information.UserName;
o.InputTime = DateTime.Now;
o.MoneyGoods = Cart.TrueTotalMoney;
o.MoneyTotal = Cart.TrueTotalMoney;
o.UserName = user.UserName;
o.Status = EnumOrderState.未付款;
o.ContacterName = Request["realname"];
o.Phone = Request["phone"];
string ordernum = Orders.NewOrderNum();
o.OrderNum = ordernum;
o.CreateAndFlush();
foreach (BuyItem itm in Cart.GetItems())
{
OrderItem om = new OrderItem();
om.OrderID = o.ID;
om.Amount = itm.Amount;
om.Price = itm.Price;
om.Price_Market = itm.Price_Market;
om.ProductCharacter = itm.ProductCharacter;
om.ProductID = itm.ProductID;
om.ProductName = itm.ProductName;
om.Property = itm.Property;
om.Remark = itm.Remark;
om.SaleType = 1;
om.ServiceTerm = itm.ServiceTerm;
om.ServiceTermUnit = itm.ServiceTermUnit;
om.SubTotal = itm.SubTotal;
om.TableName = itm.TableName;
om.TruePrice = itm.TruePrice;
om.Unit = itm.Unit;
om.Weight = itm.Weight;
om.CreateAndFlush();
}
t1.VoteCommit();
Cart.Clear();
return o;
}
catch (Exception)
{
throw;
}
}
}
#region IActionable 成员
public IList<ModuleAction> GetCommands()
{
IList<ModuleAction> acts = new List<ModuleAction>();
acts.Add(new ModuleAction("订单管理", "Orders", EditUrl("Orders")));
return acts;
}
#endregion
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -