コード例 #1
0
        /// <summary>
        /// 提交表单
        /// </summary>
        /// <returns></returns>
        protected override object OnSubmit()
        {
            var sessionManager = Application.Ioc.Resolve <SessionManager>();
            var session        = sessionManager.GetSession();
            var userManager    = Application.Ioc.Resolve <UserManager>();

            // 修改密码
            if (!string.IsNullOrEmpty(OldPassword) && !string.IsNullOrEmpty(Password))
            {
                if (Password != ConfirmPassword)
                {
                    throw new BadRequestException(new T("Please repeat the password exactly"));
                }
                userManager.ChangePassword(session.ReleatedId, OldPassword, Password);
            }
            // 修改头像
            if (Avatar != null)
            {
                userManager.SaveAvatar(session.ReleatedId, Avatar.OpenReadStream());
            }
            else if (DeleteAvatar)
            {
                userManager.DeleteAvatar(session.ReleatedId);
            }
            return(new {
                message = new T("Saved Successfully"),
                script = ScriptStrings.RefreshAfter(1500)
            });
        }
コード例 #2
0
            /// <summary>
            /// 提交表单
            /// </summary>
            /// <returns></returns>
            protected override object OnSubmit()
            {
                var app = new PaymentApiManageApp();
                var url = string.Format("{0}?type={1}", app.AddUrl, Type);

                return(new { script = ScriptStrings.RedirectModal(url) });
            }
コード例 #3
0
        public IActionResult SwitchToLanguage()
        {
            var context  = HttpManager.CurrentContext;
            var language = context.Request.Get <string>("language");

            context.PutCookie(LocaleUtils.LanguageKey, language);
            return(new JsonResult(new { script = ScriptStrings.RefreshAfter(0) }));
        }
コード例 #4
0
        public IActionResult Create()
        {
            HttpRequestChecker.RequieAjaxRequest();
            var orderManager          = Application.Ioc.Resolve <OrderManager>();
            var transactionManager    = Application.Ioc.Resolve <PaymentTransactionManager>();
            var sessionManager        = Application.Ioc.Resolve <SessionManager>();
            var createOrderParameters = HttpManager.CurrentContext.Request
                                        .Get <CreateOrderParameters>("CreateOrderParameters") ?? new CreateOrderParameters();

            createOrderParameters.SetLoginInfo();
            var result      = orderManager.CreateOrder(createOrderParameters);
            var transaction = result.CreatedTransactions.Last();
            var paymentUrl  = transactionManager.GetPaymentUrl(transaction.Id);

            return(new JsonResult(new { script = ScriptStrings.Redirect(paymentUrl) }));
        }
コード例 #5
0
 /// <summary>
 /// 添加删除按钮
 /// 点击后弹出确认框,确认后把json=[数据Id]提交到删除url
 /// </summary>
 /// <param name="column">操作列</param>
 /// <param name="typeName">类型名称</param>
 /// <param name="deleteUrl">删除使用的Url</param>
 /// <param name="name">名称,不指定时使用默认值</param>
 /// <param name="buttonClass">按钮的Css类,不指定时使用默认值</param>
 /// <param name="iconClass">图标的Css类,不指定时使用默认值</param>
 /// <param name="titleTemplate">标题的模板,格式是underscore.js的格式,参数传入rows</param>
 /// <param name="urlTemplate">编辑Url的模板,格式是underscore.js的格式,参数传入rows</param>
 /// <param name="primaryKey">数据Id保存的名称,不指定时使用默认值</param>
 /// <param name="dialogParameters">弹出框的参数,不指定时使用默认值</param>
 public static void AddDeleteAction(
     this AjaxTableActionColumn column, string typeName, string deleteUrl,
     string name          = null, string buttonClass      = null, string iconClass = null,
     string titleTemplate = null, string urlTemplate      = null,
     string primaryKey    = null, object dialogParameters = null)
 {
     primaryKey = primaryKey ?? EntityTrait.For <object>().PrimaryKey;
     column.AddConfirmActionForBelongedRow(
         name ?? new T("Delete"),
         buttonClass ?? "btn btn-xs btn-danger",
         iconClass ?? "fa fa-remove",
         titleTemplate ?? string.Format(new T("Delete {0}"), new T(typeName)),
         ScriptStrings.ConfirmMessageTemplateForMultiSelected(
             string.Format(new T("Sure to delete following {0}?"), new T(typeName)), "ToString"),
         ScriptStrings.PostConfirmedActionForMultiSelected(primaryKey, deleteUrl),
         dialogParameters);
 }
コード例 #6
0
        /// <summary>
        /// 提交表单
        /// </summary>
        /// <returns></returns>
        protected override object OnSubmit()
        {
            // 创建交易
            var api                = GetApiFromRequest();
            var sessionManager     = Application.Ioc.Resolve <SessionManager>();
            var payerId            = sessionManager.GetSession().GetUser().Id;
            var payeeId            = api.Owner == null ? null : (long?)api.Owner.Id;
            var transactionManager = Application.Ioc.Resolve <PaymentTransactionManager>();
            var transaction        = transactionManager.CreateTestTransaction(api.Id, Amount, Currency, payerId, payeeId, Description);
            // 跳转到支付url地址
            var url = transactionManager.GetPaymentUrl(transaction.Id);

            return(new {
                message = new T("Create test transaction success, redirecting to payment page..."),
                script = ScriptStrings.Redirect(url, 3000)
            });
        }
コード例 #7
0
            /// <summary>
            /// 提交表单
            /// </summary>
            /// <returns></returns>
            protected override object OnSubmit()
            {
                var sessionManager = Application.Ioc.Resolve <SessionManager>();
                var session        = sessionManager.GetSession();
                var userManager    = Application.Ioc.Resolve <UserManager>();

                if (Avatar != null)
                {
                    userManager.SaveAvatar(session.ReleatedId, Avatar.OpenReadStream());
                }
                else if (DeleteAvatar)
                {
                    userManager.DeleteAvatar(session.ReleatedId);
                }
                return(new {
                    message = new T("Saved Successfully"),
                    script = ScriptStrings.RefreshAfter(1500)
                });
            }
コード例 #8
0
            /// <summary>
            /// 提交表单
            /// </summary>
            /// <returns></returns>
            protected override object OnSubmit()
            {
                // 检查支付密码是否正确
                var apiData = Transaction.Api.ExtraData.GetOrDefault <ApiData>("ApiData") ?? new ApiData();

                apiData.CheckPaymentPassword(PaymentPassword);
                // 按类型执行支付操作
                UnitOfWork.WriteRepository <PaymentTransactionRepository>(r => {
                    var state = PayType == (int)PayTypes.ImmediateArrival ?
                                PaymentTransactionState.Success : PaymentTransactionState.SecuredPaid;
                    r.Process(Transaction.Id, null, state);
                });
                // 返回成功并跳转到交易结果页
                var resultUrl = string.Format("/payment/transaction/pay_result?id={0}", Transaction.Id);

                return(new {
                    message = new T("Payment Successfully, Redirecting to result page..."),
                    script = ScriptStrings.Redirect(resultUrl, 3000)
                });
            }
コード例 #9
0
        /// <summary>
        /// 添加删除相关的按钮
        /// 如果数据类型可以回收,则添加批量删除或批量恢复和永久删除
        /// 如果数据类型不可以回收,则添加批量永久删除
        /// </summary>
        /// <param name="column">Id列</param>
        /// <param name="request">搜索请求</param>
        /// <param name="dataType">数据类型</param>
        /// <param name="typeName">类型名称</param>
        /// <param name="batchUrl">批量操作使用的Url</param>
        public static void AddDeleteActions(
            this AjaxTableIdColumn column, AjaxTableSearchRequest request,
            Type dataType, string typeName, string batchUrl)
        {
            // 判断需要添加哪些操作
            bool addBatchDelete        = false;
            bool addBatchRecover       = false;
            bool addBatchDeleteForever = false;

            if (RecyclableTrait.For(dataType).IsRecyclable)
            {
                var deleted = request.Conditions.GetOrDefault <bool>("Deleted");
                addBatchDelete        = !deleted;
                addBatchRecover       = deleted;
                addBatchDeleteForever = deleted;
            }
            else
            {
                addBatchDeleteForever = true;
            }
            // 添加批量删除
            typeName = new T(typeName);
            var entityTrait = EntityTrait.For(dataType);

            if (addBatchDelete)
            {
                column.AddConfirmActionForMultiChecked(
                    new T("Batch Delete"),
                    "fa fa-recycle",
                    string.Format(new T("Please select {0} to delete"), typeName),
                    new T("Batch Delete"),
                    ScriptStrings.ConfirmMessageTemplateForMultiSelected(
                        string.Format(new T("Sure to delete following {0}?"), typeName), "ToString"),
                    ScriptStrings.PostConfirmedActionForMultiSelected(
                        entityTrait.PrimaryKey, batchUrl + "?action=delete"),
                    new { type = "type-danger" });
            }
            // 添加批量恢复
            if (addBatchRecover)
            {
                column.AddConfirmActionForMultiChecked(
                    new T("Batch Recover"),
                    "fa fa-history",
                    string.Format(new T("Please select {0} to recover"), typeName),
                    new T("Batch Recover"),
                    ScriptStrings.ConfirmMessageTemplateForMultiSelected(
                        string.Format(new T("Sure to recover following {0}?"), typeName), "ToString"),
                    ScriptStrings.PostConfirmedActionForMultiSelected(
                        entityTrait.PrimaryKey, batchUrl + "?action=recover"));
            }
            // 添加批量永久删除
            if (addBatchDeleteForever)
            {
                column.AddConfirmActionForMultiChecked(
                    new T("Batch Delete Forever"),
                    "fa fa-remove",
                    string.Format(new T("Please select {0} to delete"), typeName),
                    new T("Batch Delete Forever"),
                    ScriptStrings.ConfirmMessageTemplateForMultiSelected(
                        string.Format(new T("Sure to delete following {0} forever?"), typeName), "ToString"),
                    ScriptStrings.PostConfirmedActionForMultiSelected(
                        entityTrait.PrimaryKey, batchUrl + "?action=delete_forever"),
                    new { type = "type-danger" });
            }
        }