public Guid SendMessage(string toId, string subject, string text) { Require.NotNullOrEmpty(toId, nameof(toId)); Require.NotNullOrEmpty(subject, nameof(subject)); Require.NotNullOrEmpty(text, nameof(text)); var toUser = this.UnitOfWork.Users.FindById(toId); if (toUser == null) { throw new Exceptions.ApplicationException("Cannot find user", ErrorCode.UserDoesNotExist); } var messageFrom = new Domain.Messages.Message(this.CurrentUser, this.CurrentUser, toUser, subject, text, Domain.Messages.MessageFolder.Sent); messageFrom.IsRead = true; var messageTo = new Domain.Messages.Message(toUser, this.CurrentUser, toUser, subject, text, Domain.Messages.MessageFolder.Inbox); this.UnitOfWork.Messages.Add(messageFrom); this.UnitOfWork.Messages.Add(messageTo); // Notify recipient this.userNotificationService.SendNotification(toUser.Id, new DTO.Notifications.NewMessageNotification { FromUserName = this.CurrentUser.UserName, Subject = subject }); this.UnitOfWork.Commit(); return(messageTo.Id); }
public Guid SendMessage(string toId, string subject, string text) { Require.NotNullOrEmpty(toId, nameof(toId)); Require.NotNullOrEmpty(subject, nameof(subject)); Require.NotNullOrEmpty(text, nameof(text)); var toUser = this.UnitOfWork.Users.FindById(toId); if (toUser == null) { throw new Exceptions.ApplicationException("Cannot find user", ErrorCode.UserDoesNotExist); } var messageFrom = new Domain.Messages.Message(this.CurrentUser, this.CurrentUser, toUser, subject, text, Domain.Messages.MessageFolder.Sent); messageFrom.IsRead = true; var messageTo = new Domain.Messages.Message(toUser, this.CurrentUser, toUser, subject, text, Domain.Messages.MessageFolder.Inbox); this.UnitOfWork.Messages.Add(messageFrom); this.UnitOfWork.Messages.Add(messageTo); // Notify recipient this.userNotificationService.SendNotification(toUser.Id, new DTO.Notifications.NewMessageNotification { FromUserName = this.CurrentUser.UserName, Subject = subject }); this.UnitOfWork.Commit(); return messageTo.Id; }