示例#1
0
        //调用委托
        private async Task <AmpMessage> ProcessGetAPaperStaAsync(AmpMessage req)
        {
            GetAPaperStaDetailReq request = null;

            if (req.Data == null)
            {
                request = new GetAPaperStaDetailReq();
            }
            else
            {
                request = GetAPaperStaDetailReq.Parser.ParseFrom(req.Data);
            }

            req.FriendlyServiceName = "APaperInnerService.GetAPaperSta";

            var result = await GetAPaperStaAsync(request);

            var response = AmpMessage.CreateResponseMessage(req.ServiceId, req.MessageId);

            response.FriendlyServiceName = "APaperInnerService.GetAPaperSta";
            response.Code = result.Code;
            if (result.Data != null)
            {
                response.Data = result.Data.ToByteArray();
            }
            return(response);
        }
示例#2
0
        public async Task <RpcResult <APaperStaDetailRsp> > GetAPaperStaAsync(GetAPaperStaDetailReq req, int timeOut = 3000)
        {
            AmpMessage message = AmpMessage.CreateRequestMessage(20002, 4);

            message.FriendlyServiceName = "APaperService.GetAPaperSta";
            message.Data = req.ToByteArray();
            var response = await base.CallInvoker.AsyncCall(message, timeOut);

            if (response == null)
            {
                throw new RpcException("error,response is null !");
            }
            var result = new RpcResult <APaperStaDetailRsp>();

            if (response.Code != 0)
            {
                result.Code = response.Code;
            }

            if (response.Data == null)
            {
                result.Data = new APaperStaDetailRsp();
            }
            else
            {
                result.Data = APaperStaDetailRsp.Parser.ParseFrom(response.Data);
            }

            return(result);
        }
示例#3
0
        //同步方法
        public RpcResult <APaperStaDetailRsp> GetAPaperSta(GetAPaperStaDetailReq req)
        {
            AmpMessage message = AmpMessage.CreateRequestMessage(20002, 4);

            message.FriendlyServiceName = "APaperService.GetAPaperSta";


            message.Data = req.ToByteArray();
            var response = base.CallInvoker.BlockingCall(message);

            if (response == null)
            {
                throw new RpcException("error,response is null !");
            }
            var result = new RpcResult <APaperStaDetailRsp>();

            if (response.Code != 0)
            {
                result.Code = response.Code;
            }

            if (response.Data == null)
            {
                result.Data = new APaperStaDetailRsp();
            }
            else
            {
                result.Data = APaperStaDetailRsp.Parser.ParseFrom(response.Data);
            }

            return(result);
        }
        public async override Task <RpcResult <QPaperStaRsp> > GetAPaperStaAsync(GetQPaperStaReq request)
        {
            var res = new RpcResult <QPaperStaRsp>();

            res.Data = new QPaperStaRsp();
            if (string.IsNullOrEmpty(request.Identity))
            {
                res.Code = Survey.Core.ErrorCodes.AUTHORIZATION_REQUIRED;
                res.Data.ReturnMessage = "请先登录";
                return(res);
            }

            var ap_client = _proxy.GetClient <APaperServiceClient>();
            var qp_client = _proxy.GetClient <QPaperServiceClient>();

            var req1 = new GetAPaperStaDetailReq();

            req1.ClientIp   = request.ClientIp;
            req1.Identity   = request.Identity;
            req1.XRequestId = request.XRequestId;
            req1.QpaperId   = request.QpaperId;

            var t1   = ap_client.GetAPaperStaAsync(req1);
            var req2 = new GetQPaperReq();

            req2.ClientIp   = request.ClientIp;
            req2.Identity   = request.Identity;
            req2.XRequestId = request.XRequestId;
            req2.QpaperId   = request.QpaperId;
            var t2 = qp_client.GetQPaperFullAsync(req2);

            await Task.WhenAll(t1, t2);

            if (t1.Result.Code != 0)
            {
                res.Code = t1.Result.Code;
                res.Data.ReturnMessage = t1.Result.Data.ReturnMessage;
                return(res);
            }
            if (t2.Result.Code != 0)
            {
                res.Code = t2.Result.Code;
                res.Data.ReturnMessage = t2.Result.Data.ReturnMessage;
                return(res);
            }

            res.Data.Qpaper = t2.Result.Data.Qpaper;
            res.Data.StaDetail.AddRange(t1.Result.Data.StaDetail);

            return(res);
        }
示例#5
0
 //抽象方法
 public abstract Task <RpcResult <APaperStaDetailRsp> > GetAPaperStaAsync(GetAPaperStaDetailReq req);
示例#6
0
        public override async Task <RpcResult <APaperStaDetailRsp> > GetAPaperStaAsync(GetAPaperStaDetailReq request)
        {
            var res = new RpcResult <APaperStaDetailRsp>();

            res.Data = new APaperStaDetailRsp();


            var staList = await this._apaperRepo.QueryQPaperStaDetailAsync(request.QpaperId);


            foreach (var item in staList)
            {
                var stad = new APaperStaDetail()
                {
                    QuestionId = item.QuestionId
                };
                stad.Oa.AddRange(new int[]
                {
                    item.OA1, item.OA2, item.OA3, item.OA4, item.OA5, item.OA6, item.OA7, item.OA8, item.OA9, item.OA10
                });
                res.Data.StaDetail.Add(stad);
            }

            return(res);
        }