private void RedeemThisRecord_Click(object sender, EventArgs e)
        {
            Task.Factory.StartNew(async() =>
            {
                if (this.dgv_Data.SelectedRows.Count > 0)
                {
                    List <UserRedeemableAssetRatio> assets = new List <UserRedeemableAssetRatio>();
                    UserRedeemableAssetRatio asset         = new UserRedeemableAssetRatio
                    {
                        AssetRatioType   = Convert.ToInt32(this.dgv_Data.SelectedRows[0].Cells[3].Value.ToString()),
                        UserAssetRatioId = this.dgv_Data.SelectedRows[0].Cells[2].Value.ToString()
                    };
                    assets.Add(asset);

                    RedeemInput input = new RedeemInput
                    {
                        UserAssetRatios = assets,
                        UserId          = this.dgv_Data.SelectedRows[0].Cells[1].Value.ToString()
                    };

                    bool result = await this.jymService.RedeemAsync(input);
                    if (result)
                    {
                        MessageBox.Show("赎回成功");
                        this.ReloadData();
                    }
                    else
                    {
                        MessageBox.Show("赎回失败");
                    }
                }
            });
        }
        private void RedeemSelectedRecord_Click(object sender, EventArgs e)
        {
            int SuccessCount = 0;

            this.picShow.Show();
            Task.Factory.StartNew(async() =>
            {
                List <RedeemInput> redeemInputRequests = new List <RedeemInput>();
                List <RedeemInput> redeemInputs        = new List <RedeemInput>();
                for (int i = 0; i < this.dgv_Data.Rows.Count; i++)
                {
                    DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)this.dgv_Data.Rows[i].Cells[0];
                    if (Convert.ToBoolean(checkCell.Value))
                    {
                        List <UserRedeemableAssetRatio> assets = new List <UserRedeemableAssetRatio>();
                        UserRedeemableAssetRatio asset         = new UserRedeemableAssetRatio
                        {
                            AssetRatioType   = Convert.ToInt32(this.dgv_Data.Rows[i].Cells[3].Value.ToString()),
                            UserAssetRatioId = this.dgv_Data.Rows[i].Cells[2].Value.ToString()
                        };
                        assets.Add(asset);

                        RedeemInput input     = new RedeemInput();
                        input.UserId          = this.dgv_Data.Rows[i].Cells[1].Value.ToString();
                        input.UserAssetRatios = assets;
                        redeemInputs.Add(input);
                    }
                }

                List <IGrouping <string, RedeemInput> > groupResult = redeemInputs.GroupBy(it => it.UserId).ToList();
                foreach (IGrouping <string, RedeemInput> item in groupResult)
                {
                    RedeemInput input = new RedeemInput
                    {
                        UserId          = item.Key,
                        UserAssetRatios = new List <UserRedeemableAssetRatio>()
                    };
                    foreach (RedeemInput redeemInput in item)
                    {
                        input.UserAssetRatios.AddRange(redeemInput.UserAssetRatios);
                    }

                    redeemInputRequests.Add(input);
                    if (await this.jymService.RedeemAsync(input))
                    {
                        SuccessCount++;
                    }
                    else
                    {
                        JYMNLogger.Logger.Info($"用户[ {item.Key} ] 申请赎回失败");
                    }
                }

                this.picShow.Hide();
                MessageBox.Show($"赎回结束:申请了[ {groupResult.Count} ]个用户的赎回,成功[ {SuccessCount} ]条");

                this.ReloadData();
            });
        }
        public async Task <AccountInfo> LoginAuto(string code)
        {
            HavenSDK sdk = this.GetHavenSDK(true, null);

            RedeemInput input = new RedeemInput()
            {
                code = code,
            };

            RedeemResponse response = await sdk.Auth.VerifyAccessCodeAsync(input).DemoUnPack();

            if (response.next_screen == RedeemScreen.AutoLogin)
            {
                _account = response.account_info;
            }
            return(_account);
        }
Esempio n. 4
0
        /// <summary>
        ///     赎回
        /// </summary>
        /// <param name="input">The input.</param>
        /// <returns>Task&lt;System.Boolean&gt;.</returns>
        public async Task <bool> RedeemAsync(RedeemInput input)
        {
            try
            {
                string url = $"{YemBizUrl}Yem/Order/Redeem";
                Client.DefaultRequestHeaders.Add("X-JYM-Application", EncryptHelper.Base64Encode("Jinyinmao.Tirisfal.Api@" + HttpUtility.HtmlDecode(ConfigurationManager.AppSettings["BearerAuthKeys"])));
                HttpResponseMessage responseMessage = await Client.PostAsJsonAsync(url, input);

                BizSimpleResult result = await responseMessage.Content.ReadAsAsync <BizSimpleResult>();

                Client.DefaultRequestHeaders.Remove("X-JYM-Application");
                return(responseMessage.StatusCode == HttpStatusCode.OK && result.IsSuccess);
            }
            catch (Exception e)
            {
                throw e;
            }
        }