private XDocument Format(IEpcisResponse entity) { switch (entity) { case GetStandardVersionResponse getStandardVersionResponse: return(FormatInternal(getStandardVersionResponse)); case GetVendorVersionResponse getVendorVersionResponse: return(FormatInternal(getVendorVersionResponse)); case ExceptionResponse exceptionResponse: return(FormatInternal(exceptionResponse)); case GetQueryNamesResponse getQueryNamesResponse: return(FormatInternal(getQueryNamesResponse)); case GetSubscriptionIdsResponse getSubscriptionIdsResponse: return(FormatInternal(getSubscriptionIdsResponse)); case PollResponse pollResponse: return(FormatInternal(pollResponse)); default: throw new NotImplementedException($"Unable to format '{entity.GetType()}'"); } }
public override async Task Write(IEpcisResponse entity, Stream output, CancellationToken cancellationToken) { if (entity == default(IEpcisResponse)) { return; } await FormatSoap(Format(entity)).SaveAsync(output, Options, cancellationToken); }
public async Task Write(IEpcisResponse entity, Stream output, CancellationToken cancellationToken) { if (entity == default || entity is EmptyResponse) { return; } await Format(entity).SaveAsync(output, Options, cancellationToken); }
private async Task WriteRequestPayload(HttpWebRequest request, IEpcisResponse epcisResponse, CancellationToken cancellationToken) { using var stream = await request.GetRequestStreamAsync(); var formatter = new XmlCommandFormatter(); request.ContentType = formatter.ContentType; await formatter.WriteResponse(epcisResponse, stream, cancellationToken); }
public async Task <bool> Send(string destination, IEpcisResponse epcisResponse, CancellationToken cancellationToken) { var request = WebRequest.CreateHttp(destination); request.Method = "POST"; TrySetBasicAuthorization(request); await WriteRequestPayload(request, epcisResponse, cancellationToken); return(await SendRequestAsync(request, cancellationToken)); }
private static XElement Format(IEpcisResponse entity, CancellationToken cancellationToken) { return(entity switch { GetStandardVersionResponse standardVersion => FormatGetStandardVersionResponse(standardVersion), GetVendorVersionResponse vendorVersion => FormatGetVendorVersionResponse(vendorVersion), ExceptionResponse exception => FormatInternal(exception), GetQueryNamesResponse queryNames => FormatGetQueryNamesResponse(queryNames), GetSubscriptionIdsResponse subscriptionIds => FormatGetSubscriptionIdsResponse(subscriptionIds), PollResponse poll => FormatPollResponse(poll, cancellationToken), _ => throw new NotImplementedException($"Unable to format '{entity.GetType()}'") });
public async Task Write(IEpcisResponse response, Stream output, CancellationToken cancellationToken) { if (response == default || response is EmptyResponse) { return; } var formattedResponse = Format(response, cancellationToken); var wrappedResponse = WrapResponse(formattedResponse); await wrappedResponse.SaveAsync(output, Options, cancellationToken); }
public override async Task Write(IEpcisResponse entity, Stream output, CancellationToken cancellationToken) { if (entity == default(IEpcisResponse)) { return; } using (var writer = new StreamWriter(output)) { await writer.WriteAsync(new ReadOnlyMemory <char>(Format(entity).ToArray()), cancellationToken); } }
public async Task Send(string destination, IEpcisResponse epcisResponse, CancellationToken cancellationToken) { var formatter = new XmlCommandFormatter(); var request = WebRequest.CreateHttp(destination); request.Method = "POST"; request.ContentType = formatter.ContentType; TrySetBasicAuthorization(request); using (var stream = await request.GetRequestStreamAsync()) { await formatter.WriteResponse(epcisResponse, stream, cancellationToken); } using (var response = await request.GetResponseAsync() as HttpWebResponse) using (var responseMessage = new HttpResponseMessage(response.StatusCode)) { if (!responseMessage.IsSuccessStatusCode) { throw new Exception($"Response does not indicate success status code: {response.StatusCode} ({response.StatusDescription})"); } } }
public override void When() { Response = Handler.Handle(Request, CancellationToken).Result; }
public void Write(IEpcisResponse entity, Stream output) { Format((dynamic)entity).Save(output, Options); }
public override void When() { Response = Controller.Query(Request, CancellationToken).Result; }
public abstract Task Write(IEpcisResponse entity, Stream output, CancellationToken cancellationToken);
public async Task WriteResponse(IEpcisResponse epcisResponse, Stream body, CancellationToken cancellationToken) { var formatter = new SoapResponseFormatter(); await formatter.Write(epcisResponse, body, cancellationToken); }
public Task WriteResponse(IEpcisResponse entity, Stream output, CancellationToken cancellationToken) => new JsonResponseFormatter().Write(entity, output, cancellationToken);