예제 #1
0
        /// <summary>
        /// 获取发货记录的Html
        /// </summary>
        /// <param name="info">订单显示信息</param>
        /// <param name="deliveries">发货记录</param>
        /// <returns></returns>
        public static HtmlString GetDeliveryRecordsHtml(
            this OrderDisplayInfo info, IEnumerable <OrderDelivery> deliveries)
        {
            var table = new StaticTableBuilder();

            table.Columns.Add("Serial");
            table.Columns.Add("OrderLogistics", "150");
            table.Columns.Add("LogisticsSerial", "150");
            table.Columns.Add("DeliveryOperator", "150");
            table.Columns.Add("DeliveryTime", "150");
            table.Columns.Add("Actions", "150", cssClass: "actions");
            deliveries = deliveries.OrderByDescending(d => d.CreateTime);
            var templateManager = Application.Ioc.Resolve <TemplateManager>();

            foreach (var delivery in deliveries)
            {
                var viewUrl = string.Format(info.ViewDeliveryUrlFormat, delivery.Id);
                var action  = string.IsNullOrEmpty(viewUrl) ? new HtmlString("") :
                              DefaultOrderDisplayInfoProvider.GetModalAction(templateManager,
                                                                             new T("View"), viewUrl, "fa fa-edit",
                                                                             new T("View Delivery"), "btn btn-xs btn-info");
                table.Rows.Add(new {
                    Serial           = delivery.Serial,
                    OrderLogistics   = delivery.Logistics?.Name,
                    LogisticsSerial  = delivery.LogisticsSerial,
                    DeliveryOperator = delivery.Operator?.Username,
                    DeliveryTime     = delivery.CreateTime.ToClientTimeString(),
                    Actions          = action
                });
            }
            return((HtmlString)table.ToLiquid());
        }
        /// <summary>
        /// 添加订单操作
        /// </summary>
        public void AddActions(SellerOrder order, IList <HtmlString> actions, OrderOperatorType operatorType)
        {
            // 买家
            var productRatingManager = Application.Ioc.Resolve <ProductRatingManager>();
            var templateManager      = Application.Ioc.Resolve <TemplateManager>();

            if (operatorType == OrderOperatorType.Buyer)
            {
                // 评价
                var canRate = productRatingManager.CanRateOrder(order);
                if (canRate)
                {
                    actions.Add(DefaultOrderDisplayInfoProvider.GetLinkAction(templateManager,
                                                                              new T("Rate"),
                                                                              productRatingManager.GetRatingUrl(order), "fa fa-star-o", "btn btn-primary"));
                }
            }
        }
예제 #3
0
        /// <summary>
        /// 获取相关交易的Html
        /// </summary>
        /// <param name="info">订单显示信息</param>
        /// <returns></returns>
        public static HtmlString GetReleatedTransactionsHtml(this OrderDisplayInfo info)
        {
            var currencyManager = Application.Ioc.Resolve <CurrencyManager>();
            var orderManager    = Application.Ioc.Resolve <SellerOrderManager>();
            var table           = new StaticTableBuilder();

            table.Columns.Add("CreateTime", "150");
            table.Columns.Add("Serial");
            table.Columns.Add("PaymentApi", "150");
            table.Columns.Add("ExternalSerial", "150");
            table.Columns.Add("Amount", "150");
            table.Columns.Add("State", "150");
            table.Columns.Add("Actions", cssClass: "actions");
            var transactions    = orderManager.GetReleatedTransactions(info.Id);
            var templateManager = Application.Ioc.Resolve <TemplateManager>();

            foreach (var transaction in transactions)
            {
                var currency = currencyManager.GetCurrency(transaction.CurrencyType);
                var viewUrl  = string.Format(info.ViewTransactionUrlFormat, transaction.Id);
                var action   = string.IsNullOrEmpty(viewUrl) ? new HtmlString("") :
                               DefaultOrderDisplayInfoProvider.GetModalAction(templateManager,
                                                                              new T("View"), viewUrl, "fa fa-edit",
                                                                              new T("View Transaction"), "btn btn-xs btn-info");
                table.Rows.Add(new {
                    CreateTime     = transaction.CreateTime.ToClientTimeString(),
                    Serial         = transaction.Serial,
                    PaymentApi     = transaction.Api?.Name,
                    ExternalSerial = transaction.ExternalSerial,
                    Amount         = currency.Format(transaction.Amount),
                    State          = new T(transaction.State.GetDescription()),
                    Actions        = action
                });
            }
            return((HtmlString)table.ToLiquid());
        }