Example #1
0
        public List <PrivateChatMessage> GetScrollingChatData(string fromid, string toid, int start = 10, int length = 1)
        {
            takeCounter = (length * start);       // 20
            skipCounter = ((length - 1) * start); // 10

            using (Service.EntityModel.DuAnYTeEntities dc = new Service.EntityModel.DuAnYTeEntities())
            {
                List <PrivateChatMessage> msg = new List <PrivateChatMessage>();
                var v = (from a in dc.ThanhViens
                         join b in dc.ChatPrivateMessageDetails on a.id equals b.id_ThanhVien_Gui into cc
                         from c in cc
                         where (c.id_ThanhVien_Gui.Equals(fromid) && c.id_ThanhVien_Nhan.Equals(toid)) || (c.id_ThanhVien_Gui.Equals(toid) && c.id_ThanhVien_Nhan.Equals(fromid))
                         orderby c.id descending
                         select new
                {
                    UserName = a.TaiKhoan,
                    Message = c.NoiDung,
                    ID = c.id
                }).Take(takeCounter).Skip(skipCounter).ToList();
                v = v.OrderBy(s => s.ID).ToList();

                foreach (var a in v)
                {
                    var res = new PrivateChatMessage()
                    {
                        userName = a.UserName,
                        message  = a.Message
                    };
                    msg.Add(res);
                }
                return(msg);
            }
        }
Example #2
0
        public List <PrivateChatMessage> GetPrivateMessage(string fromid, string toid, int take)
        {
            ChatPrivateMessageMasterRepository <ChatPrivateMessageMaster>   chpmm = new ChatPrivateMessageMasterRepository <ChatPrivateMessageMaster>();
            ChatPrivateMessageDetailsRepository <ChatPrivateMessageDetails> chpmd = new ChatPrivateMessageDetailsRepository <ChatPrivateMessageDetails>();

            //using (Surajit_TestEntities dc = new Surajit_TestEntities())
            //{
            List <PrivateChatMessage> msg = new List <PrivateChatMessage>();

            var v = (from a in chpmm.GetList().ToList()
                     join b in chpmd.GetList().ToList() on a.EmailID equals b.MasterEmailID into cc
                     from c in cc
                     where (c.MasterEmailID.Equals(fromid) && c.ChatToEmailID.Equals(toid)) || (c.MasterEmailID.Equals(toid) && c.ChatToEmailID.Equals(fromid))
                     orderby c.Id descending
                     select new
            {
                UserName = a.UserName,
                Message = c.Message,
                ID = c.Id
            }).Take(take).ToList();

            v = v.OrderBy(s => s.ID).ToList();

            foreach (var a in v)
            {
                var res = new PrivateChatMessage()
                {
                    userName = a.UserName,
                    message  = a.Message
                };
                msg.Add(res);
            }
            return(msg);
            //}
        }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fromid"></param>
        /// <param name="toid"></param>
        /// <param name="take"></param>
        /// <returns></returns>
        public List <PrivateChatMessage> GetPrivateMessage(string fromid, string toid, int take)
        {
            using (Service.EntityModel.DuAnYTeEntities dc = new Service.EntityModel.DuAnYTeEntities())
            {
                List <PrivateChatMessage> msg = new List <PrivateChatMessage>();

                var v = (from a in dc.ThanhViens.ToList()
                         join b in dc.ChatPrivateMessageDetails.ToList() on a.id equals b.id_ThanhVien_Gui into cc
                         from c in cc
                         where (c.id_ThanhVien_Gui.Equals(fromid) && c.id_ThanhVien_Nhan.Equals(toid)) || (c.id_ThanhVien_Gui.Equals(toid) && c.id_ThanhVien_Nhan.Equals(fromid))
                         orderby c.id descending
                         select new
                {
                    UserName = a.TaiKhoan,
                    Message = c.NoiDung,
                    ID = c.id
                }).Take(take).ToList();
                v = v.OrderBy(s => s.ID).ToList();

                foreach (var a in v)
                {
                    var res = new PrivateChatMessage()
                    {
                        userName = a.UserName,
                        message  = a.Message
                    };
                    msg.Add(res);
                }
                return(msg);
            }
        }
Example #4
0
        public List <PrivateChatMessage> GetScrollingChatData(string fromid, string toid, int start = 10, int length = 1)
        {
            takeCounter = (length * start);       // 20
            skipCounter = ((length - 1) * start); // 10
            ChatPrivateMessageMasterRepository <ChatPrivateMessageMaster>   chpmm = new ChatPrivateMessageMasterRepository <ChatPrivateMessageMaster>();
            ChatPrivateMessageDetailsRepository <ChatPrivateMessageDetails> chpmd = new ChatPrivateMessageDetailsRepository <ChatPrivateMessageDetails>();

            //using (Surajit_TestEntities dc = new Surajit_TestEntities())
            //{
            List <PrivateChatMessage> msg = new List <PrivateChatMessage>();
            var v = (from a in chpmm.GetList().ToList()
                     join b in chpmd.GetList().ToList() on a.EmailID equals b.MasterEmailID into cc
                     from c in cc
                     where (c.MasterEmailID.Equals(fromid) && c.ChatToEmailID.Equals(toid)) || (c.MasterEmailID.Equals(toid) && c.ChatToEmailID.Equals(fromid))
                     orderby c.Id descending
                     select new
            {
                UserName = a.UserName,
                Message = c.Message,
                ID = c.Id
            }).Take(takeCounter).Skip(skipCounter).ToList();

            foreach (var a in v)
            {
                var res = new PrivateChatMessage()
                {
                    userName = a.UserName,
                    message  = a.Message
                };
                msg.Add(res);
            }
            return(msg);
            // }
        }
Example #5
0
        public static List <PrivateChatMessage> GetPrivateMessage(string fromid, string toid, int take)
        {
            using (var dc = new SolutionsOnlineSellingEntities())
            {
                var msg = new List <PrivateChatMessage>();

                var v = (from a in dc.ChatPrivateMessageMaster
                         join b in dc.ChatPrivateMessageDetails on a.EmailID equals b.MasterEmailID into cc
                         from c in cc
                         where (c.MasterEmailID.Equals(fromid) && c.ChatToEmailID.Equals(toid)) || (c.MasterEmailID.Equals(toid) && c.ChatToEmailID.Equals(fromid))
                         orderby c.ID descending
                         select new
                {
                    UserName = a.UserName,
                    Message = c.Message,
                    ID = c.ID
                }).Take(take).ToList();
                v = v.OrderBy(s => s.ID).ToList();

                foreach (var a in v)
                {
                    var res = new PrivateChatMessage()
                    {
                        userName = a.UserName,
                        message  = a.Message
                    };
                    msg.Add(res);
                }
                return(msg);
            }
        }
Example #6
0
        public void PrivateChatMessage_Constructor()
        {
            var currentDateTime = DateTime.UtcNow;

            var privateChatMessage = new PrivateChatMessage(
                FakeObjects.TestUserWithId(),
                FakeValues.KeyString,
                FakeObjects.TestUserWithId(),
                FakeValues.Message,
                currentDateTime
                );

            Assert.AreEqual(FakeObjects.TestUserWithId().DenormalisedUserReference(), privateChatMessage.User);
            Assert.AreEqual(FakeValues.KeyString, privateChatMessage.ChatId);
            Assert.AreEqual(FakeObjects.TestUserWithId().DenormalisedUserReference(), privateChatMessage.TargetUser);
            Assert.AreEqual(FakeValues.Message, privateChatMessage.Message);
            Assert.AreEqual(currentDateTime, privateChatMessage.Timestamp);
        }
        public async Task <GetPrivateChatMessageDto> AddMessageAsync(CreatePrivateChatMessageDto messageDto, CancellationToken ct = default)
        {
            _logger.LogInformation("Create private chat message {PrivateChatMessage}", messageDto);

            PrivateChat chat = await _unitOfWork.PrivateChatRepository.GetAsync(messageDto.ChatId, ct);

            if (chat == null)
            {
                _logger.LogWarning("Private chat with id {PrivateChatId} not found", messageDto.ChatId);
                throw new ChatNotFoundException();
            }

            PrivateChatMessage message = _mapper.Map <PrivateChatMessage>(messageDto);

            message.CreatedAt = message.UpdatedAt = DateTime.UtcNow;

            _unitOfWork.PrivateChatMessageRepository.Create(message);

            await _unitOfWork.CommitAsync(ct);

            return(_mapper.Map <GetPrivateChatMessageDto>(message));
        }
Example #8
0
        public void Send(string message, string to)
        {
            string senderName = Context.User.Identity.Name;
            User sender = _userRepository.GetSingleByUsername(senderName);
            User receiver = _userRepository.GetSingleByUsername(to);

            if (receiver != null)
            {
                IEnumerable<HubConnection> receiverConnections = _hubConnectionRepository
                    .GetAllIncluding(conn => conn.User)
                    .Where(conn => conn.User.Name == to).ToArray();

                PrivateChatMessage privateChatMessage = new PrivateChatMessage
                {
                    ReceiverId = receiver.Id,
                    SenderId = sender.Id,
                    Content = message,
                    ReceivedOn = DateTimeOffset.Now
                };

                _privateChatMessageRepository.Add(privateChatMessage);
                _privateChatMessageRepository.Save();

                if (receiverConnections.Any())
                {
                    IEnumerable<HubConnection> senderConnections = _hubConnectionRepository
                        .GetAllIncluding(conn => conn.User)
                        .Where(conn => conn.User.Name == senderName).ToArray();

                    IEnumerable<string> allReceivers = senderConnections.Select(conn => conn.ConnectionId)
                        .Concat(receiverConnections.Select(conn => conn.ConnectionId));

                    foreach (string connectionId in allReceivers)
                    {
                        Clients.Client(connectionId).received(new { sender = senderName, message = message, isPrivate = true });
                    }
                }
            }
        }
Example #9
0
        public void Send(string message, string to)
        {
            string senderName = Context.User.Identity.Name;
            User   sender     = _userRepository.GetSingleByUsername(senderName);
            User   receiver   = _userRepository.GetSingleByUsername(to);

            if (receiver != null)
            {
                IEnumerable <HubConnection> receiverConnections = _hubConnectionRepository
                                                                  .GetAllIncluding(conn => conn.User)
                                                                  .Where(conn => conn.User.Name == to).ToArray();

                PrivateChatMessage privateChatMessage = new PrivateChatMessage
                {
                    ReceiverId = receiver.Id,
                    SenderId   = sender.Id,
                    Content    = message,
                    ReceivedOn = DateTimeOffset.Now
                };

                _privateChatMessageRepository.Add(privateChatMessage);
                _privateChatMessageRepository.Save();

                if (receiverConnections.Any())
                {
                    IEnumerable <HubConnection> senderConnections = _hubConnectionRepository
                                                                    .GetAllIncluding(conn => conn.User)
                                                                    .Where(conn => conn.User.Name == senderName).ToArray();

                    IEnumerable <string> allReceivers = senderConnections.Select(conn => conn.ConnectionId)
                                                        .Concat(receiverConnections.Select(conn => conn.ConnectionId));

                    foreach (string connectionId in allReceivers)
                    {
                        Clients.Client(connectionId).received(new { sender = senderName, message = message, isPrivate = true });
                    }
                }
            }
        }