From 29fbe749686756db94a45b1eba39addee9111ac3 Mon Sep 17 00:00:00 2001 From: kTrzcinskii Date: Sun, 15 Jun 2025 17:03:35 +0200 Subject: [PATCH] Remove pdf attachments from email about new tickets --- .../Common/Mail/Abstractions/IMailService.cs | 2 +- .../Common/Mail/Services/MailService.cs | 25 ++++++------------- .../Controllers/ShoppingCartsController.cs | 6 +---- .../Tickets/Models/TicketWithScanUrl.cs | 13 ---------- 4 files changed, 9 insertions(+), 37 deletions(-) delete mode 100644 TickAPI/TickAPI/Tickets/Models/TicketWithScanUrl.cs diff --git a/TickAPI/TickAPI/Common/Mail/Abstractions/IMailService.cs b/TickAPI/TickAPI/Common/Mail/Abstractions/IMailService.cs index ad0cfe1..025d256 100644 --- a/TickAPI/TickAPI/Common/Mail/Abstractions/IMailService.cs +++ b/TickAPI/TickAPI/Common/Mail/Abstractions/IMailService.cs @@ -7,6 +7,6 @@ namespace TickAPI.Common.Mail.Abstractions; public interface IMailService { - public Task SendTicketsAsync(Customer customer, List tickets); + public Task SendTicketsAsync(Customer customer, List tickets); public Task SendMailAsync(IEnumerable recipients, string subject, string content, List? attachments); } \ No newline at end of file diff --git a/TickAPI/TickAPI/Common/Mail/Services/MailService.cs b/TickAPI/TickAPI/Common/Mail/Services/MailService.cs index 21923b4..86f611f 100644 --- a/TickAPI/TickAPI/Common/Mail/Services/MailService.cs +++ b/TickAPI/TickAPI/Common/Mail/Services/MailService.cs @@ -3,7 +3,6 @@ using SendGrid.Helpers.Mail; using TickAPI.Common.Mail.Abstractions; using TickAPI.Common.Mail.Models; -using TickAPI.Common.QR.Abstractions; using TickAPI.Common.Results; using TickAPI.Customers.Models; using TickAPI.Tickets.Models; @@ -14,11 +13,9 @@ public class MailService : IMailService { private readonly SendGridClient _client; private readonly EmailAddress _fromEmailAddress; - private readonly IQRCodeService _qrCodeService; - public MailService(IConfiguration configuration, IQRCodeService qrCodeService) + public MailService(IConfiguration configuration) { - _qrCodeService = qrCodeService; var apiKey = configuration["SendGrid:ApiKey"]; _client = new SendGridClient(apiKey); var fromEmail = configuration["SendGrid:FromEmail"]; @@ -26,34 +23,26 @@ public MailService(IConfiguration configuration, IQRCodeService qrCodeService) _fromEmailAddress = new EmailAddress(fromEmail, fromName); } - public async Task SendTicketsAsync(Customer customer, List tickets) + public async Task SendTicketsAsync(Customer customer, List tickets) { var subject = "Your New Tickets"; var htmlContent = new StringBuilder(); - htmlContent.AppendLine("Here are your tickets:
    "); - - var attachments = new List(); - - foreach (var tWithScanUrl in tickets) + htmlContent.AppendLine("You have purchased tickets for following events:
      "); + + foreach (var ticket in tickets) { - var ticket = tWithScanUrl.Ticket; var eventName = ticket.Type.Event.Name; var eventDate = ticket.Type.Event.StartDate.ToString("yyyy-MM-dd"); htmlContent.AppendLine( - $"
    • Ticket for event {eventName} on {eventDate} " + $"
    • {eventName} on {eventDate} (ticket: {ticket.Type.Description})
    • " ); - - var pdfData = _qrCodeService.GenerateQrCode(tWithScanUrl.ScanUrl); - - var base64Content = Convert.ToBase64String(pdfData); - attachments.Add(new MailAttachment($"ticket_{ticket.Id}.pdf", base64Content, "application/pdf")); } htmlContent.AppendLine("
    "); var recipient = new MailRecipient(customer.Email, customer.FirstName); - return await SendMailAsync([recipient], subject, htmlContent.ToString(), attachments); + return await SendMailAsync([recipient], subject, htmlContent.ToString(), []); } public async Task SendMailAsync(IEnumerable recipients, string subject, string content, diff --git a/TickAPI/TickAPI/ShoppingCarts/Controllers/ShoppingCartsController.cs b/TickAPI/TickAPI/ShoppingCarts/Controllers/ShoppingCartsController.cs index 94d0f9b..a626731 100644 --- a/TickAPI/TickAPI/ShoppingCarts/Controllers/ShoppingCartsController.cs +++ b/TickAPI/TickAPI/ShoppingCarts/Controllers/ShoppingCartsController.cs @@ -158,11 +158,7 @@ public async Task> Checkout([FromBody] CheckoutD var customer = customerResult.Value!; - await _mailService.SendTicketsAsync(customer, checkout.BoughtTickets.Select(t => - { - var scanUrl = Url.Action("ScanTicket", "Tickets", new { id = t.Id }, Request.Scheme)!; - return new TicketWithScanUrl(t, scanUrl); - }).ToList()); + await _mailService.SendTicketsAsync(customer, checkout.BoughtTickets); return checkout.PaymentResponse; } diff --git a/TickAPI/TickAPI/Tickets/Models/TicketWithScanUrl.cs b/TickAPI/TickAPI/Tickets/Models/TicketWithScanUrl.cs deleted file mode 100644 index 97ca0ab..0000000 --- a/TickAPI/TickAPI/Tickets/Models/TicketWithScanUrl.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace TickAPI.Tickets.Models; - -public class TicketWithScanUrl -{ - public TicketWithScanUrl(Ticket ticket, string scanUrl) - { - Ticket = ticket; - ScanUrl = scanUrl; - } - - public Ticket Ticket { get; set; } - public string ScanUrl { get; set; } -}