private async Task <ResponseMessage> InvokePortal(string operation, ByteString requestData) { var result = new DataPortalResponse(); DataPortalErrorInfo errorData = null; try { var request = SerializationFormatterFactory.GetFormatter().Deserialize(requestData.ToByteArray()); result = await CallPortal(operation, request); } catch (Exception ex) { errorData = new DataPortalErrorInfo(ex); } var portalResult = new DataPortalResponse { ErrorData = errorData, GlobalContext = result.GlobalContext, ObjectData = result.ObjectData }; var buffer = SerializationFormatterFactory.GetFormatter().Serialize(portalResult); return(new ResponseMessage { Body = ByteString.CopyFrom(buffer) }); }
private async Task <ResponseMessage> InvokePortal(string operation, ByteString requestData) { var result = ApplicationContext.CreateInstanceDI <DataPortalResponse>(); DataPortalErrorInfo errorData = null; try { var request = SerializationFormatterFactory.GetFormatter(ApplicationContext).Deserialize(requestData.ToByteArray()); result = await CallPortal(operation, request); } catch (Exception ex) { errorData = ApplicationContext.CreateInstanceDI <DataPortalErrorInfo>(ex); } var portalResult = ApplicationContext.CreateInstanceDI <DataPortalResponse>(); portalResult.ErrorData = errorData; portalResult.ObjectData = result.ObjectData; var buffer = SerializationFormatterFactory.GetFormatter(ApplicationContext).Serialize(portalResult); return(new ResponseMessage { Body = ByteString.CopyFrom(buffer) }); }
/// <summary> /// Creates an instance of the object. /// </summary> /// <param name="info">Info about the exception.</param> public DataPortalException(DataPortalErrorInfo info) : base(info.Message) { this.ErrorInfo = info; }