public async Task <ClientResponse> ReversalAsync(ReversalType reversal, string traceNumber = null) { var item = reversal.CopyToBase(); var xmlBody = new Request { Item = item }; var url = Endpoint.Url(); var request = new ClientRequest { Request = xmlBody, TraceNumber = traceNumber, }; return(await SendRequestAsync(url, request)); }
public async Task <ClientResponse> ReversalAsync(ReversalType reversal, string traceNumber = null) { return(await _client.ReversalAsync(reversal, traceNumber)); }
public ClientResponse Reversal(ReversalType reversal, string traceNumber = null) { return(_client.Reversal(reversal, traceNumber)); }
public Task <reversalResponse> Reversal(ReversalType reversal) { return(client.ReversalAsync(reversal)); }
private void CheckReversalRequestCorrectness() { // Check there are not more requested inputs than workflow inputs or outputa if (NinRequest > Nin) { throw new ArgumentException($"The number of requested inputs is {NinRequest}, but the workflow contains only {Nin} inputs"); } if (NinRequest > Nout) { throw new ArgumentException($"The number of requested inputs is {NinRequest}, but the workflow contains only {Nout} outputs"); } // Check reversed inputs are amongst the workfolw inputs var inputsHash = new HashSet <string>(workflow.ModelDataInputs.GetNames()); foreach (var data in this.RequestedInputsToReverse.GetNames()) { if (!inputsHash.Contains(data)) { throw new ArgumentException($"The requested input {data} is not amongst the workflow inputs"); } } // Check there are not more requested outputs than workflow workfolw outputs if (NoutRequest > Nout) { throw new ArgumentException($"The number of requested outputs is {NoutRequest}, but the workflow contains only {Nout} outputs"); } if (NoutRequest > Nin) { throw new ArgumentException($"The number of requested outputs is {NoutRequest}, but the workflow contains only {Nin} inputs"); } // Check reversed outputs are amongst the workfolw outputs var outputsHash = new HashSet <string>(workflow.ModelDataOutputs.GetNames()); foreach (var data in this.RequestedOutputsToReverse.GetNames()) { if (!outputsHash.Contains(data)) { throw new ArgumentException($"The requested input {data} is not amongst the workflow outputs"); } } if (NoutRequest > NinRequest) { Type = ReversalType.Outputs; // Validate determined reversal List <Set> outputsDependencies = GetDependencies(); // Number of requested input to reverse in each requested output dependency set List <int> requestedInputsPerSet = CountElementsInSets(RequestedInputsToReverse, outputsDependencies); // Check that at least Nin outputs map to at lest one input IEnumerable <Data> unmmapedVariables = RequestedOutputsToReverse.Where((d, i) => requestedInputsPerSet[i] == 0); if (unmmapedVariables.Count() > NoutRequest - NinRequest) { string unmmapedString = unmmapedVariables.Aggregate(String.Empty, (t, l) => t += l.Id + ", ", t => t.TrimEnd(' ', ',')); throw new ArgumentException($"Only {requestedInputsPerSet.Count - unmmapedVariables.Count()} outputs map to an input variable" + $", however, {RequestedInputsToReverse.Length} outputs are needed.\n\r {unmmapedString} are the unmapped ones. Try fixing guidance"); } } else { Type = ReversalType.Inputs; // Validate determined reversal List <Set> outputsDependencies = GetDependencies(); // Number of requested output to reverse in each requested input dependency set List <int> requestedOutputsPerSet = CountElementsInSets(RequestedOutputsToReverse, outputsDependencies); // Check that at least Nin outputs map to at lest one input IEnumerable <Data> unmmapedVariables = RequestedInputsToReverse.Where((d, i) => requestedOutputsPerSet[i] == 0); if (unmmapedVariables.Count() > NinRequest - NoutRequest) { string unmmapedString = unmmapedVariables.Aggregate(String.Empty, (t, l) => t += l.Id + ", ", t => t.TrimEnd(' ', ',')); throw new ArgumentException($"Only {requestedOutputsPerSet.Count - unmmapedVariables.Count()} inputs map to an output variable" + $", however, {RequestedOutputsToReverse.Length} inputs are needed.\n\r {unmmapedString} are the unmapped ones. Try fixing guidance"); } } }
public ClientResponse Reversal(ReversalType reversal, string traceNumber = null) { return(ReversalAsync(reversal, traceNumber).GetAwaiter().GetResult()); }