private async Task <FECAEResponse.FECAEDetResponse> GetComprobanteTest(ElectronicInvoiceTest.FECAESolicitarResponse input, ElectronicInvoiceTest.FEAuthRequest _auth, ElectronicInvoiceTest.ServiceSoapClient soapClient, FECAERequestInfo requestInfo, ElectronicInvoiceTest.FECAEDetResponse x, FECAEResponse.FECAECabResponse feCaeCabResponse) { var result = _mapper.Map <ElectronicInvoiceTest.FECAEDetResponse, FECAEResponse.FECAEDetResponse>(x); if (feCaeCabResponse.Resultado == "A") { if (input.Body.FECAESolicitarResult.FeDetResp.Count() == 1) { result.ImpTotal = Convert.ToDouble(requestInfo.Invoices.Sum()); } else { var consultar = new ElectronicInvoiceTest.FECompConsultaReq { CbteNro = x.CbteDesde, CbteTipo = feCaeCabResponse.CbteTipo, PtoVta = feCaeCabResponse.PtoVta }; try { var comprobate = await soapClient.FECompConsultarAsync(_auth, consultar); result.ImpTotal = comprobate.Body.FECompConsultarResult.ResultGet.ImpTotal; } catch { } } } return(result); }
private async Task <FECAEResponse> ParseFeCaeResponseAsync(ElectronicInvoiceTest.FECAESolicitarResponse input, ElectronicInvoiceTest.FEAuthRequest _auth, ElectronicInvoiceTest.ServiceSoapClient soapClient, FECAERequestInfo requestInfo) { var errs = input.Body.FECAESolicitarResult.Errors?.Select(x => _mapper.Map <ElectronicInvoiceTest.Err, FECAEResponse.CodeMessage>(x)); var events = input.Body.FECAESolicitarResult.Events?.Select(x => _mapper.Map <ElectronicInvoiceTest.Evt, FECAEResponse.CodeMessage>(x)); var feCaeCabResponse = _mapper.Map <ElectronicInvoiceTest.FECAECabResponse, FECAEResponse.FECAECabResponse>(input.Body.FECAESolicitarResult.FeCabResp); var feDetResp = await Task.WhenAll(input.Body.FECAESolicitarResult.FeDetResp?.Select(x => GetComprobanteTest(input, _auth, soapClient, requestInfo, x, feCaeCabResponse))); return(new FECAEResponse(errs, events, feCaeCabResponse, feDetResp)); }