public void deleteMsg(Guid id) { using (EasyFindPropertiesEntities dbCtx = new EasyFindPropertiesEntities()) { UnitOfWork unitOfWork = new UnitOfWork(dbCtx); if ((Guid)Session["userId"] != null) { var userId = (Guid)Session["userId"]; var userTo = unitOfWork.User.Get(userId); var message = unitOfWork.Message.Get(id); if (message != null) { MessageTrash messageTrash = new MessageTrash() { UserID = userId, MessageID = id, DateTCreated = DateTime.Now }; unitOfWork.MessageTrash.Add(messageTrash); unitOfWork.save(); //broadcast the new messages to the recipient DashboardHub.BroadcastUserMessages(userTo.Email); } } } }
/// <summary> /// deletes all messages from a message thread by retrieving all messages /// sent to another user and and received from this same user then /// adding this list into the message trash. The messages list is refreshed after /// </summary> /// <param name="unitOfWork"></param> /// <param name="userId"></param> /// <param name="messageId"></param> public static void deleteMsgsFromMsgThread(UnitOfWork unitOfWork, Guid userId, Guid messageId) { IEnumerable <Message> messagesToBeDeleted = null; messagesToBeDeleted = unitOfWork.Message.GetMsgThreadByMsgID(messageId, userId); if (messagesToBeDeleted != null) { foreach (var msg in messagesToBeDeleted) { MessageTrash messageTrash = new MessageTrash() { UserID = userId, MessageID = msg.ID, DateTCreated = DateTime.Now }; unitOfWork.MessageTrash.Add(messageTrash); } unitOfWork.save(); //broadcast the new messages to the user var userTo = unitOfWork.User.Get(userId).Email; DashboardHub.BroadcastUserMessages(userTo); } }