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}"; } }
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); }