email the assignee when a ticket is assigend
This commit is contained in:
parent
4bb35c6951
commit
d59027a277
|
|
@ -2134,6 +2134,31 @@ public class Controller : ControllerBase
|
|||
});
|
||||
}
|
||||
|
||||
var assigneeChanged = ticket.AssigneeId != existing.AssigneeId
|
||||
&& ticket.AssigneeId.HasValue;
|
||||
|
||||
if (assigneeChanged)
|
||||
{
|
||||
var assignee = Db.GetUserById(ticket.AssigneeId);
|
||||
|
||||
Db.Create(new TicketTimelineEvent
|
||||
{
|
||||
TicketId = ticket.Id,
|
||||
EventType = (Int32)TimelineEventType.Assigned,
|
||||
Description = $"Ticket assigned to {assignee?.Name ?? "unknown"}.",
|
||||
ActorType = (Int32)TimelineActorType.Human,
|
||||
ActorId = user.Id,
|
||||
CreatedAt = DateTime.UtcNow
|
||||
});
|
||||
|
||||
if (assignee is not null)
|
||||
_ = Task.Run(async () =>
|
||||
{
|
||||
try { await assignee.SendTicketAssignedEmail(ticket); }
|
||||
catch (Exception ex) { Console.WriteLine($"Failed to send ticket assignment email: {ex}"); }
|
||||
});
|
||||
}
|
||||
|
||||
return Db.Update(ticket) ? ticket : StatusCode(500, "Update failed.");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -297,5 +297,66 @@ public static class UserMethods
|
|||
|
||||
return user.SendEmail(subject, body);
|
||||
}
|
||||
|
||||
|
||||
public static Task SendTicketAssignedEmail(this User user, Ticket ticket)
|
||||
{
|
||||
var ticketLink = $"https://monitor.inesco.energy/tickets/{ticket.Id}";
|
||||
var priority = (TicketPriority)ticket.Priority;
|
||||
var category = (TicketCategory)ticket.Category;
|
||||
|
||||
var (subject, body) = (user.Language ?? "en") switch
|
||||
{
|
||||
"de" => (
|
||||
$"inesco Energy – Ticket #{ticket.Id} wurde Ihnen zugewiesen",
|
||||
$"Sehr geehrte/r {user.Name},\n\n" +
|
||||
$"Ein Ticket wurde Ihnen zugewiesen:\n\n" +
|
||||
$"Ticket: #{ticket.Id}\n" +
|
||||
$"Betreff: {ticket.Subject}\n" +
|
||||
$"Priorität: {priority}\n" +
|
||||
$"Kategorie: {category}\n\n" +
|
||||
$"Beschreibung:\n{ticket.Description}\n\n" +
|
||||
$"Öffnen Sie das Ticket hier: {ticketLink}\n\n" +
|
||||
"Mit freundlichen Grüssen\ninesco Energy Monitor"
|
||||
),
|
||||
"fr" => (
|
||||
$"inesco Energy – Le ticket #{ticket.Id} vous a été attribué",
|
||||
$"Cher/Chère {user.Name},\n\n" +
|
||||
$"Un ticket vous a été attribué :\n\n" +
|
||||
$"Ticket : #{ticket.Id}\n" +
|
||||
$"Objet : {ticket.Subject}\n" +
|
||||
$"Priorité : {priority}\n" +
|
||||
$"Catégorie : {category}\n\n" +
|
||||
$"Description :\n{ticket.Description}\n\n" +
|
||||
$"Ouvrir le ticket : {ticketLink}\n\n" +
|
||||
"Cordialement,\ninesco Energy Monitor"
|
||||
),
|
||||
"it" => (
|
||||
$"inesco Energy – Il ticket #{ticket.Id} le è stato assegnato",
|
||||
$"Gentile {user.Name},\n\n" +
|
||||
$"Le è stato assegnato un ticket:\n\n" +
|
||||
$"Ticket: #{ticket.Id}\n" +
|
||||
$"Oggetto: {ticket.Subject}\n" +
|
||||
$"Priorità: {priority}\n" +
|
||||
$"Categoria: {category}\n\n" +
|
||||
$"Descrizione:\n{ticket.Description}\n\n" +
|
||||
$"Aprire il ticket: {ticketLink}\n\n" +
|
||||
"Cordiali saluti,\ninesco Energy Monitor"
|
||||
),
|
||||
_ => (
|
||||
$"inesco Energy – Ticket #{ticket.Id} has been assigned to you",
|
||||
$"Dear {user.Name},\n\n" +
|
||||
$"A ticket has been assigned to you:\n\n" +
|
||||
$"Ticket: #{ticket.Id}\n" +
|
||||
$"Subject: {ticket.Subject}\n" +
|
||||
$"Priority: {priority}\n" +
|
||||
$"Category: {category}\n\n" +
|
||||
$"Description:\n{ticket.Description}\n\n" +
|
||||
$"Open the ticket: {ticketLink}\n\n" +
|
||||
"Best regards,\ninesco Energy Monitor"
|
||||
)
|
||||
};
|
||||
|
||||
return user.SendEmail(subject, body);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue