Exemplo n.º 1
0
        /// <summary>
        /// Creates an <see cref="RpcException"/> for testing purposes.
        /// </summary>
        internal static RpcException CreateRpcException(string errorMessage, string errorTrigger,
                                                        string requestId)
        {
            GoogleAdsFailure failure = new GoogleAdsFailure();

            failure.Errors.Add(new GoogleAdsError()
            {
                ErrorCode = new ErrorCode()
                {
                    DistinctError = DistinctErrorEnum.Types.DistinctError.DuplicateElement
                },
                Message = errorMessage,
                Trigger = new Value()
                {
                    StringValue = errorTrigger
                }
            });

            Metadata metadata = new Metadata();

            using (MemoryStream memoryStream = new MemoryStream())
            {
                failure.WriteTo(memoryStream);
                metadata.Add(GoogleAdsException.FAILURE_KEY,
                             memoryStream.ToArray());
                metadata.Add(GoogleAdsException.REQUEST_ID_KEY,
                             requestId);
            }

            return(new RpcException(Status.DefaultSuccess, metadata));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates an <see cref="RpcException"/> for testing purposes.
        /// </summary>
        internal static RpcException CreateRpcException(string errorMessage,
                                                        string errorTrigger, Metadata responseMetadata)
        {
            GoogleAdsFailure failure = new GoogleAdsFailure();

            failure.Errors.Add(new GoogleAdsError()
            {
                ErrorCode = new ErrorCode()
                {
                    DistinctError = DistinctErrorEnum.Types.DistinctError.DuplicateElement
                },
                Location = new ErrorLocation()
                {
                    OperationIndex = 1,
                },
                Message = errorMessage,
                Trigger = new V0.Common.Value()
                {
                    StringValue = errorTrigger
                }
            });

            using (MemoryStream memoryStream = new MemoryStream())
            {
                failure.WriteTo(memoryStream);
                // TODO(Anash): Uncomment once Grpc allows periods in metadata key names.
                // responseMetadata.Add(GoogleAdsException.FAILURE_KEY,
                //     memoryStream.ToArray());
            }

            return(new RpcException(Status.DefaultSuccess, responseMetadata));
        }