private async Task <decimal> CalcMaxAmount(long siNumber, ReturnMessageOfGetCertificatesResponse7nXz08R8 response) { if (response.Value != null && response.Value.Certificates != null) { var futureCertifcates = response.Value.Certificates.Where(c => !c.Until.HasValue || c.Until > DateTime.Today); decimal sum = 0; foreach (var fc in futureCertifcates) { sum += _helperService.PaymentsBetweenDates(fc.Until) * await GetCurrentPaymentAmount(siNumber, fc.From); } } 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); }
private async Task <decimal> CalcMaxAmount(long siNumber, ReturnMessageOfGetWarrantiesResponsecEfhslJU response) { if (response.Value != null && response.Value.Warranties != null && response.Value.Warranties.Count() > 0) { var lastWarranty = response.Value.Warranties.OrderByDescending(w => w.DateFrom).FirstOrDefault(); if (lastWarranty == null) { return(0); } var enddate = lastWarranty.DateUntil; return(_helperService.PaymentsBetweenDates(enddate) * await GetCurrentPaymentAmount(siNumber, lastWarranty.RequestDate)); } 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); }