public async Task SendReceipt(Invoice invoice, PaymentEvent payment, SendInvoiceModel model) { await _emailService.SendReceipt(invoice, payment); invoice.Status = Invoice.StatusCodes.Sent; invoice.Sent = true; invoice.SentAt = DateTime.UtcNow; }
public async Task SendInvoice(Invoice invoice, SendInvoiceModel model) { // don't reset the key if it's already live if (!invoice.Sent) { SetInvoiceKey(invoice); } await _emailService.SendInvoice(invoice, model.ccEmails, model.bccEmails); invoice.Status = Invoice.StatusCodes.Sent; invoice.Sent = true; invoice.SentAt = DateTime.UtcNow; }
public async Task <IActionResult> Send(int id, [FromBody] SendInvoiceModel model) { var team = await GetAuthorizedTeam(); // find item var invoice = await _dbContext.Invoices .Include(i => i.Items) .Include(i => i.Team) .Include(i => i.Coupon) .Where(i => i.Team.Id == team.Id) .FirstOrDefaultAsync(i => i.Id == id); if (invoice == null) { return(NotFound(new { success = false, errorMessage = "Invoice Not Found", })); } if (model == null) { model = new SendInvoiceModel(); } await _invoiceService.SendInvoice(invoice, model); // record action var action = new History() { Type = HistoryActionTypes.InvoiceSent.TypeCode, ActionDateTime = DateTime.UtcNow, }; invoice.History.Add(action); await _dbContext.SaveChangesAsync(); return(new JsonResult(new EditInvoiceResult { Success = true, Id = invoice.Id, PaymentLink = Url.Action("Pay", "Payments", new { id = invoice.LinkId }), })); }
public async Task <IActionResult> Send(int id, [FromBody] SendInvoiceModel model) { // find item var invoice = await _dbContext.Invoices .Include(i => i.Items) .Include(i => i.Team) .Include(i => i.Coupon) .Where(i => i.Team.Slug == TeamSlug) .FirstOrDefaultAsync(i => i.Id == id); if (invoice == null) { return(NotFound(new { success = false, errorMessage = "Invoice Not Found", })); } if (model == null) { model = new SendInvoiceModel(); } await _invoiceService.SendInvoice(invoice, model); // record action var user = await _userManager.GetUserAsync(User); var action = new History() { Type = HistoryActionTypes.InvoiceSent.TypeCode, ActionDateTime = DateTime.UtcNow, Actor = user.Name, }; invoice.History.Add(action); await _dbContext.SaveChangesAsync(); return(new JsonResult(new { success = true, })); }