⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cart.ascx.cs

📁 如果不使用IIS,请先运行 XSP.exe,待提示已侦听 8080端口后
💻 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 + -