Exemplo n.º 1
0
        //调用委托
        private async Task <AmpMessage> ProcessGetAPaperAsync(AmpMessage req)
        {
            GetAPaperReq request = null;

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

            req.FriendlyServiceName = "APaperInnerService.GetAPaper";

            var result = await GetAPaperAsync(request);

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

            response.FriendlyServiceName = "APaperInnerService.GetAPaper";
            response.Code = result.Code;
            if (result.Data != null)
            {
                response.Data = result.Data.ToByteArray();
            }
            return(response);
        }
Exemplo n.º 2
0
        public async Task <RpcResult <APaperRsp> > GetAPaperAsync(GetAPaperReq req, int timeOut = 3000)
        {
            AmpMessage message = AmpMessage.CreateRequestMessage(20002, 3);

            message.FriendlyServiceName = "APaperService.GetAPaper";
            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 <APaperRsp>();

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

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

            return(result);
        }
Exemplo n.º 3
0
        //同步方法
        public RpcResult <APaperRsp> GetAPaper(GetAPaperReq req)
        {
            AmpMessage message = AmpMessage.CreateRequestMessage(20002, 3);

            message.FriendlyServiceName = "APaperService.GetAPaper";


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

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

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

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

            return(result);
        }
Exemplo n.º 4
0
 //抽象方法
 public abstract Task <RpcResult <APaperRsp> > GetAPaperAsync(GetAPaperReq req);
Exemplo n.º 5
0
        /// <summary>
        /// 获取答卷详情
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public override async Task <RpcResult <APaperRsp> > GetAPaperAsync(GetAPaperReq request)
        {
            var res = new RpcResult <APaperRsp>();

            res.Data = new APaperRsp();
            var apaper = await this._apaperRepo.GetAPaper(request.PaperId);

            if (apaper == null) // 问卷不存在
            {
                res.Code = ErrorCodes.DATA_NOT_FOUND;
                res.Data.ReturnMessage = "答卷不存在";
                return(res);
            }

            var answers = await this._apaperRepo.GetAnswersByPaperId(request.PaperId);

            var          qpaperService = _proxy.GetClient <QPaperInnerServiceClient>();
            GetQPaperReq getQPRep      = new GetQPaperReq();

            getQPRep.XRequestId = request.XRequestId;
            getQPRep.Identity   = request.Identity;
            getQPRep.ClientIp   = request.ClientIp;
            getQPRep.CheckRole  = request.CheckRole;
            getQPRep.QpaperId   = apaper.QpaperId;
            var getQPRes = await qpaperService.GetQPaperFullAsync(getQPRep);

            if (getQPRes.Code != 0)
            {
                res.Code = getQPRes.Code;

                if (getQPRes.Data != null)
                {
                    res.Data.ReturnMessage = getQPRes.Data.ReturnMessage;
                }
                return(res);
            }

            //答卷信息
            res.Data.Apaper            = new DTOAPaperWithAnswers();
            res.Data.Apaper.ApaperId   = apaper.PaperId;
            res.Data.Apaper.CreateTime = apaper.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
            res.Data.Apaper.QpaperId   = apaper.QpaperId;
            res.Data.Apaper.UserId     = apaper.UserId;
            res.Data.Apaper.Remark     = apaper.Remark ?? "";
            //rsp.Apaper.Answers
            if (answers != null && answers.Count > 0)
            {
                foreach (var a in answers)
                {
                    res.Data.Apaper.Answers.Add(new DTOAnswer()
                    {
                        AnswerId         = a.AnswerId,
                        ApaperId         = a.ApaperId,
                        ObjectiveAnswer  = a.ObjectiveAnswer,
                        SubjectiveAnswer = a.SubjectiveAnswer,
                        QuestionId       = a.QuestionId
                    });
                }
            }
            //rsp.Apaper.Answers;
            //问卷数据
            res.Data.Qpaper = getQPRes.Data.Qpaper;

            return(res);
        }
Exemplo n.º 6
0
        public override Task <RpcResult <APaperRsp> > GetAPaperAsync(GetAPaperReq request)
        {
            var client = _proxy.GetClient <APaperInnerServiceClient>();

            return(client.GetAPaperAsync(request));
        }