private async void GenerateDocumentsAndSendEmailsWithTickets() { Dictionary <string, Event> eventsToSend = new Dictionary <string, Event>(); foreach (Participant p in checkedParticipants) { Event eventToAdd = events.Find(ev => ev.id.ToString().Equals(p.eventId)); if (!eventsToSend.ContainsKey(eventToAdd.eventName)) { eventsToSend.Add(eventToAdd.eventName, eventToAdd); } } List <Event> eventsToSendList = new List <Event>(); foreach (KeyValuePair <string, Event> ev in eventsToSend) { eventsToSendList.Add(ev.Value); } List <string> ticketsPaths = await ticketCreation.generateTicketsAndSave( checkedParticipants, eventsToSendList, companyData); sendingStatus = "SendingEmails"; List <string> toEmails = new List <string>(); List <string> emailBodies = new List <string>(); List <string> emailSubjects = new List <string>(); List <string> ticketsNames = new List <string>(); foreach (Participant p in checkedParticipants) { toEmails.Add(p.email); Event eventEntity = events.Find(ev => ev.id.ToString().Equals(p.eventId)); string body = ""; string subject = ""; if (eventEntity.useTemplate) { EmailTemplate temp = emailTemplates.Find(et => et.templateName.Equals(eventEntity.current_Mail_Template)); body = temp.body; subject = temp.subject; } else { body = eventEntity.emailBody; subject = eventEntity.emailSubject; } emailBodies.Add(emailStringHelper.formatEmailString(body, p, eventEntity)); emailSubjects.Add(emailStringHelper.formatEmailString(subject, p, eventEntity)); ticketsNames.Add(eventEntity.eventName + " ticket"); } sendEmail.SendEmailsWithTickets(toEmails, emailSubjects, emailBodies, ticketsPaths, ticketsNames); sendingStatus = "EmailsSent"; }
private async void GenerateDocumentsAndSendEmails() { List <Participant> participants = new List <Participant>(); participants.Add(participant); List <Event> events = new List <Event>(); events.Add(participantEvent); List <string> ticketsPaths = await ticketCreation.generateTicketsAndSave( participants, events, companyData); sendingStatus = "SendingEmails"; List <string> toEmails = new List <string>(); List <string> emailBodies = new List <string>(); List <string> emailSubjects = new List <string>(); List <string> ticketsNames = new List <string>(); foreach (Participant p in participants) { toEmails.Add(p.email); Event eventEntity = events.Find(ev => ev.id.ToString().Equals(p.eventId)); string body = ""; string subject = ""; if (eventEntity.useTemplate) { EmailTemplate temp = emailTemplates.Find(et => et.templateName.Equals(eventEntity.current_Mail_Template)); body = temp.body; subject = temp.subject; } else { body = eventEntity.emailBody; subject = eventEntity.emailSubject; } emailBodies.Add(emailStringHelper.formatEmailString(body, p, eventEntity)); emailSubjects.Add(emailStringHelper.formatEmailString(subject, p, eventEntity)); ticketsNames.Add(eventEntity.eventName + " ticket"); } sendEmail.SendEmailsWithTickets(toEmails, emailSubjects, emailBodies, ticketsPaths, ticketsNames); sendingStatus = "EmailsSent"; foreach (Participant p in participants) { p.ticketSent = true; Participant participant = await participantServices.editParticipant(p); if (participant != null) { int allParticipantsIndex = mainWindow.allParticipants.FindIndex(par => par.participantId.Equals(p.participantId)); int selectedEventParticipantsIndex = 0; int filteredEventParticipantsIndex = 0; if (mainWindow.selectedEventParticipants.Count > 0) { selectedEventParticipantsIndex = mainWindow.selectedEventParticipants.FindIndex(par => par.participantId.Equals(p.participantId)); filteredEventParticipantsIndex = mainWindow.filteredParticipants.FindIndex(par => par.participantId.Equals(p.participantId)); } mainWindow.allParticipants[allParticipantsIndex] = p; if (mainWindow.selectedEventParticipants.Count > 0) { mainWindow.selectedEventParticipants[selectedEventParticipantsIndex] = p; mainWindow.filteredParticipants[filteredEventParticipantsIndex] = p; mainWindow.editParticipantTableRow(participant, filteredEventParticipantsIndex); } } } }