public bool Process(RequestMailingCommand command, bool sendEmailNotice=true) { bool mailingListSuccess = false; bool mailSuccess =false; // TODO: create RequestMailingEvent, then RequestMailingEvent handler // TODO: Add Versant Database code here... try { var mailingListEntry = new MailingListEntry(Guid.NewGuid()); mailingListSuccess = AddUserToMailingList(command); var e = new AddedToMailingList { StreamId = mailingListEntry.Id, FirstName = command.FirstName, LastName = command.LastName, Email = command.Email }; MueVueEvents.Add(e); mailingListEntry.OnReceiving(e); } catch (Exception ex) { logger.Error("Failed to add new user to MailChimp", ex); } if (sendEmailNotice) { try { logger.Debug("Calling SmtpMail.send()"); //SmtpMail.Send("*****@*****.**", "MailingList Request", command.ToString(), command.Email); mailSuccess = true; } catch (Exception ex) { logger.ErrorException("SmtpEmail.Send() failed: ", ex); logger.Error("Failed to send email", ex); } } var success = mailingListSuccess || mailSuccess; logger.Info("MailingList - eventstore: {0}, mailing: {1}", mailingListSuccess, mailSuccess); logger.Info("Request: {0}", command.ToString()); return success; }
internal void Add(MailingListEntry mailingListEntry) { AddObject(Relation.VerbType.Includes, mailingListEntry); }