public override bool ResponseAsk(TheAskWaitingUserAnswer ask)
        {
            if (ask.AnswerResult.key == "0")//结束流程
            {
                answerMsg("欢迎下次使用!");
                return(false);
            }
            else
            {
                PlanShareBetInfo pbi = new PlanShareBetInfo(ask.LastRequestWaitResponse.currPlan.shareAmount.Value);
                pbi.betWxName       = requestUser;
                pbi.betNikeName     = requestNike;
                pbi.subscribeShares = int.Parse(Buffs[0].ToString());
                pbi.needPayAmount   = pbi.subscribeShares * ask.LastRequestWaitResponse.currPlan.shareAmount.Value;

                currPlan.subscribeList.Add(pbi);
                answerMsg(pbi.toSubscribeString());
                ResponseAction_ShowPlan sp = new ResponseAction_ShowPlan(wxprocess, wxmsg);
                sp.currPlan = currPlan;

                sp.answerMsg();
                int realcnt = sp.currPlan.subscribeList.Sum(a => a.subscribeShares);
                if (realcnt >= sp.currPlan.planShares)
                {
                    ResponseAction_ModifyStatus msp = new ResponseAction_ModifyStatus(wxprocess, wxmsg, SharePlanStatus.Paying, realcnt.ToString());
                    msp.requestUser = currPlan.creator;
                    msp.requestNike = currPlan.creatorNike;
                    string m = "计划募集份数已经达到,请确定是否继续超额募集!选否将停止接受认购!";
                    TheAskWaitingUserAnswer newask = new TheAskWaitingUserAnswer(msp, roomId, currPlan.creator, currPlan.creatorNike);
                    newask.askData = MutliLevelData.createAValidateSubmitData("1", "确定", "0", "取消");
                    newask.askMsg  = string.Format(@"计划募集份数已经达到,请确定是否继续超额募集!选否将停止接受认购!
{0}", newask.AskText);
                    wxprocess.InjectAsk(newask);
                    answerMsg(newask.askMsg, null, currPlan.creatorNike);
                }
                return(true);
            }
        }
        public static ResponseActionClass CreateAction(ActionType act, WXMsgProcess wxprs, wxMessageClass msg)
        {
            ResponseActionClass ret = null;

            switch (act)
            {
            case ActionType.ResetSystem:
            {
                ShareLotteryPlanClass.Reset();
                WXMsgProcess.ActionDic = null;
                break;
            }

            case ActionType.ApplyCreate:
            {
                ret = new ResponseAction_ApplyCreate(wxprs, msg);
                break;
            }

            case ActionType.SubmitNewInfo:
            {
                ret = new ResponseAction_SubmitNewInfo(wxprs, msg);
                break;
            }

            case ActionType.CancelCurr:
            {
                ret = new ResponseAction_CancelCurr(wxprs, msg);
                break;
            }

            case ActionType.SubcribeShares:
            {
                ret = new ResponseAction_SubcribeShares(wxprs, msg);
                break;
            }

            case ActionType.ModifyPlan:
            {
                ret = new ResponseAction_ModifyStatus(wxprs, msg, SharePlanStatus.Ready);
                break;
            }

            case ActionType.AppendShares:
            {
                ret = new ResponseAction_ModifyStatus(wxprs, msg, SharePlanStatus.Paied);
                break;
            }

            case ActionType.JdUnion:
            {
                ret = new ResponseAction_JdUnion(wxprs, msg);
                break;
            }

            case ActionType.ShowPlan:
            {
                ret = new ResponseAction_ShowPlan(wxprs, msg);
                break;
            }

            case ActionType.EndTheSubscribe:
            {
                ret = new ResponseAction_ModifyStatus(wxprs, msg, SharePlanStatus.Paying);
                break;
            }

            case ActionType.DeclareResult:
            {
                ret = new ResponseAction_ModifyStatus(wxprs, msg, SharePlanStatus.Opened);
                break;
            }

            case ActionType.DeclareProfit:
            {
                ret = new ResponseAction_ModifyStatus(wxprs, msg, SharePlanStatus.Opened);
                break;
            }

            case ActionType.ClosePlan:
            {
                ret = new ResponseAction_ClosePlan(wxprs, msg);
                break;
            }

            case ActionType.Charge:
            {
                ret = new ResponseAction_Charge(wxprs, msg);
                break;
            }

            case ActionType.ValidateInfo:
            {
                ret = new ResponseAction_ValidateInfo(wxprs, msg);
                break;
            }

            case ActionType.ManualInstructs:
            {
                ret = new ResponseAction_ManualIntructs(wxprs, msg);
                break;
            }

            case ActionType.Undefined:
            default:
            {
                ret = new ResponseAction_Undefined(wxprs, msg);
                break;
            }
            }
            return(ret);
        }