Example #1
0
        public List <Status> Post(IFormFile file)
        {
            var fileStream = file.OpenReadStream();
            var customers  = csvReader.Parse <Customer>(fileStream);

            if (customers == null || customers.Count == 0)
            {
                throw new NullReferenceException(CustomerShouldNotBeNull);
            }

            customers.ForEach(GenerateInvitationLetter);

            var status = customers.Select(customer => customer.Status).ToList();

            return(status);

            void GenerateInvitationLetter(Customer customer)
            {
                logger.LogInformation($"{InvitationLetterUpdateMessage} {customer.Title} {customer.FirstName}");
                customerBuilder
                .Set(customer)
                .CalculateCreditCharge()
                .CalculateTotalPremium()
                .CalculateAverageMonthlyPremium()
                .CalculateInitialMonthlyPaymentAmount()
                .CalculateOtherMonthlyPaymentsAmount();

                var letterFileName       = $"{customer.ID}{customer.FirstName}.txt";
                var invitationLetterPath = Path.Combine(Environment.CurrentDirectory, RenewalInvitationLettersFolderName, letterFileName);

                customer.Status            = this.textWriter.Generate <Customer>(RenewalInvitationLetterTemplateFilePath, invitationLetterPath, customer);
                customer.Status.Descriptor = $"{customer.Title} {customer.FirstName}";
            }
        }
Example #2
0
        public bool Get()
        {
            var customerFileLocation = Path.Combine(Environment.CurrentDirectory, CustomerDataFileName);
            var customers            = csvReader.Parse <Customer>(customerFileLocation);

            if (customers == null || customers.Count == 0)
            {
                throw new NullReferenceException($"Customer should not be null.");
            }

            customers.ForEach(invitationService.GenerateInvitationLetter);

            return(true);
        }