Esempio n. 1
0
        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";
        }
Esempio n. 2
0
        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);
                    }
                }
            }
        }