Beispiel #1
0
        public async Task <decimal> GetMaxAmountReturnableAsync(long siNumber, string insz)
        {
            ReturnMessageOfGetCertificatesResponse7nXz08R8 response = await _bobService.GetCertificatesAsync(new GetCertificatesRequest()
            {
                SiNumber = siNumber
            });

            return(await CalcMaxAmount(siNumber, response));
        }
Beispiel #2
0
        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);
        }