//调用委托 private async Task <AmpMessage> ProcessGetAPaperStaAsync(AmpMessage req) { GetQPaperStaReq request = null; if (req.Data == null) { request = new GetQPaperStaReq(); } else { request = GetQPaperStaReq.Parser.ParseFrom(req.Data); } req.FriendlyServiceName = "APaperFacadeService.GetAPaperSta"; var result = await GetAPaperStaAsync(request); var response = AmpMessage.CreateResponseMessage(req.ServiceId, req.MessageId); response.FriendlyServiceName = "APaperFacadeService.GetAPaperSta"; response.Code = result.Code; if (result.Data != null) { response.Data = result.Data.ToByteArray(); } return(response); }
public async Task <RpcResult <QPaperStaRsp> > GetAPaperStaAsync(GetQPaperStaReq req, int timeOut = 3000) { AmpMessage message = AmpMessage.CreateRequestMessage(10002, 1); message.FriendlyServiceName = "APaperFacadeService.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 <QPaperStaRsp>(); if (response.Code != 0) { result.Code = response.Code; } if (response.Data == null) { result.Data = new QPaperStaRsp(); } else { result.Data = QPaperStaRsp.Parser.ParseFrom(response.Data); } return(result); }
//同步方法 public RpcResult <QPaperStaRsp> GetAPaperSta(GetQPaperStaReq req) { AmpMessage message = AmpMessage.CreateRequestMessage(10000, 24); message.FriendlyServiceName = "SurveyGateService.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 <QPaperStaRsp>(); if (response.Code != 0) { result.Code = response.Code; } else if (response.Data == null) { result.Code = ErrorCodes.CODE_INTERNAL_ERROR; } else { result.Data = QPaperStaRsp.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); }
//抽象方法 public abstract Task <RpcResult <QPaperStaRsp> > GetAPaperStaAsync(GetQPaperStaReq req);