Ejemplo n.º 1
0
//        [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"
            });
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 internal void OnIncomingChatMessage(string line)
 {
     IncomingChatMessage?.Invoke(line);
 }
 private void OnIncomingChatMessage(string line)
 {
     IncomingChatMessage?.Invoke(line);
 }
Ejemplo n.º 5
0
        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);
        }