// [ValidateAntiForgeryToken] public OutgoingJsonData NewPersonalMessage([FromBody] IncomingChatMessage request) { using (var context = new ChatContext(Context, Configuration)) { var values = context.NewChatPersonalMessage(request, UserId); var reciverData = Program.Members.FirstOrDefault(x => x.Name == values.Item2); MessageHub.SendNewNotification(HubContext, reciverData, values.Item1); } return(new OutgoingJsonData { Data = "Ok" }); }
internal Tuple <Notifications, string> NewChatPersonalMessage(IncomingChatMessage request, int userId) { var reciverName = Context.UserAccounts.FirstOrDefault(x => x.Id == request.ReciverId).Email; var senderName = Context.UserAccounts.FirstOrDefault(x => x.Id == userId).Email; var publicMessage = Context.PublicMessages.Add(new PublicMessages { IsNew = 1, SenderId = userId, DateOfMessage = DateTime.Now, MessageContent = request.Message, SenderName = senderName }); Context.SaveChanges(); Context.AssociatedChatPersonalMessages.Add(new AssociatedChatPersonalMessages { ProjectId = request.ProjectId, ReciverId = request.ReciverId, SenderId = userId, PublicMessageId = publicMessage.Entity.Id }); Context.SaveChanges(); var notification = Context.Notifications.Add(new Notifications { DateOfMessage = DateTime.Now, Content = $"{senderName} has sent you a personal message", NotificationType = 1 }); Context.SaveChanges(); Context.AssociatedUserNotifications.Add(new AssociatedUserNotifications { UserId = request.ReciverId, NewNotification = 1, IsRead = 0, NotificationId = notification.Entity.Id }); Context.SaveChanges(); return(new Tuple <Notifications, string>(notification.Entity, reciverName)); }
internal void OnIncomingChatMessage(string line) { IncomingChatMessage?.Invoke(line); }
private void OnIncomingChatMessage(string line) { IncomingChatMessage?.Invoke(line); }
internal string AddChatRoomMessage(IncomingChatMessage messageData, int sender) { var chatRoom = Context.ChatChannels.FirstOrDefault(x => x.Id == messageData.ActiveRoom); if (chatRoom == null && messageData.IsPersonal == 0) { return(string.Empty); } if (messageData.IsPersonal == 0) { var projectUsers = Context.AssociatedProjectMembers.Where(x => x.ProjectId == messageData.ProjectId).ToList(); projectUsers.ForEach(x => { if (Context.AssociatedUserChatNotifications.FirstOrDefault(y => y.ChatChannelId == messageData.ActiveRoom && y.ProjectId == x.ProjectId && y.UserId == x.UserAccountId) == null) { Context.AssociatedUserChatNotifications.Add(new AssociatedUserChatNotifications { ChatChannelId = chatRoom.Id, ProjectId = messageData.ProjectId, UserId = x.UserAccountId }); Context.SaveChanges(); } }); } else { var senderName = Context.UserAccounts.FirstOrDefault(x => x.Id == sender).Email; var notification = Context.Notifications.Add(new Notifications { Content = $"{senderName} has sent you a new message.", NotificationType = 1, DateOfMessage = DateTime.Now, }); Context.SaveChanges(); Context.AssociatedUserNotifications.Add(new AssociatedUserNotifications { NewNotification = 1, IsRead = 0, UserId = messageData.ReciverId, NotificationId = notification.Entity.Id }); Context.SaveChanges(); } var email = Context.UserAccounts.FirstOrDefault(x => x.Id == sender).Email; var message = Context.PublicMessages.Add(new PublicMessages { IsNew = 1, SenderId = sender, MessageContent = messageData.Message, DateOfMessage = DateTime.Now, SenderName = email }); Context.SaveChanges(); if (messageData.IsPersonal == 0) { Context.AssociatedChatChannelMessages.Add(new AssociatedChatChannelMessages { ChatChannelId = messageData.ActiveRoom, PublicMessageId = message.Entity.Id, }); } else { Context.AssociatedChatPersonalMessages.Add(new AssociatedChatPersonalMessages { ProjectId = messageData.ProjectId, PublicMessageId = message.Entity.Id, SenderId = sender, ReciverId = messageData.ReciverId, }); } Context.SaveChanges(); return(email); }