private void FundsDispersedToPersonEmail(FundsDispersedToPersonEvent evt) { _logger.LogInformation(GetLogMessage("Person Id: {person}; InvoiceId: {invoice}; Amount: {amount}"), evt.PersonId, evt.InvoiceId, evt.Amount); using (var context = new AppDbContext(DbContextOptions)) { var person = context.UsersAccounts.Where(a => a.Id == evt.PersonId) .Include(a => a.Person).First(); var invoice = context.Invoices .Where(a => a.InvoiceId == evt.InvoiceId) .Include(a => a.ProviderOrganization) .Include(a => a.Invoice).Include(a => a.Project) .Include(a => a.OrganizationProjectManager).ThenInclude(a => a.Organization) .First(); var personTransferEmail = new PersonTransferEmail { RecipientEmail = person.Email, RecipientName = person.Person.FirstName, SendMail = person.SendMail, Amount = evt.Amount, Number = invoice.Invoice.Number, FlowUrl = Settings.Urls.Flow, ProjectName = invoice.Project.Name, ProviderOrganizationName = invoice.ProviderOrganization.Name, ProjectManagerOrganizationName = invoice.OrganizationProjectManager.Organization.Name }; Send(TemplateTypes.AgencyOwnerInvoiceDispersedIndividual, personTransferEmail, $@"[{personTransferEmail.ProviderOrganizationName}] - Payout Notification"); } }
public void Handle(FundsDispersedToPersonEvent evt) { _logger.LogInformation(GetLogMessage("Person Id: {person}; Amount: {amount}"), evt.PersonId, evt.Amount); Parallel.Invoke(() => { FundsDispersedToPersonEmail(evt); }); //using (var context = new AppDbContext(DbContextOptions)) //{ //var contract = context.Invoices // .Include(x=>x.Invoice) // .ThenInclude(x=>x.Items) // .ThenInclude(x=>x.IndividualPayoutIntents) // .Where(x => x.InvoiceId == evt.InvoiceId) // .ProjectTo<ContractorContractEmail>(ProjectionMapping) // .First(); //contract.Initialize(Settings); //Send(TemplateTypes.ContractorContractApproved, contract, // $@"[{contract.ProjectManagerOrganizationName} : Contracting] A new contract has been approved"); //AddContractNotification(context, "Contract was approved", contract); //var invoice = context.InvoiceTransfers // .Include(x => x.Invoice) // .ThenInclude(x => x.Items) // .ThenInclude(x => x.IndividualPayoutIntents) // .Where(x => x.InvoiceId == evt.InvoiceId) // .ProjectTo<ContractorContractEmail>(ProjectionMapping) // .First(); //invoice.Initialize(); //} }