Exemple #1
0
        public bool InsertAsync(int userId, string connectionId)
        {
            if (context.SignalRConnections.Any(x => x.UserId == userId && x.ConnectionId == connectionId))
            {
                return(true);
            }

            context.SignalRConnections.Add(new Data.Entities.UserConnectionEntity()
            {
                ConnectionId = connectionId,
                UserId       = userId
            });
            var rowsCount = context.SaveChanges();

            return(rowsCount > 0);
        }
Exemple #2
0
        public MessageEntity CreateAsync(int conversationId, int senderId, string message)
        {
            var msg = new MessageEntity
            {
                ConversationId = conversationId,
                CreatedAt      = DateTime.Now,
                SenderId       = senderId,
                Text           = message
            };

            context.Messages.Add(msg);
            context.SaveChanges();

            return(context.Messages
                   .Include(x => x.Sender)
                   .FirstOrDefault(x => x.Id == msg.Id));
        }
        public ConversationEntity CreateAsync(int senderId, int receiverId, string text)
        {
            var sender = context.Users.FirstOrDefault(x => x.Id == senderId);

            if (sender == null)
            {
                throw new InvalidOperationException("Invalid sender id");
            }

            var receiver = context.Users.FirstOrDefault(x => x.Id == receiverId);

            if (sender == null)
            {
                throw new InvalidOperationException("Invalid receiver id");
            }

            var conversation = new ConversationEntity
            {
                CreatedById       = senderId,
                Title             = receiver.NormalizedUserName,
                CreatedAt         = DateTime.Now,
                ConversationUsers = new List <ConversationUserEntity> {
                    new ConversationUserEntity
                    {
                        UserId = senderId
                    },
                    new ConversationUserEntity
                    {
                        UserId = receiverId
                    },
                },
                Messages = new List <MessageEntity> {
                    new MessageEntity {
                        SenderId = senderId,
                        Text     = text
                    }
                }
            };

            context.Conversations.Add(conversation);
            context.SaveChanges();

            return(conversation);
        }