public static void OnDinnerModifiedTimeEvent(NerdDinnerDomainEvents.DinnerModifiedTimeEvent ev) { //Time is modified on this event...We need to generate the emails to send to all users //Those email are then sent to the external bus so the real email sender process can send using (EventStoreNhib.UnitOfWork uow = new EventStoreNhib.UnitOfWork(DB.GetFactory().OpenSession(), false)) { EventStoreInfrastructure.IRepository<NerdDinnerDomain.Dinner> repDinners = uow.CreateRepository<NerdDinnerDomain.Dinner>(); NerdDinnerDomain.Dinner oDinner = repDinners.GetById(ev.EntityId); string fromemail = "*****@*****.**"; string fromname = "system info"; //Send to organizer EventStoreInfrastructure.IRepository<NerdDinnerDomain.User> repUsers = uow.CreateRepository<NerdDinnerDomain.User>(); NerdDinnerDomain.User oUser = repUsers.GetById( oDinner.Organizer_User_id ); string toemail = oUser.Forname + "." + oUser.Surname + "@" + oUser.Surname.ToString() + ".com"; string toname = oUser.Forname + " " + oUser.Surname; string message = "You have modified the time for dinner at " + oDinner.Location + " " + oDinner.Date.ToString(); MessageEndpoint.Bus.Send(new NerdCommandMessages.External.SendMail { MessageGuid = Guid.NewGuid(), FromEmail = fromemail, FromName = fromname, ToEmail = toemail, ToName = toname, Header = "Your dinner has changed", Message = message }); foreach (Guid userid in oDinner.Participants) { oUser = repUsers.GetById(userid); toemail = oUser.Forname + "." + oUser.Surname + "@" + oUser.Surname.ToString() + ".com"; toname = oUser.Forname + " " + oUser.Surname; message = "New dinner time at " + oDinner.Location + " " + oDinner.Date.ToString(); MessageEndpoint.Bus.Send(new NerdCommandMessages.External.SendMail { MessageGuid = Guid.NewGuid(), FromEmail = fromemail, FromName = fromname, ToEmail = toemail, ToName = toname, Header = "Dinner time has changed", Message = message }); } } }
public static void OnDinnerAddedParticipantEvent(NerdDinnerDomainEvents.DinnerAddedParticipantEvent ev) { //Send email to that user - and to organizer using (EventStoreNhib.UnitOfWork uow = new EventStoreNhib.UnitOfWork(DB.GetFactory().OpenSession(), false)) { EventStoreInfrastructure.IRepository<NerdDinnerDomain.Dinner> repDinners = uow.CreateRepository<NerdDinnerDomain.Dinner>(); NerdDinnerDomain.Dinner oDinner = repDinners.GetById(ev.EntityId); string fromemail = "*****@*****.**"; string fromname = "system info"; //Send to organizer EventStoreInfrastructure.IRepository<NerdDinnerDomain.User> repUsers = uow.CreateRepository<NerdDinnerDomain.User>(); NerdDinnerDomain.User oUserOrg = repUsers.GetById(oDinner.Organizer_User_id); NerdDinnerDomain.User oUser = repUsers.GetById(ev.User_id); string toemail = oUserOrg.Forname + "." + oUserOrg.Surname + "@" + oUserOrg.Surname.ToString() + ".com"; string toname = oUserOrg.Forname + " " + oUserOrg.Surname; string message = oUser.Forname + " " + oUser.Surname + " is coming to your dinner at " + oDinner.Location + " " + oDinner.Date.ToString(); MessageEndpoint.Bus.Send(new NerdCommandMessages.External.SendMail { MessageGuid = Guid.NewGuid(), FromEmail = fromemail, FromName = fromname, ToEmail = toemail, ToName = toname, Header = "Someone is coming to your dinner", Message = message }); toemail = oUser.Forname + "." + oUser.Surname + "@" + oUser.Surname.ToString() + ".com"; toname = oUser.Forname + " " + oUser.Surname; message = "You have registered for dinner at " + oDinner.Location + " " + oDinner.Date.ToString(); MessageEndpoint.Bus.Send(new NerdCommandMessages.External.SendMail { MessageGuid = Guid.NewGuid(), FromEmail = fromemail, FromName = fromname, ToEmail = toemail, ToName = toname, Header = "Dinner registration", Message = message }); } }