using IdokladSdk.Models.Email; using Idoklad.Client; namespace Idoklad.Services; /// /// Sends document e-mails (invoice, proforma, credit note, received invoice, reminders) through /// the iDoklad MailClient. The settings carry the document id, recipients and options. /// public sealed class MailService { private readonly IdokladApiAccessor _accessor; public MailService(IdokladApiAccessor accessor) => _accessor = accessor; public async Task SendIssuedInvoiceAsync(IssuedInvoiceEmailSettings settings, CancellationToken ct) => (await _accessor.Api.MailClient.IssuedInvoiceEmail.SendAsync(settings, ct)).Unwrap(); public async Task SendProformaInvoiceAsync(ProformaInvoiceEmailSettings settings, CancellationToken ct) => (await _accessor.Api.MailClient.ProformaInvoiceEmail.SendAsync(settings, ct)).Unwrap(); public async Task SendCreditNoteAsync(CreditNoteEmailSettings settings, CancellationToken ct) => (await _accessor.Api.MailClient.CreditNoteEmail.SendAsync(settings, ct)).Unwrap(); public async Task SendReceivedInvoiceAsync(ReceivedInvoiceEmailSettings settings, CancellationToken ct) => (await _accessor.Api.MailClient.ReceivedInvoiceEmail.SendAsync(settings, ct)).Unwrap(); public async Task SendRemindersAsync(RemindersEmailSettings settings, CancellationToken ct) => (await _accessor.Api.MailClient.RemindersEmail.SendAsync(settings, ct)).Unwrap(); }