public async Task <IActionResult> Get(long sinumber, [FromQuery] string insz) { var certificates = await _thabcertificateService.SearchAsync(new ThabCertificateSearch { SiNumber = sinumber, Insz = insz }); List <ThabPayment> payments = new List <ThabPayment>(); foreach (var cert in certificates) { var request = new GetPaymentsRequest() { SiNumber = sinumber, ReferenceDate = cert.ReferenceDate }; var response = await _service.GetPaymentsAsync(request); if (response.BusinessMessages != null && response.BusinessMessages.Length > 0) { return(BadRequest(response.BusinessMessages)); } var mappedModels = _mapper.Map <IEnumerable <ThabPayment> >(response?.Value?.Payments, opt => opt.Items["Id"] = cert.CertificateId); payments.AddRange(mappedModels); } return(Ok(payments)); }
private async Task <decimal> GetCurrentPaymentAmount(long siNumber, DateTime reference) { var request = new GetPaymentsRequest() { SiNumber = siNumber, ReferenceDate = reference }; var response = await _thabService.GetPaymentsAsync(request); if (response.Value != null && response.Value.Payments != null && response.Value.Payments.Count() > 0) { return(response.Value.Payments.OrderByDescending(p => p.PeriodEnd).FirstOrDefault().Amount); } else if (response.BusinessMessages != null && response.BusinessMessages.Any()) { var errors = response.BusinessMessages.Where(bm => bm.Type == MessageType.Error); if (errors.Any()) { throw new Exception(string.Join("; ", errors.Select(e => e.MessageString))); } } return(0); }