/// <summary>
        /// 获取当前会话中的购物车的信息
        /// 为了保证数据的实时性,这个函数不使用缓存
        /// </summary>
        /// <param name="type">购物车类型</param>
        /// <returns></returns>
        public virtual object GetCartApiInfo(CartProductType type)
        {
            // 购物车商品显示信息
            var cartProducts    = GetCartProducts(type);
            var displayInfos    = cartProducts.Select(c => c.ToOrderProductDisplayInfo()).ToList();
            var anyRealProducts = displayInfos.Any(d => d.IsRealProduct);
            // 收货地址表单
            var sessionManager      = Application.Ioc.Resolve <SessionManager>();
            var orderManager        = Application.Ioc.Resolve <SellerOrderManager>();
            var user                = sessionManager.GetSession().GetUser();
            var userId              = user?.Id;
            var shippingAddressForm = new ShippingAddressForm();

            shippingAddressForm.Bind();
            // 订单留言表单
            var commentForm = new CreateOrderCommenForm();

            commentForm.Bind();
            // 物流列表,各个卖家都有单独的列表
            // 没有实体商品的卖家不包含在列表中
            var sellers = displayInfos
                          .Where(d => d.IsRealProduct)
                          .Select(d => new { d.SellerId, d.Seller }).GroupBy(d => d.SellerId);
            var logisticsWithSellers = sellers.Select(s => new {
                sellerId      = s.Key,
                seller        = s.First().Seller,
                logisticsList = orderManager.GetAvailableLogistics(userId, s.Key)
                                .Select(l => l.ToLiquid()).ToList()
            }).ToList();
            // 支付接口列表,各个卖家使用同一个列表
            // 卖家不应该提供单独的支付接口,应该使用结算处理
            var paymentApis = orderManager.GetAvailablePaymentApis(userId)
                              .Select(a => a.ToLiquid()).ToList();
            // 订单创建表单
            var createOrderForm = new CreateOrderForm();

            createOrderForm.Bind();
            return(new {
                displayInfos, anyRealProducts,
                shippingAddressForm, commentForm,
                logisticsWithSellers, paymentApis, createOrderForm,
            });
        }
示例#2
0
        private void SubForm_Load(object sender, EventArgs e)
        {
            string Pam_id = Name;

            switch (Pam_id)
            {
            case "Role":
                RoleUcForm _RoleForm = new RoleUcForm(this);
                _RoleForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_RoleForm);
                break;

            case "Usr":
                UsrUcForm _UsrForm = new UsrUcForm(this);
                _UsrForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_UsrForm);
                break;

            case "Department":
                DeptForm _deptForm = new DeptForm(this);
                _deptForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_deptForm);
                break;

            case "Employee":
                EmployeeForm _EmployeeForm = new EmployeeForm(this);
                _EmployeeForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_EmployeeForm);
                break;

            case "Csv":
                CsvForm _csvForm = new CsvForm(this);
                _csvForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_csvForm);
                break;

            case "Currency":
                CurrencyForm _currencyForm = new CurrencyForm(this);
                _currencyForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_currencyForm);
                break;

            case "SalesType":
                SalesTypeForm _salesTypeForm = new SalesTypeForm(this);
                _salesTypeForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_salesTypeForm);
                break;

            case "BusinessType":
                BusinessTypeForm _businessTypeForm = new BusinessTypeForm(this);
                _businessTypeForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_businessTypeForm);
                break;

            case "ItemUt":
                ItemUtForm _itemUtForm = new ItemUtForm(this);
                _itemUtForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_itemUtForm);
                break;

            case "ItemKind":
                ItemKindForm _itemKindForm = new ItemKindForm(this);
                _itemKindForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_itemKindForm);
                break;

            case "Warehouse":
                WarehouseForm _warehouseForm = new WarehouseForm(this);
                _warehouseForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_warehouseForm);
                break;

            case "ProductArea":
                ProductAreaForm _productAreaForm = new ProductAreaForm(this);
                _productAreaForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_productAreaForm);
                break;

            case "Item":
                ItemForm _itemForm = new ItemForm(this);
                _itemForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_itemForm);
                break;

            case "RequestCollectionOrder":
                RequestCollectionOrderForm _OrderForm = new RequestCollectionOrderForm(this);
                _OrderForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_OrderForm);
                break;

            case "PlanningOrderInfoInput":
                PlanningOrderInfoInputForm _FrorecastForm = new PlanningOrderInfoInputForm(this);
                _FrorecastForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_FrorecastForm);
                break;

            case "TaskNotifyOrder":
                TaskNotifyOrderForm _TaskNotifyOrderForm = new TaskNotifyOrderForm(this);
                _TaskNotifyOrderForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_TaskNotifyOrderForm);
                break;

            case "ShippingInfoConfirmOrder":
                ShippingInfoConfirmOrderForm _ShippingInfoConfirmOrderForm = new ShippingInfoConfirmOrderForm(this);
                _ShippingInfoConfirmOrderForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_ShippingInfoConfirmOrderForm);
                break;

            case "PgmTransferWarningSetting":
                PgmTransferWarningSettingForm _PgmTransferWarningSettingForm = new PgmTransferWarningSettingForm(this);
                _PgmTransferWarningSettingForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_PgmTransferWarningSettingForm);
                break;

            case "Project":
                ProjectForm _ProjectForm = new ProjectForm(this);
                _ProjectForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_ProjectForm);
                break;

            case "ProjectStage":
                ProjectStageForm _ProjectStageForm = new ProjectStageForm(this);
                _ProjectStageForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_ProjectStageForm);
                break;

            case "ShippingAddress":
                ShippingAddressForm _ShippingAddressForm = new ShippingAddressForm(this);
                _ShippingAddressForm.Dock = DockStyle.Fill;
                this.PalView.Controls.Add(_ShippingAddressForm);
                break;

            default:
                break;
            }
        }