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(); }); }