CapRaffle.Domain.Implementation.EmailSender.NotifyWinner C# (CSharp) Method

NotifyWinner() public method

public NotifyWinner ( Winner winner ) : bool
winner CapRaffle.Domain.Model.Winner
return bool
        public bool NotifyWinner(Winner winner)
        {
            var body = "<h1>Congratulations!</h1><br />";
            body += string.Format("You've won <strong>{0}</strong> {2} in the raffle for event: <strong>{1}</strong> <br />",
                winner.NumberOfSpotsWon, winner.Event.Name, winner.NumberOfSpotsWon == 1 ? "ticket" : "tickets");
            body += string.Format("Please look at the event details or contact <a href=\"{0}\">{0}</a> to get {1}.",
                winner.Event.Creator, winner.NumberOfSpotsWon == 1 ? "it" : "them");

            var mailMessage = new MailMessage {
                    From = new MailAddress(emailSettings.MailFromAddress),
                    Subject = string.Format("[CapRaffle] {0} winner!", winner.Event.Name),
                    Body = body,
                    IsBodyHtml = true
                };
            mailMessage.To.Add(new MailAddress(winner.UserEmail));

            var calendarData = GenerateCalendarEvent(winner.Event);

            using (var memoryStream = new MemoryStream(Encoding.Default.GetBytes(calendarData)))
            {
                mailMessage.Attachments.Add(new Attachment(memoryStream, "event.vcs"));
            }
            if (emailSettings.WriteAsFile)
            {
                mailMessage.BodyEncoding = Encoding.ASCII;
            }
            return SendEmail(mailMessage);
        }

Usage Example

        public bool NotifyParticipants(int eventId)
        {
            IEmailSender emailSender = new EmailSender();
            bool emailsDeliverd = true;

            var selectedEvent = context.Events.FirstOrDefault(x => x.EventId == eventId);
            if (selectedEvent != null)
            {
                bool emailSendt = emailSender.NotifyCreator(selectedEvent);
                if (!emailSendt) emailsDeliverd = false;
            }

            foreach(Winner w in WinnersForEvent(eventId))
            {
                bool emailSendt = emailSender.NotifyWinner(w);
                if (!emailSendt) emailsDeliverd = false;
            }
            foreach (var looser in EventParticipantsForEvent(eventId))
            {
                bool emailSendt = emailSender.NotifyLooser(looser);
                if (!emailSendt) emailsDeliverd = false;
            }
            return emailsDeliverd;
        }